パッケージを抽出し、少し変更を加えて再パッケージする方法を知っています。以前の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
その後、再構築パッケージを実行します。