Debian,从安装到喜欢

前言

经历了「Fedora,从安装到放弃」之后,我对那些所谓「开箱即用」的 Linux 桌面彻底失去了信心。它们的确是开箱即用的,只不过对于我而言,它们开箱后很难用。

我想念 Gentoo。虽然它就在我身边的工作站里运行着,但是这台笔记本里却没有。在这台十年前的笔记本上安装 Gentoo,会显得我太变态,更何况这台笔记本是我自己出资买的,敝本自珍。我想试试 Debian。

多年以前,曾用过 Debian,浅尝辙止。可能是因为那时 too young, too simple, 理解不了 Debian 的厚重与沉淀。现在有机会尝试一下。如果还是不觉得它的好,就准备与 Gentoo 终老相伴了。

将 U 盘作为安装介质

写此文时,Debian 最新的稳定版是 8.5,代号 Jessie。没看过《玩具总动员》,所以也不知道 Jessie 是谁。Debian 矢志不渝的使用《玩具总动员》中的角色的名字作为稳定版的代号,它是个玩具级的 Linux 发行版吗?

一开始就遇到了一个障碍。为了追求自由软件血统的纯正,Debian 官方提供的系统安装光盘镜像文件未包含无线网卡的固件部分。如果我坚持使用无线网络安装的方式安装 Debian,事情会变得有些麻烦。

一筹莫展之时,搜到一篇文章。作者也跟我差不多情况,他指出最省事的办法是下载非 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 盘,开始安装了。一路很太平,没再出幺蛾子,只有几个我觉得是要点的要点需要强调一下。

  1. 语言和键盘,选择英文,而国别或地区选择中国大陆。

  2. 硬盘分区,选择手动分区。由于我的硬盘只有 80GB,LVM 与 RAID 之类的高端技术,我不了解,但也用不着,省了点事。为 / 分区(EXT4)分配了 40GB,为 /boot 分区(EXT2)分配了 500 MB EXT2,为 swap 分配了 4.5 GB,剩下的都给了 /home 分区(BTRFS)。

  3. 只安装基本系统。也就是在让你选择软件包的时候,什么都不选,直接 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,频繁遇到问题,就切换到测试版本。

sudo

# apt-get install sudo
# echo "[用户名] ALL=(ALL:ALL) ALL" >> /etc/sudoers

添加中文 Locale

装系统的时候,语言与键盘皆为英文。此时,系统只支持英文环境。有些程序,譬如 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 可以在需要的时候临时启用。

安装 LXDE

$ 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

不知道 Nikola 是什么的人,可忽略此节。

使用 virtualenv + python 3.5 + pip 安装 Nikola 时,会遇到 lxml 包装不上的问题。要解决这个问题,需要事先安装 libxml2-dev, libxslt1-dev 以及 python3-dev。

我常用的三维图形软件

$ sudo apt-get install freecad povray

C 编程工具

$ 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 时代的风格。

《Debian,从安装到喜欢》

令我满意的,它运行起来,只需要 200 MB 左右的内存。即使开启 Firefox 以及我常用的一些软件,内存占用不过 600 MB 左右。这台笔记本的内存共 2G,剩下来的内存,我可以用来编译程序,用来运行 povray,用来更新系统。剩下来的内存空间,即使我用不了,但它们也是属于我的。这种自由且随意的感觉,是 Fedora 提供的 GNOME 3 桌面没法给我的。

此外,在正常的工作状态下,即使开着 WIFI,现在这台笔记本的电池能够坚持两个小时,而此前在 Fedora 的 GNOME 3 环境中,它只能坚持 70 分钟左右。

《Debian,从安装到喜欢》

    原文作者:garfileo
    原文地址: https://segmentfault.com/a/1190000006261451
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞