Debian
如何重命名本地 APT 儲存庫?
我按照這篇文章中的步驟創建了一個自定義儲存庫,但我想重命名它。我找不到任何方法來做到這一點。你能幫我麼?
聽起來您想知道如何重命名包。有兩種方法可以做到這一點。在此範例中,我將更改名稱
cowsay
為mysay
從源頭
下載 debian(或 ubuntu)源包,根據需要重命名文件,用目錄中的新名稱替換舊名稱
debian/*
(這就是sed
行所做的,然後使用dpkg-buildpackage
.請小心一點,因為某些包可能具有依賴於包名稱的建構規則,並且可能不像 cowsay 那樣瑣碎。這可能是最艱難的選擇。
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
那是因為它們都提供相同的文件,因此您的系統不可能知道哪個擁有它。使這個萬無一失的一種方法是Conflicts: cowsay
在mysay
.- 重命名包有點奇怪。肯定會導致上面提到的衝突。我不確定我是否可以想像一個必要的情況。