web-dev-qa-db-ja.com

依存関係である誤ったパッケージを置き換える

マシンにはNVIDIAGeForce 7350 LEグラフィックカードが搭載されており、ArchLinuxマシンをセットアップするときに間違ったグラフィックドライバーをセットアップしたことに気付きました。また、ソフトウェアをダウンロードする過程で、間違ったバージョンのlibgllib32-libglを選択しました。

インストールされているパッケージは、nvidia-libgllib32-nvidia-libgl、およびmesaです。

必要なパッケージは、nvidia-304xxおよびlib32-nvidia-304xx-libglです。

問題は、依存関係を台無しにすることなく、前者のパッケージを安全にアンインストールし、後者をインストールするにはどうすればよいかということです。システム上の多くのパッケージは、最初の3つに依存しています。私はArchLinuxのパッケージ管理にまったく慣れていません。

更新:XFCEデスクトップ環境とLXDMディスプレイマネージャーをダウンロードしました。この時点で、「ターゲットのグラフィカルインターフェイスに到達しました」と言った後、起動中にコンピュータがハングします。別のttyに切り替えてログインすることはできますが、常にtty1(フリーズしているように見える)に戻り、多くのことを行うのはかなり困難です。問題はグラフィックドライバに関係していると思います。どんな助けでもいただければ幸いです。

3
user144150

pacman依存関係の問題を処理させます

必要なパッケージを単純にインストールしようとしたと思います(--asdepspacmanに渡すこともできます):

pacman -S nvidia-304xx lib32-nvidia-304xx-libgl

pacman競合が発生したことを通知し、競合するパッケージを削除するかどうかを尋ねる必要があります。単に「はい」と答えてください。

万が一の場合に備えて、最初にレスキューモードに変更することを検討してください。

systemctl isolate rescue.target

または、カーネルパラメータにsystemd.unit=rescue.targetを追加して、起動時間を追加します。

それがうまくいかなかったと仮定して、次の解決策を試してください。

ライブメディアからインストールにchrootします

ライブメディアを使用して起動し、ルートパーティションをマウントして、マウントしたばかりのルートディレクトリに/ dev/sys/procをバインドします。

mount /dev/sd<X><n> /mnt
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc

chrootをarchlinuxインストールに:

chroot /mnt

そして、不要なパッケージを削除します(-ddpacmanにすべての依存関係チェックをスキップするように指示します):

pacman -Rdd nvidia-libgl lib32-nvidia-libgl mesa

実際に必要なパッケージをインストールします(--asdepspacmanに渡すこともできます):

pacman -S nvidia-304xx lib32-nvidia-304xx-libgl

うまくいけば、これらのパッケージをインストールした後、依存関係が再び満たされます。

Chrootを終了します。

exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt

指を交差させて再起動します。

実際にインストールで起動したpacman -Rddを実行してみることができますが、ライブメディアからより安全にchrootすることを検討しています。

3
Felix Dietrich