Skip navigation.

419

The only way to learn a new programming language is by writing programs in it.

Posts tagged with "gentoo"

在debian下安装gentoo(二)

, ,

由于安装过程中关机了,现在要重新回到安装gentoo的状态,先要执行以下命令。
#hdparm -d 1 -c 3 -m 16 -u 1 -a 1024 /dev/hda
#mount /dev/hda8 /mnt/gentoo
#mount /dev/hda6 /mnt/gentoo/boot
#cd /mnt/gentoo
#mount -t proc none /mnt/gentoo/proc
#mount -o bind /dev /mnt/gentoo/dev
#chroot /mnt/gentoo/ /bin/bash
#env-update
#source /etc/profile
#export PS1="(chroot) $PS1"

现在可以继续安装了。我现在比较喜欢用vim,但由于在chroot环境下还没有装vim,所以我先 emerge vim。

第六步,编辑 /etc/make.conf 的USE。
查看有哪些USE可以用。
#less /usr/portage/profiles/use.desc
我对USE不太理解,我现在只用
USE="unicode alsa"

第七步,Locale与时区。

建立你需要的Locales,先修改/etc/locale.gen,我的如下。
#cat /etc/locale.gen

en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN GBK

然后
#locale-gen

更改时区,先
#ls /usr/share/zoneinfo
找到适合自己的时区,我用香港的时区,然后把它复制到 /etc/localtime
#cp /usr/share/zoneinfo/Hong_Kong /etc/localtime

第八步,终于可以开始编译内核了。
可以参考这几篇文章[http://gentoo-wiki.com/HOWTO_Compile_a_Kernel_Manually
Linux Kernel 2.6完全配置详解[http://feelyoung.xmu.edu.cn/home/wxd/kernel/
Linux 2.6.19.x 内核编译配置选项简介[http://lamp.linux.gov.cn/Linux/kernel_options.html

下载内核源码:
#emerge gentoo-sources
在非chroot终端下用下面的命令可以帮助了解硬件。
#lshw
#lspci
#lsmod
进入配置内核的菜单:
#cd /usr/src/linux
#make menuconfig

配置过程中在选项上按<Alt+?>可以看到相关说明。如果你像我一样没有什么编译内核的经验,将会花上很长时间来配置内核,比如说我就用了三个小时左右,估计以后使用时有问题还要重新编译。

终于配置好了,可以编译了:
#make && make modules_install

内核很快就编好了,把它复制到 /boot里
#cp arch/i386/boot/bzImage /boot/kernel-2.6.19-gentoo-r5

然后找一下有哪些模块:
# find /lib/modules/2.6.17-r5/ -type f -iname '*.o' -or -iname '*.ko'

把找到的模块名字写到 /etc/modules.autoload.d/kernel-2.6 里。

至此,内核的编译就到一段落了。

这时我看到了一个坏消息[http://www.linuxsir.org/bbs/showthread.php?t=294699],让我对gentoo有了不好的印象,忽然没有了使用gentoo的热情。也许我转向会尝试LFS。

无题

,

这两天上不了linuxsir,很不方便,也不习惯。我还要参考上面很多帖子来安装gentoo。

gentoo的安装过程是很方便的--对于LFS来说。看了gentoo的来由[http://www.gentoo.org/doc/en/articles/making-the-distro-p1.xml],里面也提到了创作gentoo的最初的想法就是自动化、无人值守。因为当时gentoo的开发团队只有Daniel Robbins一个人,所以他为了节省自己的时间就写了很多脚本让机械去做机械能做的事。

但是我的电脑太慢了,编译很费时,我多么想买一台超高性能的电脑呀。但是我又觉得,靠升级硬件来提高工作效率是一种退缩的懦弱的做法。多少优秀的软件在开发的时候用的电脑比我的要差。升级硬件不是解决问题,而是逃避问题。

事实上如果我有能力开发一个发行版本,改善编译费时的问题,最终会是什么样子的呢?一个很可能的做法就是提供高质量的编译好的二进制文件。这样的确可以节省很多时间,比如debian,安装软件多快呀!

在实用的角度来看,debian用起来真的非常方便,在老机子上表现得也很好。但是编译是一种乐趣,甚至是一种信仰。在自己机子了编译过的软件用着特别有感情。在编译为主的发行版本当中,gentoo无疑是最方便,最优秀的。

用debian时有一点我觉得不是很方便,就是同一时间只能安装一个软件。比如运行 apt-get install openoffice.org 的时候就不能安装其它软件,一定要等OOO装完了才可以。但在gentoo里,可以同时运行多个emerge,实现多个软件同时下载同时安装,不过我有点担心会出问题。

但emerge有一个致命的弱点:“反向依赖关系是Gentoo目前的portage的实现的主要缺陷:它不是任何时候都会考虑反向依赖关系。这意味着你可以在没有任何警告的情况下卸载一个被其他包所需要的包。比如,你可以卸载掉X server,而portage不会警告你KDE(已经安装)依赖于它。所以,你实际上可以毁掉你的整个系统(比如,删除glibc)。”[http://zh.gentoo-wiki.com/TIP_Converting_from_or_to_Debian

在debian下安装gentoo(一)

, , ,

今天开始在debian里安装gentoo。把我的步骤写下来。如果没有安装过gentoo,建议认真看一下 gentoo 的 handbook[http://www.gentoo.org/doc/en/handbook/index.xml
本文也参考了这篇帖子[http://www.linuxsir.org/bbs/showthread.php?t=279894
注意,我这里写的是我的情况,参考时注意根据你的实际情况改变 i686,/dev/hda 等变量。

前期工作:

在实际安装gentoo之前我先把硬盘分区如下。
detch:~# fdisk -l

Disk /dev/hda: 20.0 GB, 20003880960 bytes
255 heads, 63 sectors/track, 2432 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         609     4891761    7  HPFS/NTFS
/dev/hda2             610        2432    14643247+   5  Extended
/dev/hda5             610         670      489951   83  Linux
/dev/hda6             671         731      489951   83  Linux
/dev/hda7             732        1339     4883728+  83  Linux
/dev/hda8            1340        2372     8297541   83  Linux
/dev/hda9            2373        2432      481918+  82  Linux swap / Solaris

hda1是win2000,hda5是debian的/boot,hda6是gentoo的/boot,hda7是debian的主分区,hda8是gentoo的主分区,hda9是共用的swap。

分好区后,格式化分区,先装win2000,再装debian。装好debian后就可以在debian里一边上网听歌看电影一边编译gentoo了。

第一步,下载 stage3-i686-2006.1.tar.bz2 和 portage-latest.tar.bz2,下载地址可以在 www.gentoo.org 找,也可以到 http://linux.ntcu.net/ftp/dists/gentoo/ 里下载。

第二步,加快硬盘速度,可略过。
#hdparm -tT /dev/hda
#hdparm -d 1 -c 3 -m 16 -u 1 -a 1024 /dev/hda
#hdparm -tT /dev/hda

第三步,为了稳当起见我再格式化一次gentoo的分区
#mke2fs /dev/hda6
#mke2fs -j -O dir_index /dev/hda8

第四步,
#mkdir /mnt/gentoo
#mount /dev/hda8 /mnt/gentoo
#mkdir /mnt/gentoo/boot
#mount /dev/hda6 /mnt/gentoo/boot/
#cd /mnt/gentoo
/mnt/gentoo# cp /home/419/stage3-i686-2006.1.tar.bz2 /home/419/portage-latest.tar.bz2 .
/mnt/gentoo# tar xvjpf stage3-i686-2006.1.tar.bz2
/mnt/gentoo# tar xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr/

第五步,
修改/mnt/gentoo/etc/make.conf,优化编译参数。如果你有时间有耐心建议看一下这篇文章[What are CFLAGS?],如果你时间不多而且心情迫切想快点装好系统就在[What are safe CFLAGS to use with Gentoo?]里找一个适合你CPU的参数(cat /proc/cpuinfo 可以查看你的CPU类型)。
由于我喜欢用UTF-8,所以我还加一句 USE="unicode"。这样编译任何软件都会打开unicode开关了。

之后在 /mnt/gentoo/etc/make.conf 里加入一个比较快的源,例如我加入如下两句
GENTOO_MIRRORS="http://linux.ntcu.net/ftp/dists/gentoo"
SYNC="rsync://linux.ntcu.net/gentoo-portage"


然后
#cp -L /etc/resolv.conf /mnt/gentoo/etc/
#mount -t proc none /mnt/gentoo/proc
#mount -o bind /dev /mnt/gentoo/dev
#chroot /mnt/gentoo/ /bin/bash
#env-update
#source /etc/profile
#export PS1="(chroot) $PS1"

这时已经可以使用传说中的gentoo里的 emerge 命令了!先更新一下软件列表。
#emerge --sync

emerge相当于debian里的apt-get,emerge --sync 就相当于debian里的apt-get update了。但是一切都比debian慢很多。

经过漫长的等待后,它很可能会提示有新的portage,要你更新软件。
#emerge portage

这个命令相当于debian里的 apt-get upgrade。

再经过非常漫长的等待,终于升级完了,它提示我有4个配置文件要手动升级,看
#emerge --help config
的说明就知道怎样做了。

手动升级完,时间已经很晚了,今天就到此为止吧,明天再继续。现在可以退出可以关机了,明天再用chroot就可以继续安装了。

简单的窗口管理器--dwm

, , , ...

上个星期第一次尝试安装gentoo,每天下班回来就装2个小时,有时让它编译我去睡觉。足足搞了一个星期才把Xorg装上,还没有装输入法,声卡没弄好。编译太慢了,相比之下debian简直是太太方便了。但是装的过程中可以学到很多。
但是由于我分区时只分了3G给gentoo,感觉空间不够,又发现了可以一边安装gentoo一边使用debian安装的方法,就把gentoo删了,重新把整个硬盘分区,准备装一个win2k一个debian一个gentoo,现在装好了前两个,gentoo还没装。

在linuxsir的gentoo版看到一个讨论窗口管理器的帖子,说wmii可以摆脱鼠标,搜索wmii的时候发现了ion,说是专为键盘用户设计的,试用了ion2,不好用。想试用wmii,在它主页上看到了dwm,一个超级简单的窗口管理器!
这里[http://www.suckless.org/wiki/dwm]说了dwm与ion, larswm, wmii 等的不同之处,看完之后我断定这个会适合我,就试用了,一用之下果然爱不释手!

我对wm的要求很简单,只要有好用的快捷键来控制窗口就可以了,我现在用fvwm也是只设置了键盘快捷键,连桌面图片都不设置了,fvwm的其它强大功能我一个都没用到,还不如用这个简单的dwm。

linux的好处就是这样,不挷定窗口管理器,喜欢类windows的功能强大的可以用gnome或KDE,喜欢新潮的炫目的比vista更3D的可以用xgl,像我这样喜欢简单快捷的爱用键盘的可以用ion,wmii,dwm。

至于fvwm,适合喜欢个性化的,控制欲强的人。fvwm的外貌的变化之大实在令人惊叹。

说远了,说回dwm。
用dwm时发现不能调用scim了,吓了我一跳。

我现在装好scim后不自己写95input,而是用im-switch,非常方便。于是我加了95input,
XMODIFIERS="@im=SCIM"
export XMODIFIERS
scim -d

重启X后还是没有输入法。
我怀疑dwm根本就没有读/etc/X11/Xsession.d里的配置文件,于是把95input的内容写入~/.xinitrc里,重启X,可以在Xterm里用scim了,但是在firefox等gtk程序里还是不能调用。我又安装了scim-gtk2-immodule,还是不行。
这时我想起看man scim,按里面说的加上了
GTK_IM_MODULE="scim"
export GTK_IM_MODULE

重启X后可以在leafpad和opera等程序中用scim了,但是一开firefox就出错。于是改成
GTK_IM_MODULE="xim"
export GTK_IM_MODULE

这下子一切都好了!

Slackware or Gentoo ?

, ,

http://www.linuxsir.org/bbs/showthread.php?t=239294

我承认,我的意志不够坚定,我又装回Gentoo了。现在后台还在编译。

Slackware好在哪里?我是个彻头彻尾的菜鸟,评价高了怕各位觉得我是在鼓吹Slackware
,可是要是评价低了我也怕对不住Slack。只说个人喜欢Slack的原因吧。

理由在各位看来可能很不是理由。跟Slack感情深了,要说再见舍不得。
Slackware是存活到现在的最古老的发行版了,其历史可以上溯到1992年,全盛时代市场
占有率曾高达90%多。1997还是98年的时候我很偶然在一堆盗版软件里找到一盘Slackware
3.5。拿回家装怎么也装不上。那个时候也没网络,书也没有,什么都没有,就只有随盘
带的一些文档。后来才搞明白,装不上是因为做盘的人大意了,在Windows下刻的,把所有
Slackware软件包名从小写变成了大写。幸好那时候slackware特意保持的8.3的文件名格
式,要不然那可真要命了。后来加了个nojoliet参数装上了。

那个时候时间精力都多,整夜看英文man pagers,info,Howto。。。不是我爱看英文,
想看中文还真没有。

Slackware不象Debian有个庞大的团队。它主要是由Patrick Volkerding一个人维护。
Patrick Volkerding在Slackware的世界里又被称为“The Man”,在中文用户似乎更流行
被称为“大神”,我很困惑这外号从那儿来的。十年前人年轻,崇拜Bill Gates,现在这
个时候再看看,我个人更敬仰Pat。一个人能十多年时间坚持发行一个Linux发行版并不是
个容易的事情。Pat的境况一直就不怎么样。之前传闻他得了很严重的疾病。前几个月积
极的Slackware用户又发现Slackware-current很久没更新(其实也就一个月)。十一月十日
发现ChangLog里有这么一句“it's a girl”,Pat的妻子给他生了个丫头。祝贺贴迅速在
Slackware的世界传开。有这么具体的一个人我觉得Slackware的世界挺可爱。现在想实实
在在掏点Money支持Pet,还没找到好的渠道。

我觉得就我个人而言,以上是我离不开Slackware的主要原因。没别的,就是舍不得。网
络上偶尔看到某台主机名叫darkstar都觉得很亲切,这是Slackware默认的主机名。Linux
这些发行版说实在的,谁谁都差不多,但是对我来说有了感情就不一样了,呵呵。

说些其他的原因吧。Linux发行版的主要区别一般都是安装程序和包管理方式。Slackware
一直遵循着简单灵活的原则,一直没有更改包管理的方式。一个Slackware的软件包实际上
就是一个Gzipped Tarball,复杂点的,当然其中你可以在安装前后执行自己写的Bash脚
本、为软件包写个描述页、设置依赖关系、权限。如果完全图简单的话你只需要建个基本
的目录,把软件丢进去然后用tar打包,压缩。我是懒人,我觉得这样的方式很好,还保
值。当初看了那么多制作rpm包的东西,花了不少时间,谁知道现在不用RedHat全忘了。在
我可以预见的未来,我不可能把制作Slackware软件包的方式给忘了:-)。

Slackware不能从网络上安装,指的是Internet。可以很轻易地从别的分区、目录安装。
安装程序也是bash脚本加上dialog产生的界面。不可能有哪台机器的硬件对这个要求觉得
为难吧?安装哪些软件包有几种方式可以选择,从全装到一个一个决定(只要你不嫌麻烦)
。但是注意,这是没有依赖关系的,新手最好的选择是全部安装或者菜单安装。都熟悉了
以后你可以自定义一个tag文件,点明安装哪些不要哪些。以后再安装的时候这就是最方便
的方式了。不管是哪种方式,Slackware的安装都是非常快的(< 5 min)。

Slackware追求稳定,所以其中包含的软件包看起来稍微有些陈旧。不过都是久经考验的。
我也用过几个月的Debian,用的不是test就是unstable,要我用稳定的我忍不住心痒。每
天一开机连上网就是apt-get update,不管是什么就一个劲的升级。但是似乎都升的些无
关痛痒的东西。我要firefox1.5的时候,它源里只有1.0.4。终于有一天更新过后输入法
问题老Crash,实在不想忍,放弃Debian了。本性就是这样,喜欢新东西,可是系统这东西
说实在的没有必要天天update。Debian的朋友可能要说我了,怕不稳定用Stable版的啊,
我可不要,别人的Debian三天一更新我只能用老的?放着apt-get抓不来东西那个感觉可
不好。

要安装Slackware光盘里没有的软件,你可以去linuxpackages这样的网站,也可以自己去
官网或sf拉一个下来自己编译完了扔tar包里。我喜欢后一种方式,呵呵。如果要更新系统
跟随Slackware-Current脚步,有Slapt-get,看名字就知道了。回Slack把我喜欢升级的根
断了,我只去手动更新自己真的需要的软件,其他的爱咋咋地吧。

外界一般说Slackware还有一个优点,就是启动脚本的组织方式比较简单易懂。但是这个
优点对于现在很多Linux朋友来说可能谈不上,因为他们也不乐意看启动脚本,不关心系统
启动的时候究竟做了哪些事。不过相比RedHat之类的发行版Slackware的启动脚本真的是很
清楚明了。看过一遍你也许会萌生重新写个自己的启动脚本的想法。我当初就是这样,完
全参照Slackware的脚本写了一个启动脚本。从启动到关机。其实是很简单的事情,这个
过程也可以让你更了解Linux。用自己的启动脚本很爽的。可以显示自己的logo,去掉不
需要的许多判断、硬件检测。开机速度非常之快。

装系统还要软盘的时代,Slackware那两张启动软盘作用是多大!那两张软盘就完全是一个
完整的小linux环境。一直被我当作工具软盘用。两张软盘就可以运行的完整的小Linux系
统对你没有吸引力吗?我也曾经仿造那两张启动软盘做个稍微大点的系统,往其中放些其
他常用软件。还有个HowTo专门以Slackware当教材说这个问题。自己仿造Slackware做小系
统,为小系统写系统脚本 (我甚至写过一个仿造slackware的软件包管理脚本,要它接受
类似rpm的命令开关,也是为我自己的小版本准备的),这过程中你真的可以学习到很多东
西。而且可以乐在其中。

有一句话,“当你学会Slackware,你学会了Linux;当你学会了RedHat,你学会了RedHat”
话不是我说的。

Gentoo的介绍页面都会写上一句“安装Gentoo的过程就象是上了一堂课”,但是我要说的
是,我安装Gentoo过程所用到的知识,基本上都来自最初接触Slackware的时代。

Gentoo跟Slackware有点本质的东西比较象,简单、灵活。对Gentoo还不了解,不多说了。

莫名其妙一下写了这么长。见笑了。早就想为Slackware写点什么,让大家对Slackware多
些了解吧。到目前为止个人最喜欢的几个发行版──Debian、Slackware还有Gentoo (严重
声明:以上排名不分先后 :^)