Developer on Linux Desktop (大折腾)

背景

杀千刀的xx非要把每台电脑都加入 WindowsAD,还要用证书来加入内网。还要安装定制版360,还tm卸不掉。

在Linux下开发有个好处就是 server 和 本地开发 命令能相互兼容,我不用写多个脚本来兼容多个平台。这样可以做到 一键构建,部署,重启 等等。

这点已经在 macOS 上验证过了(虽然macOS是UNIX,但基本指令都是一样的) 非常舒服,那么接下来就只需要找个合适的 Linux 发行版。

Linux 发行版

  • ubuntu-20.04-desktop-amd64
  • deepin-desktop-community-20.2.1-amd64
  • manjaro-xfce-21.0.5-210519-linux510
  • openSUSE-Leap-15.2-DVD-x86_64
  • kubuntu-20.04.2.0-desktop-amd64

当然无论是 macOS 或者 Linux 都可能会存在对方平台 “独占” 的 “必须品”,所以 两个系统必须相容。必要的时候 我能够很流畅的切换回去。(其实最好的解决办法是把两个系统的引导区删掉或不安装引导 用第三方的boot loader来引导系统,可以有 但没必要,至少我比较懒。)

Ubuntu series

Ubuntu Desktop

我最熟悉的 Linux 是 Ubuntu,所以一开始选择的是 就是 ubuntu ,ubuntu 是 和windows 相容最好的系统了,没有之一。

但奈何 现在 Ubuntu 默认桌面是 Gnome,早已经没有当年 LTS 14 可媲美 macOS 的操作体验了。

并且当时没搞清楚 WPA-2 Enterprise 的 TLS 认证,所以被我草草的删除了。如果你的网络没有那么严格,你大可以直接使用 因为这是被业界所 proved.

Deepin Desktop

安装的时候 设置安装位置很复杂 难以接受,安装之后 引导丢失,无法 boot 进任何一个系统。直接放弃。

注:

曾经看到一个很好的朋友 在用 deepin,好处是默认给你安装WPS和Steam,界面会稍微美观一点,国人特色。

Kubuntu

kubuntu 是我最终使用的 发行版 所以会放到最后来讲。

Arch series

archlinux

原生的 archlinux 是不带桌面的,可以自行安装想要的环境,但我觉得 它特别适合服务器用途。

Manjaro

Manjaro 在桌面 Linux 口碑非常好(在国外),非常有特色的一个发行版,但受制于网络问题,在国内联网安装很困难,而且我自己还需要再背一套 包管理器命令。

pacman 的命令 看起来短,但我记起来很麻烦。索性再试试 SUSE好了。

SUSE series

openSUSE

openSUSE 可以说是最让我惊喜的一个操作系统了。整体体验都很优秀,好看的UI,好用的安装器,那个磁盘布局图 是我见过最优秀的了。

YaST 非常之强大 各个细节都有GUI能照顾到。但其实我认为 openSUSE 应该是桌面操作系统竞争力最强的。可惜 好像用户群并不是很活跃,长久来看并不乐观。

openSUSE 安装完之后 最大的一个坑就是不支持 exFAT 文件系统,1202年了 居然默认不安装。

仅看目前最新的版本 在整体用户体验下 还是要略强于kubuntu的。

Final Decision (Kubuntu)

kubuntu0

kubuntu1

kubuntu2
首先 好看就是生产力,KDE 是我目前用下来最好看和好用的桌面了。

基于 ubuntu 我可以继续用 apt 包管理器,我已经很熟悉这套了,省去了二次学习。ubuntu 本身就适配了很多laptop,Kubuntu可以直接继承过来,主流笔电都可以完美适配(开盖合盖,屏幕亮度,睡眠,电源管理等)。

可以安装某些国产软件 中国国内Linux软件很少有人做,要么就是做了 只有ubuntu和某几个少数的发行版能用。某些发行版对开发者来讲还是很重要的。

靠谱的硬件驱动,其实 windows 8 和之前 对硬件的驱动支持的都不怎么样,尤其是显卡,网卡驱动 这两个是非常重要的,但上述试过所有的发行版好像都没什么问题。尤其是开源显卡驱动 (虽然 reboot 到 windows 的时候 会有点花屏)。

中文输入法

fcitx 和 ibus 任选其一即可,原生 ubuntu 我用的是 ibus,kubuntu 我选择的则是 fcitx。

sudo apt install fcitx fcitx-googlepinyin

需要重启才能生效。

然后在 launcher 里面搜索 fcitx 配置即可。

WPA-2 Enterprise TLS

仅供参考

  1. 在windows 上导出证书(mmc -> 证书 -> 个人 -> pfx)
  2. 用 openssl 转换格式 (pfx -> der + pem/p12)
  3. 转换私钥格式 (p12[RSA] -> pem[RSA])
  4. 在 Wi-Fi Security 里 配置

wpa-2 enterprise tls

大提示

在导出pfx的时候勾选导出私钥 填写密码,这个pfx里面包含三个证书。

macOS(11.3.1)对pfx加密格式有要求,不支持某些算法,请自行验证。

Linux没有证书管理器 无法导入证书, 连接细节需要自己找出来。(这一点再吹一下macOS,证书管理器比windows还要强一点)。

从 macOS 里导出的私钥是 p12,但是 NetworkManager 不认这个(会崩溃), 需要转换格式 openssl pkcs12 -nocerts -in key.p12 -out key.pem.

identity 非常重要 不是瞎写的,这个可以在widnows下看证书详情找到,private key 必须要有密码保护。

openssl 转换格式 可以参考:SSL证书格式转换工具

trouble shooting

macOS 怎么刻录镜像

# 查看u盘挂载位置
diskutil list

# 写入镜像 (可以把镜像拖拽进去 路径自动输入)
sudo dd if=/tmp/ubuntu-desktop.iso of=/dev/disk4 bs=1m; sync

# 弹出u盘(刻录完成后 macOS不会认盘的 会弹出一个窗口 点忽略即可)
diskutil eject /dev/disk4

参考:简书:毛二牛

把u盘分区刷坏了怎么办

windows,macOS,Linux 对分区各有各的想法,所以一些极端情况会遇到在所有操作系统下u盘无法格式化。

写入500M空白数据 再尝试用系统的格式化功能(macOS)

dd bs=1m count=500 if=/dev/zero of=/dev/disk4

KDE 中文输入法遇到问题?

参考: Linux 系统Kde桌面环境的fcitx输入问题解决

GUI 问题?

参考:kubuntu的GUI界面和中文输入法问题解决