私はreadlineを新しいメジャーバージョンにアップグレードしました。
$ grep readline.*7 /var/log/pacman.log
[2016-11-15 21:53] [ALPM] upgraded readline (6.3.008-4 -> 7.0-1)
このGNUPGが破損しているため:
$ gpg
gpg: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
これはまた、パッケージをアップグレードできないことを意味します。私がどうする安全にインストールを修復しますか?
今まで試したことダウングレード読む行:
- パッケージがありません
/var/cache/pacman/pkg
- 次からビルド古いPKGBUILDそれ自体が起動しないので失敗します。依存するデバイス
awk
もありませんlibreadline.so.6
。
答え1
答え2
以前のバージョンを手動で確認してインストールして問題を解決しました。
- 以下から以前のバージョンをダウンロードしてください。Arch Linux アーカイブ
- パッケージと署名ファイルを次の場所にコピーします。その他マシンで署名し、そこで署名を確認してください。
- 荷物などから取り出す:
sudo tar -xvpf readline-6.3.008-4-x86_64.pkg.tar.xz -C / --exclude .PKGINFO --exclude .INSTALL
警告:他のパッケージには、プレインストールまたはポストインストールスクリプトを含めることができます。これはそうではありませんが、警告を受けたと思います!
答え3
libreadline.so.7
ほとんどのユーティリティは、実行後も引き続き機能できるほど古いバージョンと互換性があるようです。
sudo ln -s /usr/lib/libreadline.so.7 /usr/lib/libreadline.so.6
その後、警告が表示されましたが、新しいパッケージが確認されるように/usr/bin/bash: Symbol rl_readline_state has different size in shared object, consider re-linking
更新しpacman-key
てアップグレードします。libgcrypt
pacman -S bash
readline 7.0
パックマンのCatch-22スタイルの火を消した後、次のコマンドを使用してクリーンアップします。
sudo rm /usr/lib/libreadline.so.6
答え4
@chbrownが提案したとおりです。
sudo ln -s /usr/lib/libreadline.so.7 /usr/lib/libreadline.so.6
(リンク警告もあります)
その後、ca-certificates-utilsの新しいエラーが発生し、次の手順に従う必要がありました。https://bugs.archlinux.org/task/53217#comment155971
pacman -Sy --force ca-certificates-utils
これにより、次のことができます。
pacman -Syu
すべてのアップグレードがスムーズに行われ、libreadline / libreadlineリンクエラーが修正されました。