2008年3月26日星期三

系统配置:DIY自己的Ubuntu操作系统

DIY自己的操作系统

2007年05月01日 Tuesday , 2,675 次点击 , 

这个世界上没有最好的东西,最适合自己的就是最好的。
                                                       ──── 黔之驴

经常在论坛上见一些讨论两个东西谁好谁坏的帖子,也就是传说中的月经贴。一山更比一山高,如果非要事事都论个高低,那可真钻了牛角尖了。

然而善事先利器,这种问题又是无法避免的,比如你说这个东西好,如果真有另一个比这个更好呢?那不嗝屁了吗?还是本朝太祖武皇帝说得好──"自己动手,丰衣足食"。

我不需要针对新手的喂奶级别的循循善诱,不需要武装到牙齿但影响效率的桌面环境(不是不要GUI),不需要臃肿的体系架构和搭配销售式的霸王安装模 式,甚至不需要对我来说无用的Kontact、Evolution和Gedit,只要一个安全稳定的系统、快速的桌面环境和屈指可数的几个适用的工具,这 就足够了。所以我不用Windows,甚至对于Linux,Gnome和KDE也不是我的首选,作为一个Geek,我DIY。

不得不感谢这个时代,全国人民都在DIY,费老了劲儿娶回家一媳妇儿说不定都是DIY的,不是有句话这么说吗,每一个成功男人的背后都有一个DIY 的女人。作为一个一颗红心、两手准备的时代青年,你不会DIY?传出去怎么办?以后在文艺界还怎么混?你对得起谁?你连你的名字都对不起,因为它也是 DIY的。你就不害羞吗?我就羞,所以我羞并DIY着。

前两天Ubuntu7.04发布,这次我没有像以前那样用LiveCD,而是下了AlternateCD,为的就是DIY一个自己的操作系统。

先作一个不太科学的科普:一个操作系统大致可以分成五个层次,由下往上依次是:core(内核)、shell(外壳)、X-window(图形系统 国际工业标准)、Window Manager(窗口管理器)和Desktop Environment(桌面环境)。通常所说的Linux其实是指内核,Linux并不是一个操作系统,内核负责接受Shell传递的命令并对硬件直接 操作;shell是基于命令行的人机交互界面,负责接受用户的命令并解释为内核指令以传递给内核和向标准输出设备反馈运行结果;X-window是图形呈 现标准,负责提供一个图形系统界面绘制的标准,其实就是图形系统的内核;Window Manager负责控制窗口的绘制和具体行为,到此为止,一个完整的图形界面的操作系统就已经建立了;至于桌面环境,可以把它看作窗口管理器的扩展集,它 包括一个窗口管理器、各种组件、函数库和附属应用程序,目的是为用户提供一个统一、易用的桌面体验。

一、安装基本系统(core+shell+基本组件)

使用AlternateCD引导启动,然后选择"安装命令行系统"进行最小化安装,这个模式只会安装最基本的系统和必要的工具,安装完成后是一个像 DOS(大部分人一听说Linux就想起来DOS,我这么比方估计地球人都会长长地"哦"一声然后作恍然大悟状,唉,哪位天使大姐救救中国的计算机教育 啊)一样的命令行系统,没有图形系统。

具体安装过程就不说了,我不想当奶妈。

二、网络配置和安装基本图形系统(桌面)(window manager + 应用程序)

启动系统,使用安装时设定的用户名和密码登录。

1、我用ADSL上网,所以这里先设置ADSL:

sudo pppoeconf

原来在6.10下,这个设置工具被换成了图形界面的,设置之后上不了网,现在不知道为什么,又换回命令行界面的了。
完了使用

pon dsl-provider

上线,使用

poff

下线。

2、然后修改源:

sudo vim /etc/apt/sources.list

系统安装之后默认的是亚洲官方的源,速度奇慢,这里我修改为科大和CN99的源(安装系统前先准备好)。
然后更新源:

sudo apt-get update
sudo apt-get dist-upgrade

3、下面安装基本图形系统:

sudo apt-get install x-window-system-core gdm build-essential

x-window-system-core是x-window的核心组件;gdm是Gnome的登录界面,同类的有KDE的登录界面kdm和另一个轻量级的xdm;build-essential是编译程序源码所必须的组件。

4、至此x-window层面的东西就安装好了,下面安装窗口管理器:

sudo apt-get install fluxbox

我用的是fluxbox,而且不是上面这样从源上装的,我是自己编译的,编译fluxbox时需要两个组件:

sudo apt-get install xorg-dev xserver-xorg-dev

具体见我另一篇文章《基于Fluxbox的轻量型桌面环境的配置》
同类的还有fvwm(特点是可定制性非常高,缺点是工作量大,不适合新手)、icewm(fluxbox外另一个很好的选择,类Windows界面)等。

5、然后安装显卡驱动:
我的显卡是NVida的,从官网上下载回来执行安装,具体方法网上有,这里不说了。
NVida显卡驱动安装的时候要对内核作改动,这里需要一个组件:

sudo apt-get linux-headers-`uname -r`

注意上面的单引号是Esc键下那个,不是Enter键左边那个。
以后在图形界面下如果要修改屏幕刷新率或者分辨率可以在终端或运行对话框中输入

nvidia-settings

6、安装终端和运行对话框:

sudo apt-get install tilda grun

这两个分别是我喜欢的终端和运行对话框,其它可选的很多,不作赘述。
我的tilda是编译安装的,需要以下组件:

sudo apt-get install libvte-dev libconfuse-dev libgtk2.0-dev

7、安装文件管理器:

sudo apt-get install rox-filer

轻量但功能强大的东西,同类的有Gnome下的nautilus和KDE的konqueror。

8、安装热键工具:

sudo apt-get install xbindkeys xbindkeys-config

后者是xbindkeys的GTK图形前端设置工具,我没有用过,不知道怎么样。
我的是编译安装的,需要下面这个组件:

sudo apt-get install guile-1.8-dev

三、安装进一步优化桌面体验的工具

1、sudo apt-get install gnome-session

可以安装gnome-core,但是我发现仍然有一些我不需要的组件,所以直接装了这个,比gnome-core更简洁,目的是为了在fluxbox启动的时候加载gnome-settings-daemon,从而使GTk界面的程序的外观不那么丑。

2、sudo apt-get install gtk2-engines*

gtk的外观主题引擎,加载了gnome-settings-daemon才会使之生效。

3、sudo apt-get install gnome-system-monitor htop

前者是Gnome的进程管理器(不仅限于此),后者是命令行界面的进程管理器。

4、sudo apt-get install gnome-volume-manager

自动加载USB设备的工具,运行后在插入U盘和光盘时会自动弹出nautilus,用处不大。

5、sudo apt-get install nautilus nautilus-open-terminal nautilus-script-audio-convert

Gnome的文件管理器,用惯了,装上。后两个是nautilus的功能增强脚本,前者可以在当前位置打开一个终端,后者用于转换音频文件格式。

6、sudo apt-get install gnome-terminal gnome-alsamixer

前者是Gnome的终端,用惯了,就装上;后者是一个gtk的图形界面音量调整工具。Ubuntu7.04似乎有个Bug,安装之后默认情况下音量是静音的,打开音量调整工具,将静音的复选框中的箭头去掉即可。

7、sudo apt-get install synaptic

Gnome的新立得软件包管理器,就是图形界面的源管理器,有时候会用到。

8、sudo apt-get install language-pack-gnome-zh language-pack-kde-zh language-pack-zh openoffice.org-l10n-zh-cn mozilla-firefox-locale-zh-cn

系统的简体中文语言包。

9、sudo apt-get install file-roller

各种压缩包的图形前端。

10、sudo apt-get install xcompmgr

窗口特效工具,用于为窗口添加阴影、淡入淡出效果,我只用其阴影效果,淡入淡出效果对于低频的CPU来说太占资源。
安装之后要修改xorg.conf文件:

sudo vim /etc/X11/xorg.conf

在最下面添加下列内容:

Section "Extensions"
        Option  "Composite" "Enable"
EndSection
对于nvida显卡,将下面的两段加入到section device中:
Option          "RenderAccel"           "true"
Option          "AllowGLXWithComposite" "true"

启动xcompmgr时需加参数,使用

xcompmgr -cC

添加阴影

xcompmgr -fF

产生淡入淡出特效

xcompmgr -cCfF

同时使用两个特效,具体参数使用

man xcompmgr

查看。xcompmgr据说可以使cairo-clock边框透明,但我至今没有弄明白怎么用。

11、sudo apt-get install xscreensaver

屏保工具,带有锁屏功能,用法见我另一篇文章《基于Fluxbox的轻量型桌面环境的配置》

12、sudo apt-get install alien sun-java6-jdk

前者是将rpm包转换为deb包的工具,后者是java开发环境,附带有java运行环境。

13、sudo apt-get install feh fbpager

feh:一个图片查看工具,Fluxbox中使用fbsetbg设定壁纸之后fbsetbg会自动寻找一个可以设置壁纸的程序,feh就是其中的一个。
fbpager:Fluxbox的虚拟桌面扩展工具。

四、高阶应用程序

1、Office工具:

sudo apt-get install stardict stardict-langdao-ce-gb stardict-langdao-ec-gb stardict-oxford-gb stardict-xiandaihanyucidian stardict-hanyuchengyucidian openoffice.org wxmaxima maxima evince xpdf xpdf-chinese-simplified xpdf-chinese-traditional acroread gnumeric abiword  vim-full vim-gui-common vim-runtime vim-python kchmviewer openoffice.org-gtk eclipse tomboy bluefish basket gimp wine kfind klipper ksnapshot cairo-clock conky

—-stardict:星际译王,下面是其几部词典。
—-openoffice不用介绍了。
—-maxima是数值计算程序,wxmaxima是其图形前端。
—-scilab是科学计算程序,类似于Matlab,不过体积要小得多,源上的包不知道是在哪儿编译的,奇丑,所以自己编译安装。
编译时需要Fortran编译器:

sudo apt-get install g77

然后

./configure
make all
sudo make install

—-evince是PDF文档查看工具,xpdf xpdf-chinese-simplified xpdf-chinese-traditional三个组件用于解决部分中文PDF文档出现乱码的问题。
—-acroread是Adobe官方的PDF阅读器,兼容性勿庸置疑。
—-gnumeric是Gnome的电子表格程序,类似于Windows的Excel。
—-abiword是轻量型的文字排版工具,类似Word。
—-vim-full vim-gui-common vim-runtime vim-python是Vim的完整组件,系统默认安装的功能非常少。
—-kchmviewer是CHM文档的查看工具。
—-openoffice.org-gtk是这样一个组件,当你在像Fluxbox这样的窗口管理器下或者KDE这种非Gnome的环境中使用Openoffice时,openoffice的界面会显得非常难看,装了这个组件可以使Ooo和Gnome主题保持一致。
—-eclipse:时下非常流行的编程工具,我的是从官网上下载的。
—-tomboy:桌面便笺工具。
—-bluefish:网页编写工具。
—-basket:笔记本程序,我用源码编译安装,需要以下几个包:
sudo apt-get install kdebase-dev libgpgme11-dev
—-gimp:类似于Photoshop的东西,现在PS没有Linux版本,不过据说可以用Crossover安装PS。
—-wine:安装Windows程序必备。
—-kfind:KDE的查找工具。
—-klipper:KDE的剪贴板程序。
—-ksnapshot:KDE的屏幕截图程序。
—-cairo-clock:支持主题的桌面时钟。
—-conky:在桌面显示当前系统状态,非常强大,7.04之下没有出现以前那种闪烁的情况,如果安装后出现这种情况,参看我的文章《conky闪烁问题的解决办法》
—-Emacs23:源上的是Emacs21,马上22也该出来了,我使用的是cvs源码后编译的Emacs23,这个版本解决了很多问题,包括21中对Unicode支持不好的问题,具体方法见我的文章《Emacs23的编译安装》

2、网络工具:

sudo apt-get install amule filezilla firefox thunderbird axel firestarter

这些是网络工具,amule是Linux下的电骡。
—-filezilla是FTP工具。
—-thunderbird是和Firefox同出一源的电子邮件工具,不过我用它来阅读新闻组和RSS新闻,它是Linux下对中文新闻组支持最好的工具。
—-axel是基于命令行的下载工具,据说可以同时启动多地址多线程来加速下载,我安装了却没有用过,不知道怎么样。
—-firestarter:防火墙图形前端,感觉没什么用。

另外有一些网络工具,源上没有或者源上的版本较老或不好用的:
—-Opera:最好的网络浏览器,我一直用它,可到其官方网站下载。
—-Pidgin:原来叫Gaim,源上的似乎不能使用插件Guification,所以我下载源码然后编译安装。编译时需要几个包:

sudo apt-get install libxml2-dev libxml-perl libdbus-glib-1-dev tk8.4-dev tcl8.4-dev libgtk2.0-dev

编译安装之后会遇到一个问题,就是收到消息的时候没有提示声音,解决方法有几种,我这样做:
打开"工具"菜单中"首选项",在"声音"标签中的"声音方式"一栏中选择"命令",在"声音命令"中填写"artsplay %s"。
—-Eva:Linux下最好的QQ客户端,到http://www.myswear.net/forum/forumdisplay.php?fid=3下载最新的eva源码,然后编译,已经可以支持验证码了。编译时需要以下几个包:

sudo apt-get install libqt3-mt-dev kdebase-dev libqt3-headers

安装上面的kdebase-dev的时候会牵连着安装一些不需要的KDE桌面组件,这让人非常难以容忍,不过要编译KDE下的程序就要安装它,唯一能做的就是先记下都是自动安装了什么,编译完成后再卸载它们。
—-rp-pppoe:一个ADSL拨号工具,在Ubuntu6.10将pppoeconf工具升级到有图形前端的之后,pppoeconf的设置就总是无效,当时就换用了这个工具,现在也不想再用pppoeconf了。
—-sancho和mldonkey:mldonkey是多协议(主要是电骡的协议)的P2P工具,特点是可以同时从多个地方下载,理论上说比较快,sancho是其图形前端。
—-Internet Explorer 6 :上网络银行必用的东西,使用ies4linux安装,具体方法见我另一篇文章《生命中不能承受之失》
—-devilproxy:一个代理搜索和验证工具,很好用。
—-MultiGet:一个图形界面的多线程下载工具。
—-Skype:不用说了吧,源上的据说有问题,到其官方下载算了。

3、电子邮件工具:

sudo apt-get install mutt sendmail fetchmail msmtp

电子邮件收发环境,详见我另两篇文章《GNU/Linux下Gmail的mutt+msmtp+getmail解决方案》《回到fetchmail》

4、多媒体工具:

sudo apt-get install mplayer amarok k3b mozilla-mplayer vlc vlc-plugin-esd mozilla-plugin-vlc mpd mpc

—mplayer就不用说了,Linux最强大的多媒体播放器,由于知识产权的原因,7.04的源中没有再提供其解码器w32codecs的下载, 可以到其官网上下载all-20061022.tar.bz2和windows-all-20061022.zip两个包,解压后前者mv到/usr /lib/codecs,后者mv到/usr/lib/win32目录中即可,这两个目录如果没有就建立它。
—-amarok:迄今为止linux下最强大的音乐库管理和播放程序。
—-k3b:基于KDE的很好用的光盘刻录程序。
—-mozilla-mplayer:firefox的mplayer插件,使FF支持播放网页中的内嵌媒体。
—-vlc:跨平台的播放器,唯一的遗憾是不能播放Real格式的媒体,我主要用它来弥补Mplayer不支持DVD菜单的缺失。
—-mpd是一个很另类的音乐播放器,其实它是一个音乐播放服务器,允许任何可以连接到本机的计算机(包括本机)在获得授权的前提下收听本机中指定目录中的音乐,它只是一个后台服务,没有图形前端。
mpc是命令行下的mpd控制程序。还有一个Gtk图形前端叫Gmpc,源上没有,要到mpd官网下载源码后编译安装,编译时需要两个包:

sudo apt-get install libglade2-dev libcurl3-dev

—-audacious:源上的比较老,用新的要到官网下载源码,编译时需要如下几个包:

sudo apt-get install audacious-plugins-dev gtk-doc-tools liblame-dev libmad0-dev

另外需要一个mcs的包,源中似乎没有,要到audacious的官网下载。
—-FlashPlayer:Macromedia官方发布的Flash独立播放器的Linux版本,到其官方去下载。

5、服务器:

sudo apt-get install apache2 libapache2-mod-security libapache2-mod-php5 php5 mysql-server php5-mysql php5-gd

分别安装apache、mysql、php,我用来搭建本地Wordpress环境,具体见我的文章《Ubuntu本地搭建Apache+MySQL+PHP+Wordpress环境》

6、休闲游戏

sudo apt-get install foobillard supertux lbreakout2 trigger pingus gnugo quarry

—-foobillard:台球。
—-supertux:类似超级玛丽的东西。
—-lbreakout2:传说中的乒乓球游戏,很久以前流行的那种液晶屏幕、满是黑色方块的、以俄罗斯方块为主的掌机上就有,很古老的东西。
—-trigger:类似于极品飞车的3D飚车游戏,当然比起极品飞车要轻量得多,但3D效果也不错。
—-pingus:传说中比较耐玩儿的智力游戏,但我没玩儿过。
—-gnugo和quarry:前者好像是个引擎吧,后者是图形前端,运行时只运行后者就够了,是围棋游戏,具体设置有些麻烦,可到LinuxToy.org上找相关文章。
—-vdrift:另一款飚车游戏,跨平台的,源中没有,可到官方网站下载,将近二百兆大小,效果自然要比trigger要好,看官方截图,大有直追极品飞车的架势。

五、一些技巧

1、使系统允许root用户登录
Ubuntu中默认不允许root用户登录,因为这实在没什么必要,在Gnome下可以使用用户和组设置工具设置允许root用户登录,但是在本文这种轻量环境中没有该工具,因此使用命令设置:

sudo passwd root

以后要锁住该用户,使用

sudo passwd -l root

如果需要再次解锁,使用

sudo passwd -u root

2、去掉终端中的PC喇叭响铃
在终端上方向箭头移动到头或者到底的时候,主机喇叭就会响,很难听,使用如下方法禁用它:

sudo vim /etc/inputrc

将代码:

set bell-style none

前面的"#"去掉。

3、Gnome的设置中心
虽说不用Gnome,但是我还是偏Gnome的,比如登录界面用的是GDM,大部分程序都是GTK的,这就经常涉及Gnome环境的设置问题。
Ubuntu7.04提供了一个程序,它包括了指向所有Gnome环境变量修改工具的链接,如果安装了上面的所有程序的话应该已经安装了,如果没有,使用

sudo apt-get install gnome-control-center

安装。

六、收工

好了,全世界唯一的操作系统已经完成了,只此一家,别无分店。感觉很长很麻烦吗,其实只是一条命令而已:

sudo apt-get install x-window-system-core gdm build-essential xorg-dev xserver-xorg-dev linux-headers-`uname -r`  grun libvte-dev libconfuse-dev libgtk2.0-dev rox-filer guile-1.8-dev gnome-session gtk2-engines* gnome-system-monitor htop gnome-volume-manager nautilus nautilus-open-terminal nautilus-script-audio-convert gnome-terminal gnome-alsamixer synaptic language-pack-gnome-zh language-pack-kde-zh language-pack-zh openoffice.org-l10n-zh-cn mozilla-firefox-locale-zh-cn file-roller xcompmgr xscreensaver alien sun-java6-jdk feh fbpager stardict stardict-langdao-ce-gb stardict-langdao-ec-gb stardict-oxford-gb stardict-xiandaihanyucidian stardict-hanyuchengyucidian openoffice.org wxmaxima maxima scilab evince xpdf xpdf-chinese-simplified xpdf-chinese-traditional acroread gnumeric abiword  vim-full vim-gui-common vim-runtime vim-python kchmviewer openoffice.org-gtk tomboy bluefish gimp wine cairo-clock conky amule filezilla firefox axel firestarter libxml2-dev libxml-perl libdbus-glib-1-dev tk8.4-dev tcl8.4-dev mutt sendmail fetchmail msmtp mplayer amarok k3b mozilla-mplayer vlc vlc-plugin-esd mozilla-plugin-vlc mpd mpc libglade2-dev libcurl3-dev audacious-plugins-dev gtk-doc-tools liblame-dev libmad0-dev apache2 libapache2-mod-security libapache2-mod-php5 php5 mysql-server php5-mysql php5-gd foobillard supertux lbreakout2 trigger pingus gnugo quarry libgpgme11-dev libqt3-mt-dev libqt3-headers

这就把上面提到的大部分要装的东西装上了,另外安装KDE的一些程序的时候会强迫安装KDE桌面,所以这里将KDE程序单独提出来安装:

sudo apt-get source kfind klipper ksnapshot amarok

下载这些程序的源码而不是二进制安装包,然后

sudo apt-get install kdebase-dev

将连带着要下载安装的东西记下来,在编译安装上面的程序之后再卸载掉它们。



--
6G免费网络U盘: http://www.orbitfiles.com/signup/rleon

没有评论: