我按照以下步骤操作这个帖子创建自定义存储库,但我想重命名它。我找不到任何方法来做到这一点。你能帮我么?
答案1
听起来您想知道如何重命名包。有两种方法可以做到这一点。在此示例中,我将把名称更改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
,其中一个软件包将会失败。这是因为它们都提供相同的文件,因此您的系统不可能知道谁拥有它。一种万无一失的方法是Conflicts: cowsay
在mysay
.重命名包有点奇怪。肯定会造成上述的冲突。我不确定我能想象出有必要这样做的情况。