apt-get source に要求したパッケージを取得させるにはどうすればよいですか

apt-get source に要求したパッケージを取得させるにはどうすればよいですか
$ apt-get source libtiff4
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'tiff3' as source package instead of 'libtiff4'
E: Unable to find a source package for tiff3

-f を追加しても動作は変わりません。この動作の原因は何ですか? また、必要なパッケージを強制的にダウンロードするにはどうすればよいでしょうか?

検索しても、tiff3のアイデアがどこから来ているのかさえわかりません

$ apt-cache search libtiff
libtiff-doc - TIFF manipulation and conversion documentation
libtiff-tools - TIFF manipulation and conversion tools
libtiff5 - Tag Image File Format (TIFF) library
libtiff5-alt-dev - Tag Image File Format library (TIFF), alternative development files
libtiff5-dev - Tag Image File Format library (TIFF), development files
libtiffxx5 - Tag Image File Format (TIFF) library -- C++ interface
gem-plugin-tiff - Graphics Environment for Multimedia - TIFF support
libtiff-opengl - TIFF manipulation and conversion tools
libtiff4 - Tag Image File Format (TIFF) library (old version)
libtiff4-dev - Tag Image File Format (TIFF) library (old version), development files
libtiffxx0c2 - Tag Image File Format (TIFF) library (old version) -- C++ interface
pngtools - series of tools for PNG (Portable Network Graphics) images
python-libtiff - wrapper to the libtiff library to Python using ctypes

答え1

バイナリ パッケージとそれに対応するソース パッケージの間には 1 対 1 の関係はありません。その理由は次のとおりです。

  • 場合によっては、複数のバイナリパッケージが単一のソースから派生することもある。
  • バイナリパッケージのバージョンを反映するため、名前は若干異なります。
  • 一部のパッケージにはバイナリが直接含まれておらず、代わりにインストールする必要がある依存パッケージのみが指定されています。

おそらく、Ubuntu の新しいバージョンがインストールされているからでしょうが、あなたの特定の問題を再現できません。以下は、同様のライブラリを使用した同様の問題のウォークスルーです (例のすべてがすでにインストールされていますが、マッピングと依存関係について表示されている情報は依然として関連していることに注意してください)。これは、この種の問題に対処する方法についての良いヒントになるはずです。

というパッケージを正常にインストールしましたlibjpeg8:

$ sudo apt-get install libjpeg8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libjpeg8 is already the newest version.

ソースを取得しようとしましたが、接尾辞 の付いたものに再マップされています-empty

$ apt-get source libjpeg8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'libjpeg8-empty' as source package instead of 'libjpeg8'
Skipping unpack of already unpacked source in libjpeg8-empty-8c

目的のパッケージの依存関係をリストすると、次のことがわかりますlibjpeg-turbo8

$ apt-cache depends libjpeg8
libjpeg8
  Depends: libjpeg-turbo8
  Replaces: libjpeg8:i386
  Breaks: libjpeg8:i386

のソースをインストールするlibjpeg-turbo8と、必要なソースが取得されます。

$ apt-get source libjpeg-turbo8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'libjpeg-turbo' as source package instead of 'libjpeg-turbo8'
Skipping unpack of already unpacked source in libjpeg-turbo-1.3.0

答え2

「ソフトウェアとアップデート」で「ソース コード」エントリのチェックがオンになっていることを確認してください。

ソフトウェアとアップデートのスクリーンショット

そうでない場合は、チェックマークを付けてターミナルを開き、次の操作を行います。

sudo apt-get update

(チェックマークを付けた後にパッケージ リストを再読み込みするように求めるダイアログ ボックスが表示された場合は、おそらくこれを行う必要はありません)。その後、次の操作を実行します。

apt-get source libtiff4-dev

libtiff4 のソースコードを取得します。

関連情報