LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1479|回复: 11

老机器上装gentoo的一点手记

[复制链接]
发表于 2009-2-18 14:08:04 | 显示全部楼层 |阅读模式
老机器上装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.
  1. $ scp /home/cliffordli/Desktop/stage3-*.tar.bz2 root@192.168.1.2:/mnt/gentoo/
  2. $ 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
  1. $ sudo emerge nfs-utils
复制代码
配置好/etc/exports, 里面加上:
  1. /home/clfs 192.168.1.2(rw,async,no_root_squash,no_subtree_check)
复制代码
(注: 装了老机器后,当然要把这上面的去掉了,不然以后这两个文件夹都还是开放的.)

启动NFS服务.
  1. $ sudo /etc/init.d/portmap start
  2. $ sudo /etc/init.d/nfs start
复制代码
这样就可以加载了.
  1. # mount -t nfs 192.168.1.3:/home/clfs /mnt/gentoo/var/tmp/portage
复制代码

还有更为简单的方法是sshfs, 就是开启本机的SSH服务, 老机要装sshfs-fuse.
这下我们就可以方便的用
  1. # 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, 加上下面几句:
  1. FEATURES="distcc"
  2. MAKEOPT="-j4"
  3. DISTCC_DIR=/var/tmp/portage/.distcc
  4. DISTCC_HOSTS="192.168.1.3"
复制代码
然后是改动/usr/lib/distcc/bin下面的几个文件.
  1. # cd /usr/lib/distcc/bin
  2. # rm c++ g++ gcc cc
  3. # nano -w i586-pc-linux-gnu-wrapper
复制代码
i586-pc-linux-gnu-wrapper文件内容如下:
  1. #!/bin/bash
  2. exec /usr/lib/distcc/bin/i586-pc-linux-gnu-g${0:[-2]} "$@"
复制代码
然后再运行
  1. # chmod a+x i586-pc-linux-gnu-wrapper
  2. # ln -s i586-pc-linux-gnu-wrapper cc
  3. # ln -s i586-pc-linux-gnu-wrapper gcc
  4. # ln -s i586-pc-linux-gnu-wrapper g++
  5. # ln -s i586-pc-linux-gnu-wrapper c++
复制代码

本机上

配置好/etc/conf.d/distccd文件.
  1. 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共舞了. 还得自己动手.
  1. $ cd /usr/local/bin
  2. $ sudo nano -w i586-pc-linux-gnu-wrapper
复制代码

i586-pc-linux-gnu-wrapper文件内容如下:
  1. #!/bin/bash
  2. `echo $(basename $0) |sed -e "s/i586-pc-linux-gnu-//"` -m32 "$@"
复制代码
然后运行
  1. $ sudo chmod a+x i586-pc-linux-gnu-wrapper
  2. $ sudo ln -s i586-pc-linux-gnu-wrapper i586-pc-linux-gnu-gcc
  3. $ sudo ln -s i586-pc-linux-gnu-wrapper i586-pc-linux-gnu-g++
  4. $ 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的内容.
发表于 2009-2-18 20:51:58 | 显示全部楼层

楼主能写得具体一点吗?

(一) 通过SSH给老机装Gentoo

设置好两边的/etc/conf.d/net, 本机192.168.1.3, 老机器是192.168.1.2, 这样两台机就可以找得到了.

我对这一步不太懂,楼主能写得具体一些吗?
回复 支持 反对

使用道具 举报

发表于 2009-2-18 22:23:46 | 显示全部楼层
同楼上的 我也想跨网安装gentoo 不过一直不得其法 麻烦LZ写详细些
回复 支持 反对

使用道具 举报

发表于 2009-2-19 14:45:14 | 显示全部楼层
sshfs , 这个看上去不错。
回复 支持 反对

使用道具 举报

发表于 2009-2-19 18:01:16 | 显示全部楼层
Post by cliffordli;1949191
老机器上装gentoo的一点手记

老机装机不容易,因为配置低,很多在好配置机上很容易做的事情在老机上不好做. 本菜经过几天奋战终于将Gentoo装上。 其中经验和大家分享。有更好的方法也请不吝赐教,这才是开源的精神。

没有写完全步骤是因为手册够详细了。一百个人装Gentoo可能有一百种装法,但我想可能90%的都离不开手册, 所以没有装过Gentoo的人务必认真读一遍手册再装。

本菜四个月用Linux经验, 两个月Ubuntu,两个月Gentoo. 当然,作为进入Linux世界最基本的要求英语本菜还是会的, 至少26个字母的各种大小变型组合能在键盘上准确熟练敲出。

.


system 有没有 类似 /var/lib/portage/world 这样的文件可以看?
回复 支持 反对

使用道具 举报

发表于 2009-2-19 23:25:38 | 显示全部楼层
强贴,学习楼主了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-20 16:34:43 | 显示全部楼层
$ cat /var/lib/portage/world
app-admin/sudo
app-admin/syslog-ng
app-arch/xarchiver
app-editors/vim
app-i18n/fcitx
app-office/openoffice-bin
app-portage/eix
app-portage/gentoolkit
app-portage/layman
app-text/acroread
dev-util/subversion
games-arcade/supertux
games-board/eboard
games-puzzle/enigma
games-puzzle/picpuz
media-fonts/wqy-bitmapfont
media-gfx/feh
media-gfx/gpicview
media-gfx/scrot
media-sound/audacious
media-video/mplayer
net-dialup/rp-pppoe
net-im/linuxqq
net-im/pidgin
net-misc/d4x
net-misc/dhcpcd
net-www/mplayerplug-in
net-www/netscape-flash
rox-base/rox
sys-apps/pcmciautils
sys-apps/slocate
sys-devel/distcc
sys-devel/gcc
sys-libs/glibc
www-client/mozilla-firefox-bin
x11-base/xorg-x11
x11-misc/fbpanel
x11-misc/obconf
x11-misc/obmenu
x11-misc/slim
x11-terms/rxvt-unicode
x11-terms/terminal
x11-wm/openbox
xfce-base/xfce-mcs-manager
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-20 16:40:13 | 显示全部楼层
因为机不是我用,所以一些程序删除了。腾一些空间给游戏。内核文件我都删了, 反正有.config文件足矣。 本来想自己建个overlay的,算了交货给同事。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-20 16:52:32 | 显示全部楼层
/etc/conf.d/net 设置可以在手册上找到的吧? 我联机没费什么事。
本机上是:
config_eth0=( "192.168.1.3 netmask 255.255.255.0" )
routes_eth0=( "default via 192.168.1.1" )

老机器ifconfig eth0 192.168.1.2
回复 支持 反对

使用道具 举报

发表于 2009-2-20 16:55:47 | 显示全部楼层
K6 400... 直接在新机器上编译好gentoo打tar包到老机上算了..
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表