如何制作/提取/修改包的来源并重新打包?

5 packaging

我有一个有错误的包,我需要修改它,然后重新打包,这就是我正在做的。有没有其他快速的方法?

  1. 仅列出/查看(驱动程序文件或应用程序)

    ar tv DesktopVideo-8.0.1-amd64.deb
    rw-r--r-- 0/0      4 Sep 25 07:35 2011 debian-binary
    rw-r--r-- 0/0 14942208 Sep 25 07:35 2011 control.tar.gz
    rw-r--r-- 0/0    102 Sep 25 07:35 2011 data.tar.gz
    
    Run Code Online (Sandbox Code Playgroud)
  2. 提炼

    ar x DesktopVideo-8.0.1-amd64.deb
    control.tar.gz  data.tar.gz debian-binary
    
    Run Code Online (Sandbox Code Playgroud)
  3. 提取tar.gz

    tar xvfz control.tar.gz
    tar xvfz data.tar.gz
    ;; modify my codes and updates
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重新包装/重建这个回来

    mkdir -p debian/DEBIAN
    ; step 1
    cp -R ./debian-binary debina/DEBIAN
    cp -R ./control debian/DEBIAN
    cp -R ./control debian/DEBIAN
    cp -R ./control debian/DEBIAN
    ; step 2
    cp -R ./etc debian/DEBIAN
    cp -R ./usr debian/DEBIAN
    
    Run Code Online (Sandbox Code Playgroud)
  5. 立即制作 .DEB

    ; this is how the skeleton look like before applying --build
    root@desktop:~/Downloads/test# ls
    control.tar.gz  data.tar.gz  debian  debian-binary  etc  usr
    
    root@desktop:~/Downloads/test# dpkg-deb --build debian
    dpkg-deb: building package `desktopvideo' in `debian.deb'.
    
    Run Code Online (Sandbox Code Playgroud)

- 失败的

# 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
Run Code Online (Sandbox Code Playgroud)

Mar*_*ppi 4

如果您还没有安装构建工具,请安装:sudo apt-get install build-essential

您可以使用该apt-get source DesktopVideo命令将源、差异以及与该 deb 关联的所有其他打包文件拉入当前目录。从那里应用补丁,在日志文件中添加新条目dch -i,然后使用 fakeroot 和 dpkg 创建包dpkg-buildpackage -rfakeroot -us -uc