Gentoo为amd64用户添加了17.1的profile。新的profile采用了一个更为标准的“库文件去符号链接”(no SYMLINK_LIB)的multilib布局。这个更新需要用户按以下步骤来迁移。由于这个迁移现在处于测试阶断,并存在破坏系统的风险,官方建议用户在非生产环境下来进行迁移测试。
在新的profile中,lib->li64这个用于兼容的符号链接被移除,lib目录成为了一个独立目录。这个目录用来存储跨架构(cross-arch),不依赖本地库的包比如gcc、clang,以及multilib profile里的32位库。
13.0和17.0的profile都支持迁移。之前的版本需要先阅读17.10的升级说明,并按说明使用6.4.0或以后版本的gcc。
下面是迁移的具体步骤,需要用到app-portage/unsymlink-lib工具:
1、把系统更新到最新来减少风险
2、安装工具: "emerge -1v app-portage/unsymlink-lib"
3、运行"unsymlink-lib --analyze"并检查是否有明显错误。如果在迁移过程中对系统执行了变更,需要在变更之后再次执行"unsymlink-lib --analyze"。(这一步之后不要使用emerge命令或者手动更改/usr的文件)
4、建议给系统做个备份
5、运行"unsymlink-lib --migrate",可以先添加"--pretend"检查执行命令到底有什么具体操作。
6、重启系统,祈祷。检查重要的软件能否正常工作,尤其是"emerge --info"能否正常工作(不要用emerge安装任何东西)。如果遇到了任何重大问题,使用"unsymlink-lib --rollback"回到步骤3。
7、运行"unsymlink-lib --finish",可以先添加"--pretend"检查执行命令到底有什么具体操作。这一步你会看到一大串文件被移除。
8、迁移profile:"eselect profile set --force default/linux/amd64/17.1/desktop"
9、如果是是从13.0迁移,需要重新编绎sys-devel/gcc,在那之后重新编绎sys-devel/binutils和sys-libs/glibc。
10、如果你使用的是multilib profile,重新编绎所有32位的包:"emerge -1v /lib32 /usr/lib32"。另外,如果你是从13.0迁移而来,可以直接参照17.0升级说明的编绎系统所有的包。
11、所有的32位包编绎完毕,你系统里面的/lib32和/usr/lib32符号链接将被自动移除。如果没有自动移除,你需要将它们手动移除。
在新的profile中,lib->li64这个用于兼容的符号链接被移除,lib目录成为了一个独立目录。这个目录用来存储跨架构(cross-arch),不依赖本地库的包比如gcc、clang,以及multilib profile里的32位库。
13.0和17.0的profile都支持迁移。之前的版本需要先阅读17.10的升级说明,并按说明使用6.4.0或以后版本的gcc。
下面是迁移的具体步骤,需要用到app-portage/unsymlink-lib工具:
1、把系统更新到最新来减少风险
2、安装工具: "emerge -1v app-portage/unsymlink-lib"
3、运行"unsymlink-lib --analyze"并检查是否有明显错误。如果在迁移过程中对系统执行了变更,需要在变更之后再次执行"unsymlink-lib --analyze"。(这一步之后不要使用emerge命令或者手动更改/usr的文件)
4、建议给系统做个备份
5、运行"unsymlink-lib --migrate",可以先添加"--pretend"检查执行命令到底有什么具体操作。
6、重启系统,祈祷。检查重要的软件能否正常工作,尤其是"emerge --info"能否正常工作(不要用emerge安装任何东西)。如果遇到了任何重大问题,使用"unsymlink-lib --rollback"回到步骤3。
7、运行"unsymlink-lib --finish",可以先添加"--pretend"检查执行命令到底有什么具体操作。这一步你会看到一大串文件被移除。
8、迁移profile:"eselect profile set --force default/linux/amd64/17.1/desktop"
9、如果是是从13.0迁移,需要重新编绎sys-devel/gcc,在那之后重新编绎sys-devel/binutils和sys-libs/glibc。
10、如果你使用的是multilib profile,重新编绎所有32位的包:"emerge -1v /lib32 /usr/lib32"。另外,如果你是从13.0迁移而来,可以直接参照17.0升级说明的编绎系统所有的包。
11、所有的32位包编绎完毕,你系统里面的/lib32和/usr/lib32符号链接将被自动移除。如果没有自动移除,你需要将它们手动移除。