引子

  最早接触Linux还是高中时代的RedFlag 4.0。当时自然对开源等概念没啥了解,觉得Linux就是一个仿Windows的系统,使用起来各种不方便,所以基本也没怎么用,唯一学到的就是grub之类的概念。一直到了大学,出于各种考量,才开始考虑抛弃Windows转战Linux,没记错的话当时装的是Fedora 9,但由于实在太过依赖Windows平台上的各种软件,所以坚持了几个星期之后,转换仍然失败。

  再到后来,和代码打交道的时间越来越多,口味也越来越偏向Linux系,管理的服务器和办公室的计算机均是Linux,加上我觉得现在Linux的软件支持比起Fedora 9的年代更是完善了许多。但不知道为什么,我总觉得Fedora实在不对味,比方说遇到问题时网上的解决方案很不好找,经常要自己鼓捣半天;Fedora 15开始使用GNOME 3.0更是让我咬牙切齿。加上当时在Windows下配置的cygwin已经基本满足我的编程需要,所以使用上仍然以Windows为主。

  尽管Fedora不对味,但直到读研前我仍然坚守RPM系,主要出于一个搞笑的理由:deb的名字太难听,apt-get比起yum绕口,而且Ubuntu这名字太傻了,考拉同学说她使用Ubuntu的时候我还嘲笑说为什么用一个连名字读起来都饶舌的操作系统,直到读研时,由于组里风行deb系,这才开始接触。后来由于某些原因自己用了一下Ubuntu,观念顿时180度大转弯,马上自己也装了个Ubuntu。尽管网上不少人抱怨Unity不好用又不稳定,但多年失败的转战计划一个周末就被Ubuntu解决了。

  可惜我和Ubuntu的蜜月没持续多久,看到12.10发布了,手滑升级到了12.10,这下悲剧来了。因为我经常同时开许多个程序运行,原本运行12.04 LTS的时候还比较稳定,结果升级之后经常出现僵死的情况,要等待半个多小时才能缓解,最近的一个周末竟然连续出现6、7次,而且经常出现系统错误。周一上班的时候和组里的技术专家了解情况,他说Ubuntu从旧版本升级的时候有时会出现这样的问题,比较可靠的办法是:重新安装。他建议我可以考虑Debian Wheezy,虽然是测试版,但已经相当稳定。我在Debian Squeeze、Wheezy和Ubuntu 12.04 LTS之间犹豫了好一阵,最后还是觉得稳定比好看重要,但新程序包也比较重要,于是折中选择Debian Wheezy,虽然我的确挺喜欢Unity的。相互分享是Linux精神的精髓,安装过程中谷歌也帮了大忙,所以我也把自己的安装经验写出来,希望可以帮到后来者。

  安装平台:ThinkPad X60,Intel 945GM集成显卡。

备份文件

  首先运行以下命令备份用户目录里的文件。注意通配符”*“不包括隐藏文件和文件夹(以”.“开头),所以应该用”.“或者直接用路径。

tar -zcvf backup.tar.gz ~

制作Debian安装盘

  网上有许多让人望而却步的安装盘制作方法,非常麻烦。读了一下官网上的安装指南,发现原来有一种非常简单的制作U盘安装盘的办法,只要执行以下命令即可:

cp install.iso /dev/sd*

  其中install.iso为安装盘,/dev/sd*为U盘。

  官网上有许多片盘,只要用CD或者DVD的第一片即可(CD-1或者DVD-1)。网络启动安装盘应该也适用于以上方法,不过我没试过,反正CD-1也就600M左右,网络启动安装盘也有200M,GB级别的U盘现在应该不难找吧。

  插入U盘,通过以下命令判断挂载到sd*:

dmesg | tail -20

  一般来说单硬盘的话都是挂载到/dev/sdb,不过还是要查清楚哟,不然写错了有得哭。

  Ubuntu可以自动mount U盘,要umount了才能写入。假定U盘mount到/media/usb,执行以下命令:

umount /media/usb

  然后就可以开始写安装盘了。

安装Debian

  安装过程是最简单的。重启计算机,选择U盘启动,就可以进入安装界面了。对于不习惯命令行安装或者比较懒的朋友(比如我这样的),还可以选择图形界面安装。注意安装分区不要选错就可以了。我先用安装程序自带的gparted格掉原来Ubuntu的分区,然后再在这个分区上建立新分区表。安装大概耗时半小时。

连上网络

  我用的是家里的无线,由于X60的无线驱动不是免费的,因此Debian安装包不包含它。解决这个问题有两种办法:第一是去 http://intellinuxwireless.org/ 下载驱动放到U盘里,安装系统时调用它;我因为懒,没有用这种办法,结果得用第二种办法—— 安装好之后连有线下载。

  由于太长时间不弄,都忘记怎么设置网卡了,结果不得不切换了Windows才查到。方法如下:

# 登陆root(因为尚未安装sudo)
su
Password:
# CD-1不包含gedit,还好我熟nano
nano /etc/network/interfaces
# 对于一般用户来说,把该文件里的eth0改为以下设置即可
auto eth0
iface eth0 inet dhcp

  然后要修改source.list,以便可以从正确的软件库里下载文件:

# 注意仍然要在root下操作
nano /etc/apt/sources.list
# 加入以下行之后退出
deb http://ftp.us.debian.org/debian wheezy main contrib non-free
# 回到命令行执行以下命令
aptitude update && aptitude install firmware-iwlwifi wireless-tools
# 执行模块
modprobe -r iwlwifi ; modprobe iwlwifi
iwconfig

  一般来说这样就可以用了。回到舒服的办公椅前享受无线的乐趣吧!

安装必要程序

# 由于CD-1自带的程序很少,我直接导入安装以下程序
# 参考了 http://wwliu.is-programmer.com/posts/25029
      gnome-core               --- gnome核心组件
      gnome-audio              --- 声音支持
      gnome-media              --- 多媒体支持
      gnome-utils              --- 小工具如dictionary,printscreen等
      gnome-system-monitor     --- 系统监视程序
      rar                      --- 常用的压缩/解压工具
      unrar
      file-roller
      thinkfan                 --- thinkpad风扇升降频自动控制程序
      network-config           --- 网络配置和管理前端
      network-manager
      build-essential          --- 构建Debian软件包的开发软件包
      gedit
      gedit-plugins            --- 各种gedit扩展
      gedit-latex-plugin       --- gedit的latex扩展
      spell                    --- 拼写检查
      audacious                --- 音乐播放器
      mplayer                  --- 音视频播放
      ibus                     --- 输入法
      ibus-pinyin              --- 拼音码表
      ttf-arphic-bkai00mp      --- 各种字体
      ttf-arphic-bsmi00lp
      ttf-arphic-bkai00mp
      ttf-arphic-bsmi00lp
      ttf-arphic-gbsn00lp
      ttf-arphic-gkai00mp
      ttf-dejima-mincho
      ttf-kiloji
      ttf-arphic-ukai
      ttf-arphic-uming
      ttf-baekmuk
      ttf-sazanami-gothic
      ttf-sazanami-mincho
      ttf-unfonts-core
      ttf-unfonts-extra
      ttf-vlgothic
      ttf-wqy-microhei
      ttf-wqy-zenhei
      xfonts-wqy
      ntfs-3g                  --- ntfs支持
      ntfs-config
      openoffice.org-writer    --- 文档编辑器
      openoffice.org-impress
      openoffice.org-calc
      virtualbox               --- 虚拟机
      google-chrome            --- 单独从Google下载安装
      mendeley                 --- 单独从Mendeley下载安装
      skype                    --- 单独从Skype下载安装
      filezilla                --- FTP工具
      pinta                    --- 类似Paint.NET的绘图工具
      qtiplot                  --- 类似Origin的制图工具
      skychart
      stellarium
      workrave                 --- 休息助手
      geany
      kile

输入法,配置文件

  我用惯了微软拼音输入法,尝试了这么多个输入法,感觉还是ibus-sunpinyin最好用,虽然和微软拼音相比还是有一点点差距,但适应了以后就好了。另外旧版本的sunpinyin(比如Squeeze仓库里的)还会有一些小问题,比如换页、中英文切换不方便等等,在Wheezy的软件仓库里都得到了解决。

  注意ibus框架下不能直接更改sunpinyin的设定,需要执行以下命令来更改:

/usr/lib/ibus-sunpinyin/ibus-setup-sunpinyin

  之后把之前备份的文件全部拷到新的用户目录里。注意配置文件要把和gnome有关的全部删除,不然会产生一些奇怪的后果。

各种恼人的小问题

  当初抛弃Fedora就是因为不适应Gnome 3,结果没想到现在又遇上了。除了在登陆时选择Gnome Classic或者用别的外壳之外,我还是想了不少办法来适应它的,比如说尽可能调得和Gnome 2或者Unity接近。当然还有其他一些各种恼人的小问题,也一并放在这里。

  Gnome 3没有了以前方便的applet,连弄个天气applet都成为很苦难的任务。虽然有一个gnome-shell-extentions-weather,但要专门加一个第三方软件库,我就不想加了。不过安装Gnome自己提供的gnome-shell-extentions还是很有好处的,虽然里面的插件并不太多,而且做得也有点山寨的感觉。

任务栏中的Skype图标

  首先第一个问题是Skype的图标总是显示在下方的工具栏处,要看是否有新信息,还要专门移鼠标过去才能看到,非常麻烦,所以要想办法把Skype的图表移到任务栏那里。(真没想到这么简单的一个问题也这么复杂,怪不得有人说Gnome 3的开发者就是一群大黑客,搞得人人都要自己写代码)

# 安装gnome-tweak-tool
sudo apt-get install gnome-tweak-tool
# 建立一个新插件
mkdir ~/.local/share/gnome-shell/extensions/skype-status
nano ~/.local/share/gnome-shell/extensions/skype-status/extension.js
# 将以下内容拷到extension.js中
const StatusIconDispatcher = imports.ui.statusIconDispatcher;
function enable() {
    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['skype'] = 'skype';
}
function disable() {
    StatusIconDispatcher.STANDARD_TRAY_ICON_IMPLEMENTATIONS['skype'] = '';
}
function init() {
}
# 建立新插件的metadata
nano ~/.local/share/gnome-shell/extensions/skype-status/metadata.json
# 将以下内容拷到metadata.json中
{
  "shell-version": ["3.4.1", "3.2.1", "3.2"],
  "uuid": "skype-status",
  "name": "Skype Status Icon",
  "description": "Integrates Skype Client into the status bar"
}

  然后在命令行中输入gnome-tweak-tool,在shell extension选项卡中,启用skype-status,然后同时按下alt-F2,输入r重启Gnome,应该就能看到Skype的图标出现在任务栏处了。在Wheezy所用的Gnome 3.4.2中,集成了Skype的新消息,会自动以长条弹窗的形式提示,感觉还是挺好玩的。

ThinkPad的音量键

  这个问题在安装Ubuntu 12.04的时候也有遇到,具体原因是热键键位有问题,只要执行以下命令即可解决:

cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask

  但重新启动以后老问题仍旧。解决办法是把以上命令写到/etc/local.rc里,这样每次启动系统的时候就会自动覆盖热键键位。

关机时的蜂鸣声

  装完Debian的时候正好是0点,关机是超响亮的beep,把整个人都吓精神了。解决办法:编辑/etc/inputrc,将set bell-style none前的注释去掉。

删除键失效

  实在觉得Gnome的开发人员吃饱了撑着没事做,好好的删除键,一定要改成ctrl-del才舒服,估计让无数人犯晕了。解决办法:执行dconf-editor,依次展开org -> gnome -> desktop -> interface,勾选 can-change-accels ,然后打开nautilus随便选择一个文件,在菜单上选择 编辑 -> 移动到回收站,高亮的时候(但别按下去),按一下删除键,这样就把默认设置改掉了。注意要再把 can-change-accels 禁用,免得日后误改快捷键。

显示桌面

  另一个吃饱了撑着没事做的例子是把”显示桌面“的快捷键去掉了。我本来习惯用alt-tab选择返回桌面的,结果现在没有了,原来的ctrl-alt-d也没了。解决办法:系统设置 -> 键盘 -> 快捷键 -> 导航 -> 隐藏所有正常窗口,设置一个你喜欢的快捷键。

对NTFS分区的读写权

  Nautilus默认对挂载的NTFS分区是只读的。折腾了半天,发现原来是没装ntfs-config的缘故,装上以后就可以读写了。如果还有问题的话,试试

sudo mkdir -p /etc/hal/fdi/policy
优化Libreoffce
# 安装中文界面
sudo apt-get install libreoffice-l10n-zh-cn
# 按照GNOME的风格美化界面,不然很小很难看
sudo apt-get install -y libreoffice-gnome
复原U盘安装盘

  装好系统之后,顺带把制作好的U盘安装盘复原了。通过dmesg确认U盘盘符(/dev/sd*)之后,执行以下命令即可恢复fat32格式:

mkdosfs -F 32 /dev/sd*

  现在你可以享受Wheezy了!

参考资料

  • Debian官方网站:http://www.debian.org
  • Debian Wheezy on ThinkPad X201i:http://wwliu.is-programmer.com/posts/25029
  • 如何配置/设置sunpinyin:http://sns.juziyue.com/home.php?mod=space&uid=337&do=blog&id=57463
  • Ubuntu 12.04 Skype Tray Icon (Gnome 3):http://korenkov.info/ubuntu-1204-skype-tray-icon-gnome-3
  • Laptop volume buttons and GNOME Volume are not synchronized:http://forums.debian.net/viewtopic.php?f=6&t=60945#p379398
  • Very loud "BEEP" during Shutdown and Restart:http://www.linuxquestions.org/questions/debian-26/very-loud-beep-during-shutdown-and-restart-914894/
  • I can not delete with the delete key in Gnome 3:http://bbs.archlinux.org/viewtopic.php?id=116609
  • Adding NTFS-Write capability by default:http://askubuntu.com/questions/74321/adding-ntfs-write-capability-by-default