|
升级时,安装软件时,硬盘狂闪,很心痛吧。有升级强迫症的,用下面的方法试试,最好有2G内存,4G更好。
首选把distfiles目录从/usr/portage中移出,把distfile的目录设为/usr/distfiles, /etc/make.conf中加入 DISTDIR="/usr/distfiles" :
- mkdir /usr/distfiles
- rm -r /usr/portage/distfiles/
复制代码
把layman的目录放到/usr/portage/local下,自己的overlay也在该目录下。
layman原来把overlay放在/usr/local/portage下,也是大量小文件,移到一起处理吧。
- mkdir /usr/portage/local
- mv /usr/local/portage/* /usr/portage/local/
- rmdir /usr/local/portage/
复制代码
make.conf如下的条目做相应修改:
- source /usr/portage/local/layman/make.conf
复制代码
修改/etc/layman/layman.cfg中storage参数为 :
- storage : /usr/portage/local/layman
复制代码
压缩现在的portage
- # cd usr
- # tar cpf packedportage.tar portage
复制代码
/etc/fstab中加入
- portage /usr/portage tmpfs size=750M 0 0
复制代码
我的portage包括5个overlay的情况下只有610M。
好像tmpfs的容量是灵活的,此时不是内存突然少了750M,这个内出分区的剩余容量其他的应用也是可以使用的。
新建/root/.pack_portage.sh
- #!/bin/bash
- cd /usr
- if test -z "$(mount | grep -F /usr/portage )"
- then
- mount /usr/portage
- fi
- if test -f ".portage_unpacked"
- then
- tar -cpf packedportage.tmp.tar portage
- mv packedportage.tar packedportage.tar.old
- mv packedportage.tmp.tar packedportage.tar
- rm -f /usr/.portage_unpacked
- umount /usr/portage
- else
- ###########
- # for .portage_unpacked losed
- umount /usr/portage
- mount /usr/portage
- ###########
- tar xpf packedportage.tar &&\
- touch .portage_unpacked
- fi
复制代码
- chmod +x /root/.pack_portage.sh
复制代码
/usr/.portage_unpacked 是个指示portage是否解压的标记文件。非正常关机时,有可能未删除。在/etc/conf.d/local.start中加入
- rm -f /usr/.portage_unpacked
复制代码
每次安装升级程序时,需先运行/root/.pack_portage.sh,会把压缩包packedportage.tar的内容放入tmpfs内,只需6秒钟左右在我的w500上。
升级完成再运行一次/root/.pack_portage.sh会把新的portage打包压缩,并卸载tmpfs。
也可以在/etc/conf.d/local.stop中加入:
- if test -f "/usr/.portage_unpacked"
- then
- /root/.pack_portage.sh
- fi
复制代码
这样关机时就会自动更新portage压缩包,关机时间会多几秒钟。这样每次升级或安装只需运行一次/root/.pack_portage.sh。还是挺方便的。
把编译目录也放到内存,fstab中修改如下,我是4G内存,只是在编译gcc等需要的空间较大。2G内存的兄弟,在这设为1500M。如果编译时报空间用完,只需umount,再重新编译,就会在硬盘编译了。gcc编译需要内存较大,还有openoffice(我从来没编译过它)
- none /var/tmp/portage tmpfs nr_inodes=6M,size=3500M 0 0
复制代码
再把/tmp也放入内存,/etc/fstab中加入
- none /tmp tmpfs defaults 0 0
复制代码
注意:
1,/usr/.portage_unpacked 是个重要的标记文件。如果内存中/usr/portage目录有问题(比如是空的,被umount了或是缺损),标记文件还存在,运行/root/.pack_portage.sh将会把有问题的portage打包。这时如果想不要/usr/portage中的内容,重新恢复上次备份打包的portage压缩包,只需删除标记文件/usr/.portage_unpacked,再运行/root/.pack_portage.sh即可。
2,最好在别的目录保存一份portage的压缩备份。发生万一时,可拷过来。
还可以把firefox放入内存:
http://forums.gentoo.org/viewtop ... asc-highlight-.html
我的这篇文章也是跟上面这篇学的。 |
|