Gentoo 内核和系统升级
一.内核升级
1.#emerge --sync //升级整个portage目录 也可以写脚本
2. #emerge -s sources emerge -avq gentoo-sources
[ebuild NS ] sys-kernel/gentoo-sources-3.10.4 [3.9.0] USE="-build -deblob -symlink"
# vim /etc/portage/package.keywords 可以指定哪个内核
编译内核
3.# cd /usr/src/linux-3.10.4-gentoo
#make -j5 menuconfig 编译内核不再赘述。 make -j5 && make install modules_install
修改grub启用新内核。
vim /boot/grub/grub.conf
default 1 timeout 5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Gentoo 3.10.4 root (hd0,0) kernel /boot/vmlinuz-3.10.4-gentoo ro root=/dev/sda1 rootfstype=ext4 quiet
二.系统升级。
4.#emerge -avq portage //如果不是最新的portage,需要按提示执行此操作
5.#emerge -avq python //如果不是最新的python,需要按提示执行此操作
6.#/usr/sbin/update-python 或者 python-updater //更新python配置 //执行完emerge python后执行此操作
7.#emerge -avquDN world //按照 /var/lib/portage/world 文件下的包,重新构建整个系统
参数说明: --ask (-a) 控制Portage显示它要更新的软件包列表,并让您决定是否继续更新
--verbose (-v) 在屏幕上输出完整的文件列表
--update (-u) 更新包的最佳版本
--deep (-D) 更新系统中的每个软件包
--newuse (-N) USE标记变更后,要使Portage检查USE标记的变动是否导致
需要安装新的软件包或者将现有的包重新编译
8.#emerge -av --depclean //清除不需要(孤立)的软件包
9.#revdep-rebuild //gentoolkit包里面的一个软件,用来检查系统的依赖关系是否都满足,自动安装没有满足关系的包
8.#perl-cleaner --all -- -avq //把perl相关的模块和文件都检查并修正一遍
10.#dispatch-conf //更新系统的配置文件
11.eselect news read all //查看提示消息
#emerge -e world //本地重新编译整个系统. 暂不需要这一步。
12.#dispatch-conf或etc-update //更新系统配置文件 !!!没有做修改 到此完成。
下面是升级后出现的问题。
---------------
13.安装bind报错 尝试从新编译系统解决问题
# emerge --update --deep --newuse world //重新构建你的系统
然后运行Portage的depclean来移除已经安装到你的旧系统里但是在新USE标记中被废除的条件依赖关系。
警告: 运行emerge --depclean是一项危险的操作,必须小心。请反复检查要删除的包的列表里确定没有你仍然需要的包。下面这个例子里,我们添加了-p选项来depclean──只列出这些包而不删除他们。
# emerge -p --depclean //删除不需要的包
depclean完成之后,运行revdep-rebuild来重新构建那些动态链接到由可能已经删除的包提供的公共对象的程序。revdep-rebuild是gentoolkit包的一部分,不要忘了先emerge它。
#运行revdep-rebuild //重建
出错使用如下命令
ebuild /usr/portage/net-dns/bind/bind-9.9.3_p2.ebuild manifest
注意 /etc/portage # ls
bin make.conf.catalyst package.keywords package.unmask postsync.d
make.conf make.profile package.mask package.use savedconfig