经历了「Fedora,从安装到放弃」以后,我对那些所谓「开箱即用」的 Linux 桌面完全失去了信心。它们的确是开箱即用的,只不过对于我而言,它们开箱后很难用。python
我想念 Gentoo。虽然它就在我身边的工做站里运行着,可是这台笔记本里却没有。在这台十年前的笔记本上安装 Gentoo,会显得我太变态,更况且这台笔记本是我本身出资买的,敝本自珍。我想试试 Debian。linux
多年之前,曾用过 Debian,浅尝辙止。多是由于那时 too young, too simple, 理解不了 Debian 的厚重与沉淀。如今有机会尝试一下。若是仍是不以为它的好,就准备与 Gentoo 终老相伴了。编程
写此文时,Debian 最新的稳定版是 8.5,代号 Jessie。没看过《玩具总动员》,因此也不知道 Jessie 是谁。Debian 矢志不渝的使用《玩具总动员》中的角色的名字做为稳定版的代号,它是个玩具级的 Linux 发行版吗?segmentfault
一开始就遇到了一个障碍。为了追求自由软件血统的纯正,Debian 官方提供的系统安装光盘镜像文件未包含无线网卡的固件部分。若是我坚持使用无线网络安装的方式安装 Debian,事情会变得有些麻烦。bash
束手无策之时,搜到一篇文章。做者也跟我差很少状况,他指出最省事的办法是下载非 Debian 官方制做的含有无线网卡固件的光盘镜像文件,亦即:服务器
$ wget http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/8.5.0+nonfree/amd64/iso-cd/firmware-8.5.0-amd64-netinst.iso
虽然这份光盘镜像文件不到 300 MB,可是下载速度堪称龟速。找了好大一会,发现了对岸有一台服务器,下载速度很快:网络
$ wget http://debian.nctu.edu.tw/debian-cd-unofficial/cd-including-firmware/current/amd64/iso-cd/firmware-8.5.0-amd64-netinst.iso
将光盘镜像文件拖下来以后,将其写入 FAT32 分区的 U 盘(假设它是 /dev/sdb
):编辑器
$ sudo dd if=firmware-8.5.0-amd64-netinst.iso of=/dev/sdb
若是非要跟着 Debian 官方的步子走,须要手动向 U 盘中写 syslinux,而后再找到非 Debian 官方提供固件文件,将它们放到 U 盘的根目录下,而这个过程,本质上就是在制做 firmware-8.5.0-amd64-netinst.iso……所以,并无什么 Debian 官方的步子。工具
折腾好了 U 盘,开始安装了。一路很太平,没再出幺蛾子,只有几个我以为是要点的要点须要强调一下。测试
语言和键盘,选择英文,而国别或地区选择中国大陆。
硬盘分区,选择手动分区。因为个人硬盘只有 80GB,LVM 与 RAID 之类的高端技术,我不了解,但也用不着,省了点事。为 /
分区(EXT4)分配了 40GB,为 /boot
分区(EXT2)分配了 500 MB EXT2,为 swap
分配了 4.5 GB,剩下的都给了 /home
分区(BTRFS)。
只安装基本系统。也就是在让你选择软件包的时候,什么都不选,直接 Continue。
系统安装完毕后,重启机器。由于没有装桌面,因此系统会进入终端环境。
若是使用基于 firmware-8.5.0-amd64-netinst.iso 制做的 U 盘,在安装 Debian 基本系统的过程当中,无线网络可正常使用,那么系统装好后,无线网卡的驱动部分不会有什么问题,可是网络设定还须要本身动手。
可参考 Debian Wiki 提供的「无线网络配置」文档的「WPA-PSK and WPA2-PSK」一节所述方法配置无线网络。
所安装的基本系统是 Debian 8.5 的稳定版本。虽然它够稳定,可是软件包太老了。接下来,我还要在这个基本系统上安装桌面,还要在桌面环境中写一些程序。太老的系统,适合作服务器,不适合桌面用户。
Debian 8.5 稳定版本提供的软件包,大概是 2 年前的版本。想一想 Windows XP 如今依然有不少用户,因此 Debian 8.5 稳定版本仍是很年轻的。新的版本未必好,虽然它们可能修复了老版本的一些 Bug,可是也可能引入了新的鲜为人知的 Bug。
Debian 提供了非稳定版本软件包的源,要使用它们,须要修改 /etc/apt/source.list 文件:
# cat << EOF > /etc/apt/source.list deb http://ftp.cn.debian.org/debian/ sid main non-free contrib deb-src http://ftp.cn.debian.org/debian/ sid main non-free contrib EOF
注:上述命令使用了 Bash 的「Here Document」语法。也能够用可在终端中运行的文本编辑器 nano 或 vi 进行文件编辑。
而后将系统由稳定版本升级为非稳定版本(Sid):
# apt-get update # 更新软件包列表 # apt-get dist-upgrade # 系统升级
Debian 的稳定版与非稳定版本,相似于 Gentoo 的 amd64
与 ~amd64
。不过,Debian 在稳定版本与非稳定版本之间还有一个过渡版本,叫测试版本(Testing)。我想先试试一段时间的 Sid,频繁遇到问题,就切换到测试版本。
# apt-get install sudo # echo "[用户名] ALL=(ALL:ALL) ALL" >> /etc/sudoers
装系统的时候,语言与键盘皆为英文。此时,系统只支持英文环境。有些程序,譬如 Emacs,要想在其中输入中文,前提是须要系统中具有中文 Locale。
使用如下命令增长中文 Loclae:
$ sudo dpkg-reconfigure locales
将 Locale 列表滚动到底部,选择 zh_CN.UTF-8 UTF-8
,而后 Ok
确认。
这样一来,系统就有了两个 Locale 环境,en_US.UTF-8 与 zh_CN.UTF-8。我建议继续使用 en_US.UTF-8 做为默认的 Locale,中文 Locale 能够在须要的时候临时启用。
$ sudo apt-get install lxde $ sudo reboot
不建议为了追求精简而只安装 lxde-core
。由于 lxde 自己已是很是小型的桌面系统了,将它的相关组件全都装上,也占用不了太多的系统资源。不须要的一些软件包,安装结束后,可酌情删减。
LXDE 未提供设置桌面快捷键的 GUI 程序。要设置快捷键,须要修改桌面配置文件。
可在 $HOME/.config/openbox/lxde-rc.xml 文件的 <keyboard> ... </keyboard> 部分添加如下内容:
<!-- run terminal --> <keybind key="F12"> <action name="Execute"> <command>lxterminal</command> </action> </keybind> <!-- Vertical tiling --> <keybind key="C-W-v"> <action name="UnmaximizeFull"/> <action name="MoveResizeTo"> <width>50%</width> </action> <action name="MaximizeVert"/> <action name="MoveResizeTo"> <x>0</x> <y>0</y> </action> <action name="NextWindow"> <interactive>no</interactive> <dialog>none</dialog> <finalactions> <action name="UnmaximizeFull"/> <action name="MoveResizeTo"> <width>50%</width> </action> <action name="MaximizeVert"/> <action name="MoveResizeTo"> <x>-0</x> <y>0</y> </action> </finalactions> </action> </keybind> <!-- Horizontal tiling --> <keybind key="C-W-h"> <action name="UnmaximizeFull"/> <action name="MoveResizeTo"> <height>50%</height> </action> <action name="MaximizeHorz"/> <action name="MoveResizeTo"> <x>0</x> <y>0</y> </action> <action name="NextWindow"> <interactive>no</interactive> <dialog>none</dialog> <finalactions> <action name="UnmaximizeFull"/> <action name="MoveResizeTo"> <height>50%</height> </action> <action name="MaximizeHorz"/> <action name="MoveResizeTo"> <x>0</x> <y>-0</y> </action> </finalactions> </action> </keybind> <!-- Restore window dimensions --> <keybind key="C-W-r"> <action name="UnmaximizeFull"/> <action name="NextWindow"> <interactive>no</interactive> <dialog>none</dialog> <finalactions> <action name="UnmaximizeFull"/> </finalactions> </action> </keybind>
上述配置设定了 4 个快捷键:
F12:打开终端
Win + Ctrl + V:竖直分屏,最后打开的两个窗口分居左右,铺满屏幕
Win + Ctrl + H:水平分屏,最后打开的两个窗口分居上下,铺满屏幕
Win + Ctrl + R:将竖直或水平分屏摆放的窗口复原
还有一些快捷键是 LXDE 已经为咱们配置好的。下面着几个快捷键较为经常使用:
Alt + 鼠标左键:窗口拖放
Alt + 鼠标右键:对窗口尺寸进行调整
Win + E:打开文件管理器
Print(PrtSc):打开 gnome-screenshot 截屏
$ sudo apt-get install fcitx
使用桌面菜单「Perference」->「Input Method」打开输入法配置向导,将 fcitx 设为桌面环境的默认输入法。
因为系统 Locale 是 en_US.UTF-8,在 Emacs 中,fcitx 没法输入中文。可是若将 LANG 设为中文,而后再启动 Emacs,就能够输入中文了,即:
$ LANG=zh_CN.UTF-8 emacs
为了方便,我在 /usr/local/bin 目录创建一份 Bash 脚本 em,内容以下:
$ cat << EOF | sudo tee /usr/local/bin/em #!/bin/bash LANG=zh_CN.UTF-8 /usr/bin/emacs $@ 2>/dev/null & EOF $ sudo chmod +x /usr/local/bin/em
这样,在终端中能够用 em
来代替 emacs
命令。
$ sudo apt-get install xserver-xorg-input-synaptics
而后修改 /usr/share/X11/xorg.conf.d/70-synaptics.conf 文件,在「Identifier
」为「touchpad catchall
」的「InputClass
」节中增长:
Option "TapButton1" "1"
笔记本支持蓝牙,但平时用不大着。编辑 /etc/rc.local,在「exit 0
」以前添加:
echo disable > /proc/acpi/ibm/bluetooth
这样,在系统启动后,蓝牙功能会被自动关闭。
后来,发如今 BIOS 里能够直接关掉,这样便没必要修改 rc.local 文件了。
LXDE 没提供笔记本电池的电量显示功能。在终端中,可以使用 acpi -b
命令查看。我喜欢这种方式。平时不须要看电量,只有在电池信号灯警示时,才须要看一下还剩多少电。
不知道 Nikola 是什么的人,可忽略此节。
使用 virtualenv + python 3.5 + pip 安装 Nikola 时,会遇到 lxml 包装不上的问题。要解决这个问题,须要事先安装 libxml2-dev, libxslt1-dev 以及 python3-dev。
$ sudo apt-get install freecad povray
$ sudo apt-get gcc make autoconf automake libtool valgrind
若是要编译 zero 的源代码,还须要安装 libglib2.0-dev 包。不知道 zero 是什么?不要紧。整个地球,可能只有我真正须要编译它的源代码。
简单而粗暴的办法是从 Windows 系统中扒出微软雅黑字体 msyh.ttf,而后在 /usr/share/fonts 中创建 non-free 目录,并将 msyh.ttf 放在这个目录中。
接下来,修改 /etc/fonts/conf.d/65-nonlatin.conf,将其内容替换为:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <alias> <family>serif</family> <prefer> <family>Microsoft YaHei</family> </prefer> </alias> <alias> <family>sans-serif</family> <prefer> <family>Microsoft YaHei</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>Microsoft YaHei</family> </prefer> </alias> </fontconfig>
这样,这样整个桌面环境的中文字体就统一于微软雅黑了。因为我不用 Libreoffice,因此对宋体字没需求。屏幕字体,微软雅黑足够看的。固然,若是为了追求对微软的不屑,能够换成那些自由或免费的黑体字体的一种。如今的 Linux,已经不是 10 年前穷得连一款像样的中文字体都没有的处境了。
我很是满意目前这个运行于 Debian 环境中的 LXDE 桌面。我并无将它配置到能够截屏向世人炫耀的程度。它的桌面风格停留在 Windows XP 时代,并且我还特地将它的窗口与 Panel 的外观改为了 Windows 2000 时代的风格。
令我满意的,它运行起来,只须要 200 MB 左右的内存。即便开启 Firefox 以及我经常使用的一些软件,内存占用不过 600 MB 左右。这台笔记本的内存共 2G,剩下来的内存,我能够用来编译程序,用来运行 povray,用来更新系统。剩下来的内存空间,即便我用不了,但它们也是属于个人。这种自由且随意的感受,是 Fedora 提供的 GNOME 3 桌面无法给个人。
此外,在正常的工做状态下,即便开着 WIFI,如今这台笔记本的电池可以坚持两个小时,而此前在 Fedora 的 GNOME 3 环境中,它只能坚持 70 分钟左右。