apt-get build-depでソースパッケージが見つかりません

apt-get build-depでソースパッケージが見つかりません

私はフォローしましたこのガイドUbuntu 12.04でマウスの中央ボタンの貼り付けを無効にします。

奇跡的に動作します。

今私はLinux Mint 17で同じ目標を達成しようとしています。私が試したとき

sudo apt-get build-dep libgtk2.0-0

それは私に次のような結果を与えます:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

私にとっては、apt-getが何とか「解決」さ'libgtk2.0-0'れるように見えますが、'gtk+2.0'同じ名前のパッケージは見つかりません。

Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'編集:これでプログラムをコンパイルできますが(私の答えを参照)、それはそれが何を意味するのかわかりません。これについての洞察力をいただきありがとうございます。ありがとうございます!

答え1

他の人がすでに指摘したように、deb …合計のすべての項目に一致するものがあることを確認してください。残りの行は同じでなければなりません。/etc/apt/sources.list/etc/apt/sources.list.d/*deb-src …

このdebエントリはバイナリパッケージ(つまりインストール準備完了)用で、このアイテムdeb-srcはソースパッケージ(つまりコンパイル準備完了)用です。両方のパッケージは非常に異なって管理されるので分離されます。バイナリパッケージには依存関係追跡メカニズムと現在のインストールリストがありますが、ソースパッケージは簡単にダウンロードできるように追跡のみです。パッケージストアについて議論するときは、次の用語に注意してください。源泉互いに関係のない2つのことを意味します。 1つはパッケージがダウンロードされた場所のソースで、もう1つはバイナリパッケージではなくソースパッケージです。

libgtk2.0-0バイナリパッケージの名前です。というソースパッケージで構築されましたgtk+2.0。ソースパッケージ名とバイナリパッケージ名が常に一致しない理由は、ソースパッケージをビルドすると複数のバイナリパッケージが生成される可能性があるためです。たとえば、gtk+2.014パッケージのソースコードは2つのライブラリ(libgtk2.0、、libgail)に分割され、そのパッケージを使用します。ライブラリビルダー( …-dev)、開発者ドキュメント( …-doc)、コンパニオンプログラム( libgtk2.0-bin)など

(パッケージがインストールされている場合)またはSource: …の出力でその行を調べて、バイナリパッケージがどのソースパッケージ名に対応するかを確認できます。dpkg -s BINARY_PACKAGE_NAMEapt-cache show BINARY_PACKAGE_NAME

ソースパッケージから生成されたバイナリパッケージを一覧表示できますaptitude search '?source-package(^SOURCE_PACKAGE_NAME$)

このコマンドはapt-get sourceソースコードパッケージをダウンロードします。指定した引数が既知のソースパッケージでない場合は、インストール可能なバイナリパッケージデータベースでそれを見つけて、そのソースパッケージをダウンロードしようとします。

このコマンドは、apt-get build-depソースパッケージの名前を派生するのと同じ方法に従って、ソースパッケージデータベースからバイナリパッケージのリスト(フィールドのリストBuild-Dep:)を照会し、対応するバイナリパッケージをインストールします。

ソフトウェアソースGUIには、公式リポジトリの「ソースコードでリポジトリを有効にする」チェックボックスがあります。サードパーティのリポジトリを手動で追加する場合と行をdeb-srcすべてdeb追加する必要があります。

答え2

コマンドラインモード

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

Ubuntu 18.04 Dockerイメージでテストされました。このように変更したら、次の操作を正常に実行できます。

sudo apt-get build-dep hello

変更前は、次のエラーで失敗しました。

E: You must put some 'source' URIs in your sources.list

また見なさい:https://askubuntu.com/questions/496549/error-you-must-put-some-source-uris-in-your-sources-list/857433#857433

software-properties-gtkオプション「ソースコード」

GUI で以下を実行できます。

software-properties-gtk

次に、「Ubuntuソフトウェア」タブで「ソースコード」をクリックします。

ここに画像の説明を入力してください。

deb-srcこれにより、いくつかの行が追加され、/etc/apt/sources.list今やることができますsudo apt-get build-dep <package>

Ubuntu 16.04~18.04でテストされました。

答え3

@steeldriverのおかげで何をすべきか知っています。

私のエントリに次のリングを追加しました/etc/apt/sources.list

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

deb-srcリポジトリには、コンパイルに必要なソースパッケージが含まれています(バイナリ、すぐにインストール可能なパッケージではありません)。

編集:これを追加した後にやるべきことsudo apt-get update

関連情報