古いオペレーティングシステム用のdebパッケージを再パッケージする方法は?

古いオペレーティングシステム用のdebパッケージを再パッケージする方法は?

パッケージを抽出し、少し変更を加えて再パッケージする方法を知っています。以前のOSバージョンと互換性があるようにdebパッケージを再パッケージ化したい場合は、特別な作業を行う必要があるかどうか疑問に思います。

たとえば、Ubuntu 12でxyzパッケージをアップグレードしたいのですが、xyzパッケージはUbuntu 14でのみ使用できます。 Utopic UnicornをPrecise Pangolinに変更するには、制御ファイルを変更できますか?

答え1

最新のシステムからパッケージをインポートし、古いシステムにインストールしようとすると、満たされていない依存関係が得られます。セクションで制御ファイルの依存関係を確認できますDepends:。アップグレードして依存関係を解決しようとすることができますが、そうすると、以前のバージョンに依存している他のアプリケーションがクラッシュする可能性があります。そのパッケージを入手できる場合は、パッケージを再構築するか、ソースからこのパッケージをインストールしてみてください。

答え2

パッケージにすでにコンパイルされたコードがある場合は、ほとんどの場合再構築する必要があります。

これを行う方法の簡単な要約:

これを行うにはダウンロードしてください。源泉apt-get source -d packagenameダウンロードしたファイルの1つ.dsc、通常は1つ、または(時にはまだ1つ)、通常はUbuntu 14.04.debian.tar.xzまたは14.10(「Ubuntu 14」の意味は何でも)のファイルを以前のUbuntuバージョンのコンピュータに圧縮してコピーします(Ubuntu 12.04はそうではないと仮定します)。 12.10以降はサポートされなくなりました)。.debian.tar.gz.diff.gz.orig.tar.gz

dpkg-source -x file.dscそこからdpkg-devコピーされたファイル(パッケージの次のツールなど)を使用してソースパッケージを解凍し、生成されたディレクトリ.dscに変更します。

次に、すべてのビルド依存関係がインストールされていることを確認し、dpkg-checkbuilddeps必要に応じて欠落している依存関係をインストールします。

(オプション)dch --bpoバックポートの精度に応じて適切な変更ログエントリとバージョン番号を追加するには、実行します。

dpkg-buildpackage -bその後、再構築パッケージを実行します。

関連情報