私は今Funtooシステムを持っていますが、Gentooに移行(戻る)したいと思っています。可能であれば、インストール中に使用可能なシステムを維持します(ライブCDを使用して最初から再構築しないでください)。両方のシステムは~AMD64
である必要があります。
私はそれを逆にした誰かの古い 説明 を見つけました。私には、手順は次のように聞こえます。
/usr/portage/
をgentooportageスナップショットに置き換えます。emerge --sync
を実行しますemerge -e @system
)。emerge -uND @world
)私は何かが恋しいですか?
プロファイルはどうですか? initスクリプト(ネットワークインターフェイスや構成など)に非互換性がある可能性はありますか? (grubを使用して)起動中にUEFIから問題が発生することを予期する必要がありますか? genkernelに違いはありますか?
さて、まず第一に、あなたは何を失う必要がありますか?それがうまくいかない場合でも、新規インストールを行うことができます。
言うまでもなく、重要なアイテムをバックアップする必要があります。振り返りたい場合に備えて、/etc
のアーカイブを作成することもできます。
個人的には、急進的なことを試みるときはいつでも、事前にルートファイルシステムを別のディスクにrsyncします。何かがひどくうまくいかないときはいつでも、私はただrsyncそれを元に戻します;)。マウントされたすべてのパーティションへの再帰を防ぐために、ルートパーティションを別のマウントポイントにマウントします。そして、次のようなものを実行します。
rsync -av --delete /mnt/root/ /mnt/backup
復元するには:
rsync -av --delete /mnt/backup/ /mnt/root
権限、シンボリックリンク、およびファイルの所有権を上下に正しく転送するには、バックアップファイルシステムがLinuxタイプ(FATまたはNTFSではない)であることを確認してください。
個人的に行うことはありませんが、ガイドラインとして以下のオプションを試すことができます。上記のいくつかのコメントは、異なるコンパイラプロファイルを示唆していますが、そのほとんどはmake.conf
のgccとCFLAGS
へのフラグを使用しているだけで、実際の問題は見当たりません。
あなたが試すことができるが、個人的な経験はありませんが、それをrepo.conf
の方法で行うことです。 /usr/gentoo
のような別のディレクトリを作成し、そこにVanillaGentooポーテージツリーを配置します。
ファイル/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
また、Funtooにも同様の何かが存在し、低い優先度である必要があります。 emerge --sync
を実行すると、両方のツリーが隣り合って存在します。同じバージョンのパッケージが存在する場合、 優先度 の高いリポジトリが優先されます(理論上)。次のように目的のリポジトリに接尾辞を付けることで、パッケージの選択を強制できます。
emerge sys-devel/gcc::gentoo
この設定を使用すると、Gentooに段階的に移行できます。両方のリポジトリのプロファイルを選択できるので、Gentooプロファイルを選択するときにいくつかのemerge --pretend
コマンドを試したり、useflagsなどを試してみたりできます。gccの出現、Gentooツリーからのポーテージなど。 GCCが同じuseflagsで再出現し(make.confを好みに合わせて編集)、同じCFLAGSを維持しているので、おそらくシステムツリーを空にする必要さえありません。
GCCアップグレードガイド 、および/usr/share/portage/config/make.conf.example
を読みたいと思うかもしれません。
最後に、funtooのrepo.conf
エントリを削除して、emerge -uND --newrepo @world
を実行できます。
以前、大きなプロファイル変更を行っていたときは、この方法を使用していました。
emerge -uND @world
)、@ reserved-rebuildセットを処理し、depclean。/var/lib/portage/world
からユーザー定義のセットに移動します。これは1つのセットにすることも、整理する場合はセットのカテゴリにすることもできます。たとえば、プロセスの別々の段階で使用できる3つのセットを作成しました。/ etc/portage/sets/boot
sys-boot/grub
sys-kernel/gentoo-sources
[network tools etc]
/ etc/portage/sets/admin
app-editors/vim
app-portage/gentoolkit
[...]
/ etc/portage/sets/desktop
# All the rest
この移行後は、/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
でuseflagsを再度有効にし、package.use
で特定のフラグをパッケージ化します。emerge -uND @world @admin @desktop && emerge --depclean
:これで問題がなければ、FuntooをGentooに正常に転送できました。残りの質問に答えるために;パッケージの再インストール中に、Portageは/etc/
内のファイルが元のファイルであるか変更されているかを確認します。インストール後に変更されていない場合、Portageはそれらを置き換えるだけです。 /etc/init.d内のファイルについても同じことが言えます。これらのファイルは、最終的にはすべてパッケージに属します。パッケージを再構築すると、最終的に正しいバージョンが得られるはずです。
変更された設定ファイルはconfig-protectによって保護されます。これらは、etc-update
などのツールを使用して更新する必要があります。
私はこれが古い質問であり、おそらくもうOPを助けないことを知っています。しかし、その主題は私に興味を持っています。この答えに出くわした誰かが実際に試してみるといいでしょう:)。