如何重命名本地 APT 存储库?

如何重命名本地 APT 存储库?

我按照以下步骤操作这个帖子创建自定义存储库,但我想重命名它。我找不到任何方法来做到这一点。你能帮我么?

答案1

听起来您想知道如何重命名包。有两种方法可以做到这一点。在此示例中,我将把名称更改cowsaymysay

从源头

下载 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

最后一些注意事项:

  • 如果您尝试在同一台计算机上安装cowsaymysay,其中一个软件包将会失败。这是因为它们都提供相同的文件,因此您的系统不可能知道谁拥有它。一种万无一失的方法是Conflicts: cowsaymysay.

  • 重命名包有点奇怪。肯定会造成上述的冲突。我不确定我能想象出有必要这样做的情况。

相关内容