|
|
老机器上装gentoo的一点手记
老机装机不容易,因为配置低,很多在好配置机上很容易做的事情在老机上不好做. 本菜经过几天奋战终于将Gentoo装上。 其中经验和大家分享。有更好的方法也请不吝赐教,这才是开源的精神。
没有写完全步骤是因为手册够详细了。一百个人装Gentoo可能有一百种装法,但我想可能90%的都离不开手册, 所以没有装过Gentoo的人务必认真读一遍手册再装。
本菜四个月用Linux经验, 两个月Ubuntu,两个月Gentoo. 当然,作为进入Linux世界最基本的要求英语本菜还是会的, 至少26个字母的各种大小变型组合能在键盘上准确熟练敲出。
老机器基本配置:
CPU K6 400
硬盘 4G
内存 128M
光驱不好使
软驱一个 这个对装Gentoo没什么帮助, 呵呵
USB接口一个使用良好
网线接口有点松但能用有时断线
键盘上面写着日语,至今本菜还不明白怎么在上面敲出~ 和 | 这两个在linux世界里很重要的符号。
装机条件:
办公室内,能上网,但有一定限制,因为没有多余的网线给它。已有一台装好Gentoo的机。
(一) 通过SSH给老机装Gentoo
设置好两边的/etc/conf.d/net, 本机192.168.1.3, 老机器是192.168.1.2, 这样两台机就可以找得到了.
老机设好密码: # passwd
开启SSH服务: # /etc/init.d/sshd start
然后从本机登陆: $ ssh root@192.168.1.2
其它就和手册一样的. stage3和portage-latest文件我是从本机scp拷过去的. 省掉了界面和操作不太方便的links.- $ scp /home/cliffordli/Desktop/stage3-*.tar.bz2 root@192.168.1.2:/mnt/gentoo/
- $ scp /home/cliffordli/Desktop/portage-*.tar.bz2 root@192.168.1.2:/mnt/gentoo/
复制代码 (二) 分享本机的distfiles和空间给老机器
为了节省下载时间和硬盘空间, 可以利用本机的distfiles给老机器, 因为两台都是用稳定分支的x86, 老机器的USE和软件也不会超过本机,所以本机上的distfiles里面的包够用了! 当然,两边的portage都要更新到同一个, 本机还要emerge -uDN world一下, 至少要emerge -f world一下吧.
要开启NFS. 本机上要装nfs配置好/etc/exports, 里面加上:- /home/clfs 192.168.1.2(rw,async,no_root_squash,no_subtree_check)
复制代码 (注: 装了老机器后,当然要把这上面的去掉了,不然以后这两个文件夹都还是开放的.)
启动NFS服务.- $ sudo /etc/init.d/portmap start
- $ sudo /etc/init.d/nfs start
复制代码 这样就可以加载了. - # mount -t nfs 192.168.1.3:/home/clfs /mnt/gentoo/var/tmp/portage
复制代码
还有更为简单的方法是sshfs, 就是开启本机的SSH服务, 老机要装sshfs-fuse.
这下我们就可以方便的用- # sshfs cliffordli@192.168.1.3:/usr/portage/distfiles /usr/portage/distfiles
复制代码 (从安全角度出发,本机是不会开放root到ssh.)
(三) 配置distcc
白天上班不方便,晚上还是可以用本机给老机器帮忙编译的.不然即使老机器受得了我可受不了。
都说Gentoo安装难,但我认为Gentoo是最省事的。除了每台机第一次编译和测试内核外, 其它打几个emerge就完事, 但编译内核也不是Gentoo独有的. 特别是新装机,只要一开始运行一下emerge -e system, 包其本上没有装不上的。遇到多一点包要安装通不过去也只要打一下emerge --resume --skip-first又可以去干别的了。对于老机器,我们还可以分布式编译,distcc闪亮登场, 想像一下用现在的双核跑以前i586的内容是什么概念。
两台机都要emerge distcc
因老机器是AMD k6, CHOST定义为i586-pc-gnu-linux, 而本机是Intel, CHOST定义为i686--pc-gnu-linux,所以两台机要共舞不是那么容易。我是这样做的。
老机器上:
装好distcc后. 设置/etc/make.conf, 加上下面几句:- FEATURES="distcc"
- MAKEOPT="-j4"
- DISTCC_DIR=/var/tmp/portage/.distcc
- DISTCC_HOSTS="192.168.1.3"
复制代码 然后是改动/usr/lib/distcc/bin下面的几个文件.- # cd /usr/lib/distcc/bin
- # rm c++ g++ gcc cc
- # nano -w i586-pc-linux-gnu-wrapper
复制代码 i586-pc-linux-gnu-wrapper文件内容如下:- #!/bin/bash
- exec /usr/lib/distcc/bin/i586-pc-linux-gnu-g${0:[-2]} "$@"
复制代码 然后再运行- # chmod a+x i586-pc-linux-gnu-wrapper
- # ln -s i586-pc-linux-gnu-wrapper cc
- # ln -s i586-pc-linux-gnu-wrapper gcc
- # ln -s i586-pc-linux-gnu-wrapper g++
- # ln -s i586-pc-linux-gnu-wrapper c++
复制代码
本机上
配置好/etc/conf.d/distccd文件.- DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.2"
复制代码 开启distcc服务
$ sudo /etc/init.d/distccd start
本来想用crossdev省点事的,谁知用crossdev -t i586后装的是gcc-4.3.3的版本,自然不能和稳定分支的gcc-4.1.2共舞了. 还得自己动手.- $ cd /usr/local/bin
- $ sudo nano -w i586-pc-linux-gnu-wrapper
复制代码
i586-pc-linux-gnu-wrapper文件内容如下:
- #!/bin/bash
- `echo $(basename $0) |sed -e "s/i586-pc-linux-gnu-//"` -m32 "$@"
复制代码 然后运行- $ sudo chmod a+x i586-pc-linux-gnu-wrapper
- $ sudo ln -s i586-pc-linux-gnu-wrapper i586-pc-linux-gnu-gcc
- $ sudo ln -s i586-pc-linux-gnu-wrapper i586-pc-linux-gnu-g++
- $ sudo ln -s i586-pc-linux-gnu-wrapper i586-pc-linux-gnu-c++
复制代码
经试验,除了emerge -e system有个别包不能用distcc外,大部分包都能用distcc, 对于不能通过的包,只要打下emerge --resume --skip-first编译完后只要在/etc/make.conf把distcc注释掉运行一下emerge -uDN world(对于emerge -e system不能通过的) 或是重新emerge一下就行了。很欣赏Gentoo的哲学, 这点太人性化了。
以上是本菜装Gentoo的几点手记,方便以后要象我一样装机的,这几天装机累坏了。还请兄弟们多多赐教。
修改:
2009. 2.19 加上sshfs的内容. |
|