ローカルAPTリポジトリの名前を変更するには?

ローカルAPTリポジトリの名前を変更するには?

私は次のステップに従いました。この投稿カスタムリポジトリを作成しましたが、名前を変更したいと思います。私はこれを行う方法を見つけることができません。助けてください?

答え1

パッケージの名前を変更する方法を知りたいと思います。これを行う方法は2つあります。この例では、名前をcowsay次のように変更します。mysay

ソースから

Debian(またはUbuntu)のソースパッケージをダウンロードし、必要に応じてファイルの名前を変更し、古い名前をディレクトリの新しい名前に変更しますdebian/*sedこの行が何をするのかがこれですdpkg-buildpackage

一部のパッケージにはパッケージ名によって異なるビルドルールがあり、owsayほど単純ではない場合があります。最も難しい選択かもしれません。

apt source cowsay
mv cowsay-3.03+dfsg2 mysay-3.03+dfsg2
mv cowsay_3.03+dfsg2-8.dsc mysay_3.03+dfsg2-8.dsc
mv cowsay_3.03+dfsg2.orig.tar.gz mysay_3.03+dfsg2.orig.tar.gz
cd mysay-3.03+dfsg2/
sed -i 's/\bcowsay\b/mysay/g' debian/changelog debian/control
sed -i 's./debian/cowsay./debian/mysay.g' debian/rules
dpkg-buildpackage -uc -us

バイナリから

手動で分割したいアーカイブの* .debをインポートしてcontrolファイルを編集してもう一度統合します。

apt download cowsay
mkdir mysay && cd mysay

# Split everything up
ar -x ../cowsay_3.03+dfsg2-8_all.deb
mkdir control
tar -xf control.tar.xz -C control

# CHange the package name
sed -i 's/cowsay/mysay/' control/control

# Put the control file back togeather
cd control
tar -cf control.tar.xz *
mv control.tar.xz ../
cd ..
rm -r control

# Put the rest back togeather
ar r ../mysay_3.03+dfsg2-8_all.deb debian-binary control.tar.xz data.tar.xz

バイナリから(方法2)

これは再組み立てプロセスを単純化する。おそらくこれが最も簡単な方法です。

apt download cowsay
ar x cowsay_3.03+dfsg2-8_all.deb 
mkdir -p mysay/DEBIAN
tar -xf control.tar.xz -C mysay/DEBIAN
tar -xf data.tar.xz -C mysay/
sed -i 's/cowsay/mysay/' mysay/DEBIAN/control
dpkg-deb -b mysay

いくつかの最終注意事項:

  • 同じシステムにインストールしてインストールしようcowsayとすると、mysayパッケージの1つが失敗します。これはすべて同じファイルを提供するため、システムはそのファイルの所有者を知ることができないためです。 1つの確実な方法はConflicts: cowsay次のとおりですmysay

  • パッケージの名前を変更するのは少し奇妙です。明らかに、上記の衝突が発生します。これが必要な状況を想像できるかもしれません。

関連情報