Linux deb包解压、修改等操作方法代码示例

出于多种原因,有的时候需要直接对deb包中的各种文件内容进行修改

主要有三个问题需要解决:

0、如何将deb包文件进行解包呢?

1、修改要修改的文件?

2、对修改后的内容进行生成deb包?

解包命令为

#解压出包中的文件到extract目录下

lin@lin-host:~/Desktop/100次重启工具$ ls
LongTestTools.sh loong-test-s2s3_1.0.0-2_all.deb readme.txt
lin@lin-host:~/Desktop/100次重启工具$ dpkg -X loong-test-s2s3_1.0.0-2_all.deb extract/
./
./usr/
./usr/bin/
./usr/bin/BootReplace.sh
./usr/bin/BootTest.sh
./usr/bin/LongTestTools.sh
./usr/bin/RebootReplace.sh
./usr/bin/RebootTest.sh
./usr/bin/SleepTest.sh
./usr/bin/SuspendTest.sh
lin@lin-host:~/Desktop/100次重启工具$ ls
extract LongTestTools.sh loong-test-s2s3_1.0.0-2_all.deb readme.txt
lin@lin-host:~/Desktop/100次重启工具$ tree extract/
extract/
└── usr
  └── bin
    ├── BootReplace.sh
    ├── BootTest.sh
    ├── LongTestTools.sh
    ├── RebootReplace.sh
    ├── RebootTest.sh
    ├── SleepTest.sh
    └── SuspendTest.sh

#解压出包的控制信息extract/DEBIAN/下:

lin@lin-host:~/Desktop/100次重启工具$ dpkg -e loong-test-s2s3_1.0.0-2_all.deb extract/DEBIAN/
lin@lin-host:~/Desktop/100次重启工具$ tree extract/
extract/
├── DEBIAN
│   ├── control
│   └── md5sums
└── usr
  └── bin
    ├── BootReplace.sh
    ├── BootTest.sh
    ├── LongTestTools.sh
    ├── RebootReplace.sh
    ├── RebootTest.sh
    ├── SleepTest.sh
    └── SuspendTest.sh

3 directories, 9 files

#修改文件

vi extract/usr/bin/BootTest.sh

对修改后的内容重新进行打包生成deb包

lin@lin-host:~/Desktop/100次重启工具$ dpkg-deb -b extract/
dpkg-deb:正在新建软件包 loong-test-s2s3,包文件为 extract.deb。
lin@lin-host:~/Desktop/100次重启工具$ ls
extract extract.deb LongTestTools.sh readme.txt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)

    老左在之前的不少文章中已经分享过在centos或者在debian环境下安装lnmp和llsmp的教程,老左用人格担保肯定是可行的,因为我都是在实战操作后截图及写下来的文章.可以让VPS初学者手把手的学习如何在Linux VPS上安装系统及建立网站.老左第一次使用VPS不会安装环境,准备请一个网友安装,还准备收费50元,鉴于此我就自学. 我们在学会了VPS的安装和建站之后,肯定需要附带学习VPS的安全设置.因为VPS和主机不同,主机商可能会给我们备份,而且主机的安全性都有主机商承担.但是,如果现在

  • Debian配置JDK1.7 与Linux Java Helloworld

    其实JAVA的原生平台是Linux的,只是它可以跨平台运行而已.在Linux中甚至就有了原生的JDK,但是这些JDK难免不完整,因此最好自己配置一个JDK1,7,为以后的Tomcat,安卓等做好准备.下面以JDK1.7在Debian的配置为例子,讲解在Linux中如何配置JDK. 一.JDK1.7的下载与安装 1.首先,与在Windows配置JDK一样,打开Java的官网(点击打开链接)同意了协议之后,下载Linux版的JDK,下载那个压缩版的.tar.gz.记得同意协议,否则永远不让下载.I3

  • Windows和Linux中php代码调试工具Xdebug的安装与配置详解

    一.为什么需要Debugger? 很多PHP程序员调试使用echo.print_r().var_dump().printf()等,其实对 于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以 看出来(当然可能还需要使用一些时间函数).那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓. 二.什么是Xdebug? Xdebug是一个开放源代码的PHP程序调试器(

  • linux服务器系统CentOS、uBuntu、Gentoo、FreeBSD、Debian的比较

    官网:http://www.centos.org/ CentOS其实是Redhat的内核,感觉是会成熟稳定一点,相比旧Redhat,他多了一个yum的命令,学Debian一样自动安装软件:但我感觉CentOS的可以Yum的东西相比Debian或Ubuntu,实在太少了:CentOS游走在年轻与成熟之间,它比Ubuntu更注重安全性,你看他的CentOS5.0默认一装好就自带并打开防火墙就知道:而且有一个叫SELinux的东东在里面,让不同的程序之间权限有所限制,这也是我装CentOS一些软件经常

  • Linux下查看.so和可执行文件是否debug编译的方法(必看)

    今天同事问我,如何判断一个.so是否是debug编译的. 我记得以前自己是用file来查看一个.so,根据是否包含"not stripped"来判断该.so是否是debug编译的,于是就没做实验就回答. 然而,stripped/not stripped并不是debug/release编译的判断标准. 我对debug和release的.so运行file后,得出几乎相同的输出, 都是not stripped. 所以我算是误导同事了. 根据<Computers Systems - A

  • 详解linux 下安装软件tar.gz, rpm,deb的方法

    在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种: 1)一种是软件的源代码,您需要自己动手编译它.这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz). 2)另一种是软件的可执行程序,你只要安装它就可以了.这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm. 当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包.只要您理解了以下的思路,这两种形式的安装包也不在话下

  • IntelliJ IDEA远程Debug Linux的Java程序,找问题不要只会看日志了(推荐)

    1 前言 我们习惯于在本地开发的时候debug,能快速定位与解决问题,那部署在服务器上是不是就没有办法了呢?只能通过查看日志来定位? 不是的,在远端的服务器上,我们一样可以debug. 2 IDEA的debug 我们先来看一下在IntelliJ IDEA直接debug是怎样的. 先准备一个简单的Java程序: package com.pkslow.basic; import java.util.Map; public class RemoteDebug { public static void

  • 在Debian系的Linux中编译并安装ixgbe驱动的教程

    Intel的10G网卡(比如,82598. 82599. x540)由ixgbe驱动支持.现代的Linux发行版已经带有了ixgbe驱动,通过可加载模块的方式使用.然而,有些情况你希望在你机器上的自己编译安装ixgbe驱动,比如,你想要体验ixbge驱动的最新特性时.同样,内核默认自带的ixgbe驱动中的一个问题是不允许你自定义驱动的参数.如果你想要一个完全定制的ixgbe驱动(比如 RSS.多队列.中断阈值等等),你需要手动从源码编译ixgbe驱动. 这里是如何在Ubuntu.Debian或者

  • 在Debian系的Linux中检查软件包是否被安装的方法

    如果你正在管理Debian或者Ubuntu服务器,你也许会经常使用dpkg 或者 apt-get命令.这两个命令用来安装.卸载和更新包. 在本篇中,让我们看下如何在基于DEB的系统下检查是否安装了一个包. 要检查特定的包,比如firefox是否安装了,使用这个命令: dpkg -s firefox 示例输出: Package: firefox Status: install ok installed Priority: optional Section: web Installed-Size:

  • Linux deb包解压、修改等操作方法代码示例

    出于多种原因,有的时候需要直接对deb包中的各种文件内容进行修改 主要有三个问题需要解决: 0.如何将deb包文件进行解包呢? 1.修改要修改的文件? 2.对修改后的内容进行生成deb包? 解包命令为 #解压出包中的文件到extract目录下 lin@lin-host:~/Desktop/100次重启工具$ ls LongTestTools.sh loong-test-s2s3_1.0.0-2_all.deb readme.txt lin@lin-host:~/Desktop/100次重启工具$

  • linux下怎么解压.tar.gz .tar.bz2命令

    从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包 要解压很简单 : .tar.gz     格式解压命令为          tar   -zxvpf   xx.tar.gz .tar.bz2   格式解压命令为          tar   -jxvpf    xx.tar.bz2 //p参数可以保留原文件权限(很重要) 以上所述是小编给大家介绍的linux下怎么解压.tar.gz .tar.bz2命令,希望对大家有所帮助,如果大家有任何疑问欢迎给我

  • Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)

    LZ初学SQL,本来以为开源的安装很简单,但是中间出现了一些问题,记录下来,希望能帮助到他人. mysql官网下载地址:https://dev.mysql.com/downloads/mysql/点击打开链接 以5.7.20版本为例 首先安装包解压后,没有网上教程里面提到的data文件夹和my-default.ini,如下图所示 配置环境变量请参照网上教程,这个一般没有问题 主要注意以下几点: (1)my-default.ini文件存不存在不重要,关键需要自己在根目录下新建一个my.ini文件,

  • Linux 中unzip解压时中文乱码的解决办法

    Linux 中unzip解压时中文乱码的解决办法 当我们在linux中解压一个含有中文名字的压缩包如"资料.zip"时,如果直接使用如下的命令,将会出现中文乱码. unzip 资料.zip 主要的原因是因为unzip在解压的时候会将编码转化为其内部默认的编码,而默认的编码根本不支持中文CP936编码.因此我们需要在解压的时候明确的指定需要使用的编码. 目前可以采用如下两种方式解决 方法一 在解压的时候直接指定编码格式 #指定GBK GB18030编码也是可以的 unzip -O CP9

  • linux对文件解压或打包压缩的方法

    tar命令用与对文件打包压缩或解压,格式: tar [选项] [文件] 打包并压缩文件: tar -czvf  压缩包名 .tar.gz 解压并展开压缩包: tar -xzvf  压缩包名 .tar.gz 参数 -c  创建压缩文件: -x 解开压缩文件: -t 查看压缩包内有哪些压缩文件: -z 用Gzip解压或压缩: -j 用 bzip2解压或压缩: -v显示压缩或解压的过程: -f目标件名: -p保留原始的权限与属性: -P使用绝对路经来压缩: -C指定解压到的目录: 以上所述是小编给大家

  • linux xz压缩解压的方法小结

    先给大家介绍下linux xz压缩解压的方法小结 1. 解压 xz 格式文件 方法一: 需要用到两步命令,首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,其次用 tar 命令将 linux-3.12.tar 完全解压. xz -d linux-3.12.tar.xz tar -xf linux-3.12.tar 方法二(推荐) tar -Jxf linux-3.12.tar.xz 2. 创建 xz 格式文件 方法一: 也是用

  • Python批量解压&压缩文件夹的示例代码

    目录 一.python批量解压 二.python批量压缩 一.python批量解压 提示:如果是重要数据解压前请先备份,解压后会覆盖原压缩文件!! 解压前: 解压后:文件名为英文: 文件名中包含中文: 代码如下 import os import shutil import zipfile # 首先引入需要的工具包 # shutil为后期移动文件所需,可以忽略此项 # 路径改这里! #parent_path = r'输入路径,会解压该路径下的所有zip压缩文件' parent_path = r'E

  • Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.util.zip.*; import javax.swing.*; //从压缩包中提取文件 public class ZipExtractDemo extends JFrame{ JFileChooser fileChooser; //文件选择器 JTextField jtfTarg

  • Java解压zip文件完整代码分享

    关于Java解压zip文件,我觉得也没啥好多说的,就是干呗..代码如下: package com.lanyuan.assembly.util; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; i

  • go 压缩解压zip文件源码示例

    目录 压缩zip 解压zip 压缩zip func Zip(dest string, paths ...string) error { zfile, err := os.Create(dest) if err != nil { return err } defer zfile.Close() zipWriter := zip.NewWriter(zfile) defer zipWriter.Close() for _, src := range paths { // remove the tra

随机推荐