保持されている壊れたパッケージを修正する方法は?


21

libssl-devをUbuntu 14.04.2にインストールしようとしています

$ make
fatal error: openssl/sha.h: No such file or directory
compilation terminated.

$ sudo apt-get install libssl-dev
The following packages have unmet dependencies:
 libssl-dev : Depends: zlib1g-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt-get install zlib1g-dev
The following packages have unmet dependencies:
 zlib1g-dev : Depends: zlib1g (= 1:1.2.3.4.dfsg-3ubuntu4) but 1:1.2.8.dfsg-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

保留パッケージを削除して正しいパッケージをインストールするにはどうすればよいですか?


するときは、最後の時間走っていますsudo apt updateおよび/またはsudo apt upgrade
-DopeGhoti

こんにちは、私は各ステップの間に両方を行いました。
サム・ヒーリー

回答:


18

まず、これを入力してみてください: sudo dpkg --configure -a

これは、壊れた依存関係の修正に大いに役立ちます。それで十分でない場合は、試してください: sudo apt-get install -f

その後、クリーンアップして更新します。 sudo apt-get clean && sudo apt-get update

次にアップグレードします:(アップグレードする場合 sudo apt-get upgrade は「y」と言います)

一部のパッケージが「保留」されているというメッセージが表示された場合は、次を実行します。

sudo apt-get dist-upgrade

次の2つのコマンドを実行します。

sudo apt-get purge zlib1g-dev
sudo apt-get autoremove

次に、入力するとどうなるかを確認します。 sudo apt-get install libssl-dev

それでも動作しない場合は、これを試してください:

sudo aptitude install libssl-dev zliblg-dev=1:1.2.8.dfsg-1ubuntu1

それでも動作しない場合は、Synaptic Package Managerを開きます(ランチャーにあるはずです。見つからない場合は、ターミナルでを入力しますsynaptic-pkexec)。

を検索しzlib1g-devます。zlib1g-devの横のボックスが緑色でない場合は、それをクリックして、「Mark for installation」を選択します。複数のバージョンが表示される場合は、を選択してください1:1.2.8.dfsg-1ubuntu1。次にを検索しlibssl-devます。libssl-devの横のボックスが緑色でない場合は、それをクリックして、「Mark for installation」を選択します。

次に、「適用」を選択します。


こんにちは、返信いただきありがとうございます。上記のすべてを行ったところ、元の投稿と同じエラーが発生しました。アップグレードを実行すると、次のメッセージが表示されました。次のパッケージは保持されています:linux-generic-lts-utopic linux-headers-generic-lts-utopic linux-image-generic-lts-utopic 0アップグレード、0が新規インストール、0が削除、3がアップグレードされていません。
サム・ヒーリー

何を与えるapt-cache policy zlib1g-devgrep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list

@Bahamut「-P」という意味ですか?私のために、私はE: Command line option 'P' [from -P] is not known.
優雅な

@SamHealey答えを少し変更しました。そこで提案していることを試して、それがどうなるか教えてください。
gracious1

1
@Bahamutなぜグラフィカルプログラムでsudoを使用しないのですか?
gracious1

2

パッケージに関連するすべてのファイルを探してパージし、再インストールする必要があります。

sudo dpkg --list
sudo apt-get purge "file-name"

すべてのファイルで2番目のコマンドを繰り返してから、再インストールします。


0
sudo aptitude install lib_name_depending

libcurl4-openssl-devUbuntu 14.04LTS にインストールしたいときに、私のために働きました。

いくつかの依存ライブラリが私のマシンにインストールされていなかったので、aptitudeツールを使用して、必要なlibs /パッケージを対話的にインストール/ダウングレードして、インストールできるようにしましたlibcurl4-openssl-dev

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.