-
2021-05-10 02:40:27
制作deb包的三种方法
发布时间:2008-06-10 16:05:39来源:红联作者:Mhynan
我所知道的制作deb包有三种方法,一种是将现有的文件打包,安装该包就像将打包的文件释放到某个目录;第二种是用deb源码打包; 第三种是用makefile源码打包,安装这种包就相当于用源码编译安装软件。
1. 第一种方法-----将现有的文件打包:
比如你要打包你当前debian系统的/usr/src/soft目录,然后在另一个debian系统上安装
改包时这些文件也释放到/usr/src/soft目录下:
在随便一个目录,比如是root下创建一个工作目录,比如是work
#cd /root
#mkdir work
#cd work
因为安装包的时候默认是将文件释放到根目录下,所以我们设定好它的路径:
#mkdir -p usr/src
#cp -a /usr/src/soft usr/src
#mkdir DEBIAN
用如下的方法在DEBIAN目录下创建一个control文件,并用加入内容:
#cat >DEBIAN/control/etc/apt/sources.list 文件中加入 deb-src 条目.
然后, 运行命令
# apt-get update 或# aptitude update就可以用下面的命令下载源码包:
# apt-get source packagename 或 # aptitude source packagename
通常会下载三个文件:.orig.tar.gz,.dsc 和 .diff.gz。对于 Debian 专用的软件包,最后一个文件不会下载,第一个文件的文件名中没有“orig”项。
dpkg-source 读取 .dsc 文件信息,将源码包解包到 packagename-version 目录,下载下来的源码包中有一个 debian/ 目录,里面是创建 .deb 包所需的文件。
例如:
$ apt-get source nano
Reading package lists... DoneBuilding dependency tree...
DoneNeed to get 1199kB of source archives.
Get:1
http://ftp.us.debian.org
testing/main nano 1.3.11-2 (dsc) [706B]
Get:2
http://ftp.us.debian.org
testing/main nano 1.3.11-2 (tar) [1173kB]
Get:3
http://ftp.us.debian.org
testing/main nano 1.3.11-2 (diff) [25.4kB]
Fetched 1199kB in 3m46s (5287B/s) ... ...
dpkg-source: extracting nano in nano-1.3.11
dpkg-source: unpacking nano_1.3.11.orig.tar.gz
dpkg-source: applying ./nano_1.3.11-2.diff.gz
做相应调整后, 在源代码的根目录 nano-1.3.11 下运行:
# dpkg-buildpackage -rfakeroot -uc -b将代码编译成为软件包。
想要下载的源码包自动编译成软件包,只需在命令行中加上 -b,例如:
# apt-get -b source packagename请在下载包所在的目录中运行上面的命令。
# dpkg -i file.debapt-get的source命令与它的其它命令有所不同,普通用户权限就可以运行source命令,指定文件被下载到用户调用 apt-source package 命令时所处的目录中。
3.第三种方法,用makefile的源码打包
在源码所在的目录下用make命令来编译,然后用checkinstall命令来打包.
若没有checkinstall命令则可以先安装apt-get install checkinstall.
更多相关内容 -
多个python文件打包成可执行的exe文件
2020-04-28 21:33:24首先,我的文件结构是这样的: UTool是整个python项目文件,里面包含packs文件夹,rcat_images文件夹,主函数main.py 其中packs里面包含若干py文件,rcat里面是图片文件 ...制作spec文件 #-*- mode: pyth...python项目(包含多个python文件)打包成exe文件
首先,我的文件结构是这样的:
UTool是整个python项目文件,里面包含packs文件夹,rcat_images文件夹,主函数main.py
其中packs里面包含若干py文件,rcat里面是图片文件
此文是用pyinstaller完成的。
首先安装pyinstaller,pip install pyinstaller1.将所有文件放于主文件夹下(这里是UTool),主文件夹里面可包含多个文件和文件夹
2.打开cmd,切换到UTool路径下,输入:
先在控制台中输入 chcp 65001(为了解决编码问题)
然后输入:pyi-makespec main.py
生成main.spec文件制作spec文件
#-*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['main.py', 'D:\\Study\\pythonProject\\UTool\\packs\\__init__.py', 'D:\\Study\\pythonProject\\UTool\\packs\\auto_open.py', 'D:\\Study\\pythonProject\\UTool\\packs\\clike.py', 'D:\\Study\\pythonProject\\UTool\\packs\\code_reader.py', 'D:\\Study\\pythonProject\\UTool\\packs\\complexity_analyse.py', 'D:\\Study\\pythonProject\\UTool\\packs\\control.py', 'D:\\Study\\pythonProject\\UTool\\packs\\csharp.py', 'D:\\Study\\pythonProject\\UTool\\packs\\gdscript.py', 'D:\\Study\\pythonProject\\UTool\\packs\\go.py', 'D:\\Study\\pythonProject\\UTool\\packs\\java.py', 'D:\\Study\\pythonProject\\UTool\\packs\\javascript.py', 'D:\\Study\\pythonProject\\UTool\\packs\\js_style_language_states.py', 'D:\\Study\\pythonProject\\UTool\\packs\\js_style_regex_expression.py', 'D:\\Study\\pythonProject\\UTool\\packs\\lua.py', 'D:\\Study\\pythonProject\\UTool\\packs\\objc.py', 'D:\\Study\\pythonProject\\UTool\\packs\\php.py', 'D:\\Study\\pythonProject\\UTool\\packs\\print_error.py', 'D:\\Study\\pythonProject\\UTool\\packs\\python.py', 'D:\\Study\\pythonProject\\UTool\\packs\\Resource_Calculate.py', 'D:\\Study\\pythonProject\\UTool\\packs\\ruby.py', 'D:\\Study\\pythonProject\\UTool\\packs\\rubylike.py', 'D:\\Study\\pythonProject\\UTool\\packs\\scala.py', 'D:\\Study\\pythonProject\\UTool\\packs\\script_language.py', 'D:\\Study\\pythonProject\\UTool\\packs\\swift.py', 'D:\\Study\\pythonProject\\UTool\\packs\\ttcn.py'], pathex=['D:\\Study\\pythonProject\\UTool'], binaries=[], datas=[('D:\\Study\\pythonProject\\UTool\\rcat_images','rcat_images')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=['matplotlib','numpy','pandas'], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, [], exclude_binaries=True, name='main', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=True ) coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, upx_exclude=[], name='main')
(1)第一个列表中写所有的py文件,与main一个文件夹的可以直接写文件名,不一个文件夹的需要写完整的文件路径。
(2)datas是中的元素是tuple类型,tuple的第一个参数是python项目中data文件(非py文件)的路径,
第二个参数是data在exe中保存此资源的文件夹名,要和项目中的文件夹名相同
(3)excludes里面可以填写不用的包名,这样打包以后会小点,例如:matplotlib等
(4)因为main.py是入口文件,所以被调用的其他py文件的当前路径都是main.py文件的当前路径。所以在源代码中就一定要把main.py放到最外层的项目文件夹中。在main.py中饮用了其他py文件,main.py文件要能在当前路径下找到其他文件。如果出现:“ImportError: No module named 'sklearn.utils.cython_blas”
缺少包,加入就行。在hiddenimports中加入这个包
hiddenimports=[‘cython’, ‘sklearn’, ‘sklearn.utils._cython_blas’ ],3.用配置好的spec文件制作exe:
pyinstaller -D main.spec
使用-D制作出来的exe比使用-F的快很多,因为-F把所有dll文件都打包到一个exe中了(-F这时候exe会很大,加载变慢,推荐-D)。4.生成后的exe在dist的main中
5.点击运行exe即可 -
springboot制作补丁包通用解决方案
2021-07-24 20:45:22补丁包是大多数项目型产品在其运行的生命周期内进行日常维护必不可少的手段之一,在产品的运维中扮演着非常重要的作用 当产品在生产花环境稳定运行的过程出现了功能性或非功能性bug,而客户方并不打算在短期内重新...前言
补丁包是大多数项目型产品在其运行的生命周期内进行日常维护必不可少的手段之一,在产品的运维中扮演着非常重要的作用
当产品在生产花环境稳定运行的过程出现了功能性或非功能性bug,而客户方并不打算在短期内重新考虑升级计划时,对于产品开发者,可以在修复原版本产品bug基础上,进行增量补丁包的发布
关于补丁包的做法,不同的语言和不同的技术框架也有所差别,本篇以目前Java开发中比较通用的springboot框架为例,通过一个简单的案例进行说明
补丁包涉及到的主要技术
assembly + antrun
首先简单说明下这两个组件,也可以理解为使用这两个插件做补丁包的构建。
assembly : 我们一般java工程都是通过Maven来管理构建的,要使用的时候就使用了jar形式,而我们知道其中有很多的依赖,而Maven本身的打包成jar是不包含这些依赖的,我们可以在pom.xml中配置maven-assembly-plugin来实现依赖打包;
antrun : 程序的pom文件中引入了antrun插件之后,可以帮助我们在打包的时候,灵活而方便的对项目工程中的各个模块文件进行各种操作,比如自定义文件拷贝目录,即做到动态管理各种资源文件
环境准备
基于maven,快速搭建一个简单的聚合工程,本工程包含3部分,web模块,core模块和build打包模块,模拟真实工程,甚至还可以创建更多模块
1、根pom依赖
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifestEntries> <Ant-Version>2.0.14.0</Ant-Version> </manifestEntries> </archive> </configuration> </plugin> </plugins> </build>
本项目作为演示案例,并没有引入过多依赖,因此只导入了springboot-web,可以结合实际需要继续添加
2、web模块pom依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>assmblytest</artifactId> <groupId>com.congge</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>web</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes> <exclude>*.properties</exclude> <exclude>*.yml</exclude> </excludes> <archive> <addMavenDescriptor>false</addMavenDescriptor> <manifest> <!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 --> <mainClass>com.congge.App</mainClass> <!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 --> <useUniqueVersions>false</useUniqueVersions> </manifest> <manifestEntries> <!-- 在Class-Path下添加配置文件的路径 --> <Class-Path>conf/</Class-Path> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>build-bin</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <descriptors> <!--assembly.xml 文件描述--> <descriptor>assembly.xml</descriptor> </descriptors> <finalName>assmbly</finalName> <appendAssemblyId>false</appendAssemblyId> <attach>false</attach> </configuration> </execution> </executions> </plugin> </plugins> <resources> <!--根据需要进行添加--> <!--<resource> <directory>src/main/java</directory> <includes> <include>src/main/resources/mapper/*.xml</include> </includes> </resource>--> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> </project>
在pom依赖中,指定了assembly的文件位置
assembly文件,可以理解为定义项目资源文件目录的描述元信息,比如说,你即将要打的补丁包里面的一些class文件,一些配置文件,甚至数据库脚本等
比如我这里,在web模块下,指定的assembly文件就在web的根目录下<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> <id>bin</id> <includeBaseDirectory>false</includeBaseDirectory> <formats> <format>dir</format> <format>tar.gz</format> </formats> <dependencySets> <dependencySet> <!--是否把本项目添加到依赖文件夹下:--> <useProjectArtifact>false</useProjectArtifact> <!-- 将项目所有依赖包拷贝到发布包的lib目录下 :--> <outputDirectory>lib</outputDirectory> <!-- 符合runtime作用范围的依赖会被打包进去: --> <scope>runtime</scope> </dependencySet> </dependencySets> <fileSets> <!--数据库脚本文件--> <!--<fileSet> <directory>target/classes/database/mysql</directory> <outputDirectory>database/mysql</outputDirectory> <includes> <include>*.sql</include> </includes> <fileMode>0755</fileMode> </fileSet>--> <fileSet> <directory>..</directory> <outputDirectory>config/</outputDirectory> <lineEnding>unix</lineEnding> <includes> <include>bootstrap.yml</include> </includes> <fileMode>0755</fileMode> </fileSet> <fileSet> <directory>target/classes</directory> <outputDirectory>config</outputDirectory> <includes> <include>*.properties</include> </includes> <fileMode>0755</fileMode> </fileSet> </fileSets> </assembly>
在实际项目中,可能其他的除了web之外的模块也需要进行资源文件的补丁包打包,也可以像上面这样同样的操作即可
3、build模块pom依赖
build模块可以单独作为构建补丁包的模块进行统一管理,这样做的好处是,补丁包的最终出处在这个模块下,里面可以进行各种文件的管理,比如jar包目录,class文件目录,甚至各种启动脚本等
pom依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>assmblytest</artifactId> <groupId>com.congge</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>bulid</artifactId> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <profiles> <profile> <id>deploy</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>build-bin</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <tarLongFileMode>gnu</tarLongFileMode> <descriptors> <descriptor>assembly.xml</descriptor> </descriptors> <outputDirectory>target</outputDirectory> <finalName>assmblytest</finalName> <appendAssemblyId>false</appendAssemblyId> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <ant antfile="${basedir}/build.xml"/> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>
patch.yaml ,用于描述补丁包中解决的bug等信息,通常根据自己项目规范即可
build.xml 制作补丁包时最终补丁包文件的位置信息描述,即可以理解为补丁包中的文件包括哪些?这些文件从哪里来?
一旦当你的描述信息正确无误时候,运行maven命令时候,ant插件就会按照描述信息将补丁包制作好,如下是一个标准的样板文件,可根据自身需要进行修改即可使用
<?xml version="1.0" encoding="UTF-8" ?> <project name="tenant-project" default="build"> <target name="build"> <!--创建一个文件目录,用于存放最终的补丁包文件--> <mkdir dir="target/patch/assmblytest"/> <!--将patch.yaml 拷贝到补丁包目录--> <copy file="patch.yaml" todir="target/patch/assmblytest"/> <!--将依赖jar包拷贝到补丁包的 assmblytest/lib目录下--> <copydir src="target/assmblytest/assmblytest/lib" dest="target/patch/assmblytest/lib"> <include name="spring-*.jar"/> </copydir> <!--将依赖的资源配置文件拷贝到补丁包的 assmblytest/config目录下--> <copydir src="target/assmblytest/assmblytest/config" dest="target/patch/assmblytest/config"> <include name="application.properties"/> </copydir> <!--最终打出来的jar包信息--> <tar basedir="target/patch/" compression="gzip" tarfile="target/assmblytest.tar.gz"/> </target> </project>
最后,让我们来运行一下maven打包命令,看看效果如何,执行如下命令:
mvn clean package -U -DskipTests
通过运行中的日志,也可以大概看出其打补丁包的执行过程到这一步,我们完成了补丁包的制作,但这个是比较粗略的,真正项目中,还需要遵循公司的规范,比如补丁包的命名规范
同时,通过此例,可以看到,该补丁包属于增量补丁包,后续的流程是,通过shell命令,解压补丁包,将补丁包内的各个层级的文件,比如配置文件,依次替换生产环境下匹配目录下的文件,最后重启服务即可
本篇到此结束,最后感谢观看!
-
CTF实战练习:文件上传漏洞+文件包含漏洞
2019-08-06 19:52:26BugkuCTF:文件包含2 CTF实战练习:http://120.78.xx.xxx:8013 这道题目看起来又像是跟前一道题是差不多的样子,继续先查看index.php里面的内容: 哎~这次好像显示的并不是base64编码的内容,但是感觉起来这个...BugkuCTF:文件包含2
CTF实战练习:http://120.78.xx.xxx:8013
这道题目看起来又像是跟前一道题是差不多的样子,继续先查看index.php里面的内容:
哎~这次好像显示的并不是base64编码的内容,但是感觉起来这个信息一点用都没有,第二步,查看网页源代码:
从网页源代码里我们可以看出在JS脚本里包含了一个html页面,我们现在来访问一下这个页面,看看有什么东西:
通过文件包含访问信息之后发现页面没有返回任何信息,这个时候我们查看一下网页源代码:
从源代码里似乎我们找到了要找的东西,仔细观察注释的内容,注释里提示了一个页面叫upload.php,看文件名就能看出来,这指定是上传文件的页面了,我们继续通过文件包含的形式来查看,页面如下:
从页面信息我们可以看到网站通过白名单的方式限制了上传文件的类型,只能上传jpg、gif、png格式的图片文件,此时我们就需要绕过检测,将我们的木马文件进行上传,怎么绕过呢?
其实一开始我用了一种挺麻烦的方法拿到了flag,先说说我怎么做的吧。
我首先当然是使用burpsuite抓包,然后通过修改文件类型等进行绕过检测
在抓取到的信息中,我们修改一下Content-Type的值,改为image/jpg,修改完之后,点击Forward重传数据包,此时我们发现,页面显示信息文件上传失败,这说明不能通过这种绕过方式来进行绕过。
那现在怎么办呢,既然只要上传图片,那么我们可以构造图片木马进行上传,构造图片木马我们需要事先准备一张jpg格式的图片和一个写好的一句话木马文件,cmd打开命令行,使用如下图命令进行制作图片木马文件:
制作好了图片木马文件之后,我们修改一下文件的扩展名,修改为 .jpg.php,现在再利用burpsuite进行抓包上传,使用%00截断方式进行绕过
此时我们发现页面回显信息,文件已经上传成功,根据文件名提示,我们利用文件包含访问一下我们刚刚上传的图片木马文件
页面无回显信息,说明木马文件执行成功,现在我们使用中国菜刀来链接一下 试试能否访问成功
菜刀连接成功,说明我们的木马文件生效了,连接成功之后,我们就可以看到flag的所在地了
利用这种方法做呢比较麻烦,最简单的方法就是直接上传我们制作好的图片木马文件,然后直接根据路径去连接木马就可以了。
总结:在CTFweb题中关于文件类的题目经常会是这种文件上传漏送和文件包含漏洞一起使用,这时候就还是要合理利用方法,避免像我这样兜兜转转一大圈然后最后使用简单方法一样能做的出来。另外在这个题目中,关于使用的木马也是有要求的,不能使用最普遍使用的那个一句话木马进行图片木马的制作,像<?php @eval($_POST['pass']);?> 这个木马是没法办用的,也不是说没办法用,可以用但是最后菜刀连接不上我们的木马文件,原因是,在解析过程中<和php都被过滤掉了,这就很麻烦,这是用我们换一种木马的写法:<?=eval($_POST['shell']);这个木马最后是可以连接的。
-
在 Ubuntu 下直接将二进制文件制作成 rpm 包
2016-11-12 23:50:24大多数 rpm 包的制作都是用源码包来编译构建,而我的需求是直接将可运行的二进制文件制作成 rpm 包,而且是在 Ubuntu 系统上。网上的大部分资料都是源码来制作 rpm 包,且比较零乱、不完整。rpm 制作的重要一步就是... -
rpm补丁文件和升级包制作教程
2017-07-20 16:39:331.介绍 在开始介绍之前,首先表达一个观点,一般不推荐使用root构建构建RPM包,尤其对RPM... RPM包是一种优秀的软件包安装管理系统,而RPM源码包则是RPM包系统中重要的组成部分,是其他各种RPM包母体,其他种类的RPM -
iOS - 制作Bundle资源文件包以及正确访问
2018-05-10 10:13:44Command + B后生成Bundle包,点击Products里面的bundle文件 四、集成到项目中 将Bundle资源包放到项目的任意(或指定)的文件夹下 五、代码调用Bundle包的图片资源(写在UIImage的extension里): 1>方式一加载图片... -
打包开发板根文件系统,并制作成img镜像
2020-06-14 21:23:45打包开发板根文件系统,并制作成img镜像。 打包根文件系统,并制作成img镜像。 整体操作一共三步: 一、将开发板的整个根文件系统的文件,通过ssh拷贝到PC系统(Ubuntu); 二、将此拷贝的全部文件,加载到虚拟光盘... -
Python3学习(四十九):制作python包为wheel文件
2019-03-07 15:33:01wheel是一个已经编译好的包,在安装时不需要编译过程,安装whl文件时要比发布的源文件安装要快。 在如上第2步后,输入如下命令即可在生成.whl python setup.py bdist_wheel ... -
如何快速将 Linux 系统制作成 ISO 镜像文件?
2020-07-02 18:40:25Remastersys 包下载 $ mkdir tools $ cd tools/ $ wget ftp://ftp.gwdg.de/pub/linux/easyvdr/mirror/remastersys/ubuntu/remastersys/remastersys_3.0.4-2_all.deb $ wget ftp://ftp.gwdg.de/pub/linux/easyvdr/... -
Centos7.4制作简易RPM包
2019-06-19 12:44:23准备nginx-1.10.1.tar.gz ...1、准备制作环境 yum -y install rpm-build ##安装rpm-build软件 rpmbuild -ba xx.spec ##用命令创建工作目录 cd rpmbuild/SOURCES/ ##进入源码tar包存放目录 m... -
RPM包制作之Spec文件详解
2019-02-25 12:04:37不是版本太低就是文件分布太野路子”,此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,其中的Spec文件是制作RPM包的核心。下面我们以制作NGINX的RPM开始介绍其制作方法。以下操作... -
制作RPM包
2019-05-27 21:19:06安装rpm-build软件包,编写SPEC配置文件,创建新的RPM软件包。 配置文件中的描述信息如表-2: [root@host04 ~]# yum -y install rpm-build #安装rpm-build软件包 生成rpmbuild目录结构 [root@host04 ~]# rpmbuild -... -
deb包的制作
2017-11-27 19:39:34Deb是Debian软件包格式,文件扩展名为.deb,deb包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成,处理deb包的经典程序是dpkg,经常是通过apt来运作。 -
可执行bin文件的制作
2018-12-19 09:37:43有没有好奇过bin文件是怎么制作出来的呢,在我们的工作中是不是也可以使用bin文件的格式来制作我们自己的安装包或者是升级包。在了解bin文件的制作方式及其原理之后,就会觉得其实也没有那么难。下面就将制作的方式... -
Python 技术篇-将项目打包成whl文件实例演示,whl包的制作方法
2019-03-06 15:38:59Python 技术篇-将项目打包成whl文件实例演示,whl包的制作方法。 通过`pip help wheel`查看wheel的命令。 -w, --wheel-dir &lt;dir&gt;这就是whl的打包命令。 什么版本的python就会生成对应版本的... -
Ubuntu下制作deb包的方法详解
2016-10-16 12:55:27CSDN GitHub Ubuntu下deb包的方法详解 AderXCoding/system/tools/...1 认识deb包1.1 认识deb包deb是Unix系统(其实主要是Linux)下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。 -
ROM包制作
2018-03-05 10:35:02注意,包里的文件不可以出现非英文字符。[删的时候注意别把系统基本应用给干掉了,不确定的建议保留] ,font文件夹里的字体也可以修改, [铃声也是随便删。留个默认就行了] 完了压缩成zip,命名为update.zip ... -
linux 制作deb包的三种方法
2019-08-20 10:34:51一、使用deb包 1. 查看deb包含有哪些文件(不安装) $ dpkg -c xxx.deb // 安装前根据deb文件查看 $ dpkg -L debname // 安装后根据包名查看 ...3. 查看某个文件属于哪个deb包 $ dpkg -S filepath 4... -
将exe和dll文件打包成单一的启动文件(两种方法)
2018-11-29 11:36:00将exe和dll文件打包成单一的启动文件 当我们用 VS 或其它编程工具生成了可执行exe要运行它必须要保证其目录下有一大堆dll库文件,看起来很不爽,用专业的安装程序生成软件又显得繁琐,下面这个方法教你如何快速把... -
将exe和dll文件打包成单一的启动文件
2017-12-13 20:35:50将exe和dll文件打包成单一的启动文件 当我们用VS或其它编程工具生成了可执行exe要运行它必须要保证其目录下有一大堆dll库文件,看起来很不爽,用专业的安装程序生成软件又显得繁琐,下面这个方法教你如何快速把... -
Ubuntu 20.04 打包制作DEB包详细步骤及雷区
2020-08-28 23:08:12最近写了一个python的小程序,希望能打包成deb文件,把这个程序弄得有头有脸,安装deb后可以在应用列表和桌面看到。参考了许多资料(文后附),它们给了我很多指导,对此表示感谢。 需要准备的 1、源代码(前提要可... -
python恶搞程序和python文件打包exe教程
2019-10-19 14:59:12闲着无聊写了一个简易的恶搞小...打包成exe文件。 安装python环境我就不过多的介绍了,网上有很多教程,下面直奔主题。 import os, sys def mkdir(): path = 'C:\\'#创建文件路径 i = 0 a = 1 while a>0: ... -
制作CAB包
2016-12-30 16:01:09制作CAB包inf文件INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该... -
HBuilder制作移动APP资源升级包的教程。
2018-12-27 17:10:08制作移动app资源升级包,点击以后 可以去官网看下教程。 接下来在你的Vue代码里添加以下代码。 我在login.vue文件下写了一个在线更新为他绑定了一个更新事件 接下来就为UPpackage函数添加代码了。 UPpackage... -
CDH Parcel包制作流程详解
2020-12-28 21:09:47CDH Parcel包制作流程详解 背景介绍 CDH可以很方便的添加一些大数据相关服务,但这仅限于cloudera公司提供。若想将第三方服务(如公司自己开发的组件)添加到CDH集群(托管在CDH上),需要按照一定的规则流程制作... -
C#实现自动更新之(程序升级包制作)
2021-07-13 09:26:35前言 做客户端(C/S)系统开发的人都会遇到软件的自动更新;系统发布后怎样自动的更新程序?...自动更新的目的就是将服务器上的更新文件拷贝到本地执行目录中,并且覆盖本地同名的文件;流程很简单,但是实现起来有 -
Advanced Installer打包msi文件操作流程
2021-01-20 22:22:08注意如果是空文件夹不会被添加进来,如果是必要的空文件夹,请放入个空白txt文件来确保能被添加。 第六步:设置桌面图标快捷方式 如果需要在安装完成后在桌面自动创建桌面快捷方式,可以进行下面设置。 1.选中... -
dpkg制作deb包详解
2020-04-27 16:52:231 deb包文件结构 deb 软件包里面的结构,它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等)。在DEBIAN目录中至少必须包括control文件,还有可能postinst(postinstallation)、postrm(postremove)、preinst... -
在苹果Mac上如何制作ZIP文件
2020-12-30 14:38:41macz小编向大家展示如何在macOS上制作它们。 什么是ZIP文件? ZIP文件是包含多个文件的压缩存档。它使用ZIP作为其文件扩展名。您可以采用整个目录结构,并将其“压缩”在一个文件中,因此命名为。 创建ZIP文件的原因...