我有一个有bug的包,我需要修改它,然后重新打包,所以我就是这样做的。还有其他快速的方法吗?
desktopvideo' indebian.deb‘包。-失败
# dpkg -i DesktopVideo-8.0.1-amd64.deb
dpkg: error processing DesktopVideo-8.0.1-amd64.deb (--install):
unable to open file '/var/lib/dpkg/tmp.ci//etc': Is a directory
Errors were encountered while processing:
DesktopVideo-8.0.1-amd64.deb发布于 2011-09-25 13:32:35
如果您还没有安装构建工具:sudo apt-get install build-essential
您可以使用apt-get source DesktopVideo命令将与该deb关联的源、diffs和所有其他打包文件拉到当前目录中。从那里应用修补程序,在日志文件dch -i中添加一个新条目,然后使用fakeroot和dpkg创建包dpkg-buildpackage -rfakeroot -us -uc。
发布于 2011-09-25 14:35:29
做你想做的事在技术上是可能的,但你需要比你看起来更谨慎。很难知道你做错了什么,因为你没有复制粘贴你输入的所有内容。我确实发现了一个错误(cp -R ./debian-binary debina/DEBIAN,您显然没有准确地报告所做的事情),还有一个错误(cp -R没有保留所有权和权限,您需要cp -Rp或cp -a作为根)。
修改包的最佳方法是获取包源(apt-get source DesktopVideo)。修改源代码,然后向包changelog添加一个条目,更改版本号,使您的版本与正式版本号不同。下面是一个有关步骤的示例 (Debian和Ubuntu在这方面的工作是相同的)。
如果您没有源代码或不想重新编译,可以安装包,然后使用dpkg-divert将by文件(S)移开,并由您自己的版本替换它。dpkg-divert告诉包管理器将来自给定包的文件放在不同的位置。这里's就是一个使用它的例子。
如果您没有这个包的源代码,并且需要在几台机器上部署一个修复程序,您可以安装这个包,然后修改这个buggy文件,然后用dpkg-repack构建一个新的包。与其说这是一种健壮的包管理方法,不如说是一种分离行为;如果可能的话,我建议您修补源代码并部署您的家庭编译包。
发布于 2011-09-25 13:32:09
您应该能够使用apt-get -d source packagename检索包源(只有二进制文件)。然后您可以修改它,并使用debuild再次构建它。
https://askubuntu.com/questions/62919
复制相似问题