私は次のステップに従いました。この投稿カスタムリポジトリを作成しましたが、名前を変更したいと思います。私はこれを行う方法を見つけることができません。助けてください?
答え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
。パッケージの名前を変更するのは少し奇妙です。明らかに、上記の衝突が発生します。これが必要な状況を想像できるかもしれません。