Tim*_*Tim 5 migration gentoo funtoo
我现在有一个 Funtoo 系统,但想迁移(返回)到 Gentoo。如果可能的话,在安装过程中保持一个可用的系统(不要使用 Live CD 从头开始重建)。两个系统都应该~amd64
。
我找到了一个关于相反的人的旧描述。对我来说,听起来好像步骤是:
/usr/portage/
为 gentoo portage 快照。emerge --sync
emerge -e @system
)。emerge -uND @world
)我想念什么吗?
个人资料呢?init 脚本(例如网络接口和配置)中是否可能存在不兼容问题?我应该在引导期间(使用 grub)预料到 UEFI 会出现问题吗?genkernel 有区别吗?
好吧,首先,你必须失去什么?如果不起作用,您仍然可以进行全新安装。
不用说,您需要备份重要项目。甚至可以存档/etc
,以防您想回顾。
就我个人而言,每当我尝试一些激进的方法时,我都会事先将根文件系统同步到单独的磁盘。每当出现严重错误时,我都会将其重新同步;)。将根分区安装在单独的安装点上,以防止递归到所有已安装的分区。并运行类似的东西:
rsync -av --delete /mnt/root/ /mnt/backup
Run Code Online (Sandbox Code Playgroud)
恢复:
rsync -av --delete /mnt/backup/ /mnt/root
Run Code Online (Sandbox Code Playgroud)
只需确保备份文件系统是 Linux 类型(不是 FAT 或 NTFS),即可正确上下传输权限、符号链接和文件所有权。
尽管从未亲自做过,但您可以尝试以下选项作为指导。上面的一些评论建议不同的编译器配置文件,但其中大部分只是 gcc 和CFLAGS
in的 useflags make.conf
,我没有看到真正的问题。
你可以尝试,但没有个人经验,就是这样做repo.conf
。创建一个单独的目录,例如/usr/gentoo
将普通的 Gentoo portage 树放在那里。
文件/etc/portage/repos.conf/gentoo.conf
:
[DEFAULT]
main-repo = gentoo
[gentoo]
location = /usr/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
priority 10
Run Code Online (Sandbox Code Playgroud)
Funtoo 也应该存在类似的东西,并且优先级较低。运行后emerge --sync
,两棵树将并排存在。如果存在相同版本的软件包,则优先级较高的存储库获胜(理论上)。您可以通过添加所需的存储库后缀来强制选择软件包,如下所示:
emerge sys-devel/gcc::gentoo
Run Code Online (Sandbox Code Playgroud)
使用此设置,您可以逐步迁移到 Gentoo。两个存储库中的配置文件都可供选择,因此您可以emerge --pretend
在选择 Gentoo 配置文件时尝试一些命令,使用 useflags 等。从 Gentoo 树中出现 gcc、portage 等。如果您只是确保 GCC 已重新启动,出现相同的 useflags(根据您的喜好编辑 make.conf)并且保留相同的 CFLAGS,您可能甚至不需要清空系统树。
也许您想阅读GCC 升级指南,并且/usr/share/portage/config/make.conf.example
。
最后,您可以删除repo.conf
funtoo 的条目并执行emerge -uND --newrepo @world
.
以前,当我进行一些大的配置文件更改时,我使用了这种方法。
emerge -uND @world
),处理@preserved-rebuild集和depclean。/var/lib/portage/world
用户定义的集合中。这可以是一组,或者如果您想进行组织,也可以是一组类别。例如,我创建了 3 组,可在该过程的不同阶段使用。/etc/portage/sets/boot
sys-boot/grub
sys-kernel/gentoo-sources
[network tools etc]
Run Code Online (Sandbox Code Playgroud)
/etc/portage/sets/admin
app-editors/vim
app-portage/gentoolkit
[...]
Run Code Online (Sandbox Code Playgroud)
/etc/portage/sets/desktop
# All the rest
Run Code Online (Sandbox Code Playgroud)
确保迁移后/var/lib/portage/world
和都是空文件。word_sets
emerge --depclean
以删除所有被拉入的包@world
/etc/portage/package.use
。(如果您打算稍后再次使用该文件,请将其移至某处。USE=
其中的行make.conf
default/linux/amd64/17.0
emerge -uND @world && emerge --depclean
您将采用 Funtoo 尽可能最小的配置,冲突风险最小。repos.conf
)emerge @boot
并执行您需要执行的操作来配置内核、grub 等(遵循手册)这将为您提供一个完全可重新启动的 Gentoo 系统。如果此时想测试,请重新启动。make.conf
并可能打包特定标志package.use
emerge -uND @world @admin @desktop && emerge --depclean
:如果一切顺利,您已成功将 Funtoo 转移到 Gentoo!回答剩下的问题;在重新安装软件包的过程中,portage会检查文件是/etc/
原始的还是修改过的。如果它们自安装后未修改,portage 将替换它们。/etc/init.d 中的文件也是如此。这些文件最终都属于一个包。包重建最终应该给出正确的版本。
修改后的配置文件受config-protect保护。这些需要使用诸如etc-update
.
我知道这是一个老问题,可能不再对OP有帮助了。然而,这个话题让我感兴趣。如果遇到这个答案的人能够真正尝试一下,那就太好了:)。