1.debian系如何把已经安装的改源改某个程序还原为deb?
2.deb怎么安装(deb怎么安装到linux)
3.deb是什么格式
4.打deb包.创建 apt源仓库
5.3、更换Debian的包修软件源
6.Arch安装deb包:为 deb 包编写 PKGBUILD 文件
debian系如何把已经安装的某个程序还原为deb?
探讨如何在Debian系统中,将已安装的改源改程序还原为.deb格式包进行操作,这涉及到下载源码、包修修改源代码、改源改重新生成安装包、包修aide源码分享安装等环节,改源改旨在实现个性化定制。包修
环境:使用的改源改是Debian 稳定版,搭配KDE Plasma界面和wayland。包修操作时间:年3月日。改源改
一、包修安装原版stterm
首先,改源改通过官方仓库安装stterm的包修二进制包。
二、改源改下载源代码
前往合适的文件存储位置,从官方网站下载源代码。若下载失败,可在deb-src源中添加代码源,确保在Debian目录下获得.dsc(基本信息文件)、源代码打包文件.tar.xz以及stterm-0.9目录。
三、配置文件修改
定位至需要修改的配置文件,包括字体、颜色、快捷方式等。
四、内容修改
针对需要调整的部分,替换相应的文本内容。涉及字体大小、主题颜色、快捷方式等。
五、提交修改
确保在源代码目录中,进行修改提交操作,输入补丁名并使用文本编辑器如vim进行内容修改和保存。
六、生成.deb包
在源代码目录中执行相关命令生成.deb包,注意识别生成的安装包文件,一般命名为stterm_0.9-1_amd.deb。
七、安装新.deb包
确保在源代码目录中,通过命令进行.deb包安装。
八、效果验证
安装后,程序界面实现个性化设置,如使用快捷键进行内容贴入贴出。遗憾的是,鼠标中键滚轮滚动界面的设置未能调整,欢迎知悉者提供帮助。
deb怎么安装(deb怎么安装到linux)
1、怎么安装deb软件?2、steamdeb文件如何安装?3、苹果ios越狱后deb文件怎么安装?4、deb辅助怎么做?5、python nmap 源码怎样在电脑安装deb格式的cydia插件?6、Debian怎么安装驱动程序?7、wps下载deb还是rpm格式?8、ubuntu怎么安装readline?怎么安装deb软件?
deb包是debian,ubuntu等LINUX发行版的软件安装包,是类似于rpm的软件包,而非debian,ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较麻烦。
1.一般在此类发行版中可以直接双击安装。
2.手动安装。
如果您喜欢使用终端,您需要管理员权限来安装一个 .deb 文件。
打开终端后,输入: sudo dpkg -i package_file.deb 要卸载一个 .deb 文件,在您的软件包管理器中取消选中它。
或者在终端中,输入: sudo dpkg -r package_name 例如安装QQ,文件名为linuxqq_v1.0-preview3_i.deb 可运行: sudo dpkg -i linuxqq_v1.0-preview3_i.deb
steamdeb文件如何安装?
去官网上点击有上角的安装steam客户端,然后会下载一个deb的安装包,在终端中执行sudo dpkg -i ***.deb就可以了,不过前提是你的系统是ubuntu系统,否则的花就去系统中的软件中心搜索steam安装就可以了!!
苹果ios越狱后deb文件怎么安装?
ioS设备越狱后可借助第三方助手软件安装deb格式的插件,第三方助手有爱思助手、pp助手、iTools等,这里已iTools为例演示一下操作过程(其助手同理):
第一步,在电脑安装iTools,将iOS设备通过数据线连接至电脑;
第二步,使用iTools进入iOS设备的文件管理页面;
第三步,将deb包导入Cydia安装目录,重启一至两次手机便可将deb插件安装。
deb辅助怎么做?
制作deb文件需要有dpkg-deb命令,Ubuntu/Debian 系统自带此命令,越狱过的 iPhone OS 也有此命令,Mac OS X 下需安装Fink,Windows 下需安装 Cygwin。 以上系统中,iPhone OS最适合用来打包deb文件,因为iPhone OS上的用户/组设置与所需要的设置是完全一致的。但因为iPhone/iPod Touch毕竟是手持设备,处理性能比不上电脑,在打包体积较大的deb文件时需要很长时间,有可能会导致失去连接或者SpringBoard崩溃。而且在WinSCP中涉及文本修改的部分,如果文本含有中文的话,编码是个问题(不会保存为UTF-8)。 Ubuntu/Debian 是 deb 文件系统的原生系统,在兼容性和处理性能上最好,但问题在于,Ubuntu/Debian 没有 iPhone OS 上的一些用户和组,最典型的巴山财经 源码就是wheel、mobile组和mobile用户。 Mac OS X的问题跟 Ubuntu/Debian 差不多,没有mobile用户/组,而且需要装 Fink 才能支持 deb。 Windows的问题最多,Cygwin体积超大不说,使用起来还很麻烦,加上 Windows 的文件系统和 Unix 标准完全不同,且 Windows 下会面临更严重的编码问题,所以不推荐用 Windows 来打包。 不管是哪个系统,打包 deb 的方法是一样的,只是在某些地方对于某些系统需... 制作deb文件需要有dpkg-deb命令,Ubuntu/Debian 系统自带此命令,越狱过的 iPhone OS 也有此命令,Mac OS X 下需安装Fink,Windows 下需安装 Cygwin。 以上系统中,iPhone OS最适合用来打包deb文件,因为iPhone OS上的用户/组设置与所需要的设置是完全一致的。但因为iPhone/iPod Touch毕竟是手持设备,处理性能比不上电脑,在打包体积较大的deb文件时需要很长时间,有可能会导致失去连接或者SpringBoard崩溃。而且在WinSCP中涉及文本修改的部分,如果文本含有中文的话,编码是个问题(不会保存为UTF-8)。 Ubuntu/Debian 是 deb 文件系统的原生系统,在兼容性和处理性能上最好,但问题在于,Ubuntu/Debian 没有 iPhone OS 上的一些用户和组,最典型的就是wheel、mobile组和mobile用户。 Mac OS X的问题跟 Ubuntu/Debian 差不多,没有mobile用户/组,而且需要装 Fink 才能支持 deb。 Windows的问题最多,Cygwin体积超大不说,使用起来还很麻烦,加上 Windows 的文件系统和 Unix 标准完全不同,且 Windows 下会面临更严重的编码问题,所以不推荐用 Windows 来打包。 不管是哪个系统,打包 deb 的方法是一样的,只是在某些地方对于某些系统需要特别注意。 一个 deb 安装包由两个部分组成,一个是安装控制/识别信息,另外一个就是实际的程序文件。 用7-zip或Linux下的存档管理器打开 deb 文件,其中安装控制/识别信息储存在 control.tar.gz 里面,而 data.tar.xxx 则储存了程序数据。 解包deb文件 引用 有时候不是需要制作一个全新的deb,而是需要修改现有的deb,那么第一步就是转发赚源码解包。假设deb的文件名是abc_1.0.deb 那么解包命令是 复制代码 dpkg-deb -x abc_1.0.deb tmp 和 复制代码 dpkg-deb -e abc_1.0.deb tmp/DEBIAN 第一个命令是用于解压出实际数据到tmp目录下,后一个命令是解压出安装控制脚本到tmp/DEBIAN目录下,此处必须是大写的DEBIAN。 可以看到在tmp目录下出现了实际数据和DEBIAN目录。 以dpkg-deb -x 和- e 命令解包deb会保留文件的属性/权限/用户/组等信息。 关于dpkg-deb的命令,可以输入 复制代码 dpkg-deb --help 进入DEBIAN目录,可以看到有一个control文件,无后缀名,这个文件就是用来记录deb的安装信息。有时候还可以看到postinst,preinst,prerm,postrm,extrainst_这些文件,这些文件是deb安装的时候执行的脚本(类似于Windows下的批处理文件)。 另外一种解包deb的方法就是用7-zip或者存档管理器之类的软件直接解包到指定目录,但这样不会保留文件的属性/权限/用户/组等信息,因此除非这些信息不重要,或者这些信息是通过脚本来设置,否则不推荐使用该种方法。如果只是要提取某些文件的话倒是可以用,省事一些。 准备打包deb的目录/文件 引用 如果是解包已有的deb,那么目录已经配置好了。如果是新建一个deb,需要有一个主目录,这里以tmp为例,在tmp目录下新建一个目录,DEBIAN。 完成deb数据配置 引用 将程序文件放在tmp目录下。放置规则是,假如在iPhone OS上一个文件是 /Applications/ABC.app/ABC,那么就在 tmp 目录下依次新建目录Applications,ABC.app,然后把ABC放在ABC.app下。其余文件和目录也是一样的放置。 这里要注意的是文件的属性/权限/用户/组的问题,当然前提是知道文件的属性和权限等信息。 通常来说,可执行文件,比如应用程序的可执行文件,脚本等,属性需设为或更高(或),/var/mobile/下的绝大部分文件/文件夹的用户/组需设为mobile等。 要设置文件/文件夹的权限/属性,使用命令 复制代码 chmod ABCD XXX 这样的格式,ABCD为需要的属性/权限,比如,等,一般来说,可行性文件需要设为(和大部分情况下是用不上的,有些特殊的需要设为等),其它文件默认就是台风ddos源码(不可执行),XXX是文件名,可以加上路径。 要设置文件/文件夹的用户/组,使用命令 复制代码 chown user:group XXXX 其中user是需要设置的用户,group是组。最常用的是root:wheel和mobile:mobile。 注意: 1. 如果当前用户是非root帐户,如果要将文件的用户/组设为root,需要使用sudo命令来提示权限。 2. 如果要递归设置以上信息,可以使用 -R 参数。比如要将tmp目录下的所有子目录和文件设为及root:wheel,可以使用命令 复制代码 chmod -R tmp chown -R root:wheel tmp 关于文件/文件夹的属性/权限/用户/组的更多说明: 因为deb打包是先将所有的文件/文件夹归档为tar文件之后再压缩,因此文件/文件夹的属性/权限/用户/组这些信息会被保留下来,因此如果直接设置好了以后再打包deb的话就不需要通过postinst之类的控制脚本来设置权限等信息。 如果无法直接设置属性/用户/组等信息,通常需要在postinst脚本里加入设置属性/权限/用户/组的命令 如果deb中的目录是在iPhone OS本身就有的,那么不需要另外设置属性/权限/用户/组等,即使现有的和需要的不一样。因为deb安装不会替换原有文件夹的数据。比如/Applications目录是root:admin,而要打包的deb中该目录是ABC:DEF,那么不需要修改ABC:DEF 尤其要注意的是mobile:mobile Ubuntu/Debian上虽然没有wheel组,但是root:root在iPhone上会自动转为root:wheel,所以如果是准备将root:root变为root:wheel,那么可以保留root:root就可以了。 理论上来说,在无安装脚本设置用户/组的前提下,如果不涉及mobile:mobile的用户/组,全部操作都可以直接在Ubuntu/Debian和Mac OS X上完成
怎样在电脑安装deb格式的cydia插件?
1.将手机连接电脑打开PP助手--文件--文件系统(越狱)--路径:/var/root/Media/Cydia/AutoInstall(将deb格式的Cydia插件导入。
) 2.然后重启手机(如果没有安装成功,请再重启一次!) 方法二 1.在Cydia安装iFile(文件管理)插件.(源地址:威锋源apt.weiPhone.com) 2.将手机连接电脑打开PP助手--文件--文件系统(越狱)--路径:/var/root/Media/Cydia/AutoInstall(将deb格式的Cydia插件导入。路径可以随便只要自己记住就可以。) 3.通过iFile(文件管理)打开路径:/var/root/Media/Cydia/AutoInstall(这路径是自己导入deb格式),点击软件进行安装(安装后没有请重启一次)。
Debian怎么安装驱动程序?
Ubuntu自带的硬件驱动小程序名叫jockey-gtk,Debian没有(或许可以移植,没试过,不知道行不行),它所做的事情是把命令图形化,方便新手安装驱动。
通过它安装的驱动是闭源驱动,nvidia显卡对应可以装nvidia-glx(最近发现xserver-xorg-video-nvidia这个包的squeeze版被废弃了,squeeze-backports里还有,如果加了squeeze-backports源,也可以装这个),amd/ati显卡没用过,猜测装xserver-xorg-video-ati就行。
wPS下载deb还是rpm格式?
deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统,成为了当前在 Linux 下非常流行的一种安装包。进入 2.x 时代之后有 Cydia 作者 Jay Freeman(saurik) 移植到 iPhone 平台上,一起的还有 APT 软件管理系统。
rpm格式是什么?
rpm是linux系统安装包格式。
RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo)。RPM仅适用于安装用RPM来打包的软件,当前是GNU/Linux下软件包资源最丰富的软件包类型之一。
ubuntu怎么安装readline?
其实ubuntu安装软件的方式非常简单(或者说你掌握了之后就觉得简单了)。
通常的我们可以在ubuntu软件中心和新立得软件包管理器找到自己想要的软件,直接选择就可以自动下载并安装到电脑中,不想要的时候随时可以再从那里面卸载。
这是第一种方法,也是最简便的方法。因为老大哥是Debain,所以ubuntu也支持deb快捷安装包。
如果系统的软件包管理器源里没有你想要的软件,那么你从网上下载的ubuntu专用安装包就是这个格式(Debain的也是)。下载到本地直接双击就可以安装了,不过有时会碰到依赖问题。
第三种是下载了一个压缩包,不能双击直接安装,里面都是些散装的文件。解压出来仔细找找通常能看到一个名为configure或者autogen.sh的文件,如果有,那就终端进入目录然后执行./configure或者./autogen.sh,然后照着三楼给出的步骤执行就可以了。
加入你解压开文件夹发现没有这两个文件,那么里面应该有一个名为INSTALL的文本文件,没有后缀名,打开有关于安装方式的介绍,照着那上面说的做最保险了。
第四种,*.bin文件,比如adobeair这样的软件。
这种二进制安装包只有一个文件,双击不会执行,需要到终端下面执行chmod+x[文件名]为其提升权限,然后再./[文件名]执行即可。上面的是安装包的使用方法。但是有的软件没有提供安装包,而是只有一个源码下载选项。需要注意的是这种软件一般都是不稳定版本或者根本就没有后续支持。
源码包下载下来解压能看到一个类似cmakelist的文件,如果有,那么就在该目录下终端运行cmake.(注意空格和点都要输入,该命令需要先安装了cmake软件包才可执行),接下来是自动编译,编译完成方法就同tar.gz安装包的一样了。
deb是什么格式
DEB格式是程序或软件的二进制格式。详细解释如下:
DEB格式的定义
DEB是Debian系统的软件包格式,主要用于Debian及其衍生系统如Ubuntu等Linux操作系统。它是程序的二进制格式,包含了程序运行所需的代码和必要的依赖关系信息。这种格式确保了软件在特定操作系统上的兼容性和稳定性。
DEB格式的特点
1. 平台特定性:DEB格式是针对Linux系统设计的,不同Linux发行版可能需要对DEB包进行不同的处理。
2. 包含依赖关系:DEB包内包含了软件运行所需的所有依赖库和文件,这使得安装过程更为简便。
3. 二进制形式:与源代码形式不同,DEB以编译后的二进制形式存在,用户无需自行编译,可直接安装使用。
DEB格式的使用
在基于Debian的Linux系统中,可以使用特定的工具如dpkg来安装和管理DEB软件包。用户通过命令行或图形界面,可以方便地安装、更新、卸载DEB软件包。这种格式使得软件在Linux系统上的分发和安装变得相对简单。
总之,DEB格式是Linux操作系统尤其是基于Debian的系统上的一种常见软件包格式,以其平台特定性、包含依赖关系和二进制形式等特点,为软件的分发、安装和管理提供了便利。
打deb包.创建 apt源仓库
如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。
首先了解一下deb包的文件结构:
deb 软件包里面的结构,它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等)。在DEBIAN目录中起码具有control文件,其次还可能具有postinst (postinstallation)、postrm (postremove)、preinst(preinstallation)、prerm (preremove)、copyright (版权)、changlog (修订记录)和conffiles等。
control: 这个文件主要描述软件包的名称(Package),版本(Version)以及描述(Description)等,是deb包必须具备的描述性文件,以便 于软件的安装管理和索引。同时为了能将软件包进行充分的管理,可能还具有以下字段:
Section: 这个字段申明软件的类别,常见的有`utils’, `net’, `mail’, `text’, `x′ 等;
Priority: 这个字段申明软件对于系统的重要程度,如`required’, `standard’, `optional’, `extra’ 等;
Essential: 这个字段申明是否是系统最基本的软件包(选项为),如果是的话,这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载(除非进行强制性 的卸载)
Architecture:申明软件包结构,如基于`i′, `mk’, `sparc’, `alpha’, `powerpc’ 等构建,选项 为;
Source: 软件包的源代码名称;
Depends: 软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之间采用逗号隔开;
Pre-Depends: 软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的预运行脚本需求;
Recommends: 这个字段表明推荐的安装的其他软件包和库文件;
Suggests: 建议安装的其他软件包和库文件。
对于control,这里有一个完整的例子:
Package: bioinfoserv-arb
Version: __
Section: BioInfoServ
Priority: optional
Depends: bioinfoserv-base-directories (= 1.0-1), xviewg (= 3.2p1.4), xfig (= 1:3), libstdc++2.-glibc2.2
Suggests: fig2ps
Architecture: i
Installed-Size:
Maintainer: Mingwei Liu
Provides: bioinfoserv-arb
Description: The ARB software is a graphically oriented package comprising various tools for sequence database handling and data analysis.
If you want to print your graphs you probably need to install the suggested fig2ps package.
preinst: 这个文件是软件安装前所要进行的工作,工作执行会依据其中脚本进行;
postinst这个文件包含了软件在进行正常目录文件拷贝到系统后,所需要执行的配置工作。
prerm :软件卸载前需要执行的脚本
postrm: 软件卸载后需要执行的脚本
现在来看看如何修订一个已有的deb包软件
假 如您已经从本BioInfoServ Deb仓库中获取了bioinfoserv-base-directories_1.1-_i.deb,采用dpkg -x bioinfoserv-base-directories_1.1-_i.deb bioinfoserv-base-directories
这样,您就可以将已经打包好的bioinfoserv-base- directories_1.1-_i.deb解开在bioinfoserv-base-directories的目录中,此时解开的软件包在 bioinfoserv-base-directories目录中就是一些文件目录和相应的文件。
采用dpkg -e bioinfoserv-base-directories_1.1-_i.deb bioinfoserv-base-directories/DEBIAN
此时,就可以将bioinfoserv-base-directories_1.1-_i.deb软件包的规则文件解开,可以看见 control、postrm等包含脚本的文件,如果要修改软件的信息和安装行为,那么就打开这些文件,进行修改。
修改完成,可以采用dpkg -b bioinfoserv-base-directories bioinfoserv-base-directories_1.1-_i.deb重新包装这个软件包。
如何从源码打包deb?
这个可以参考deb ?n的包装
如何制作deb仓库?
一个简单的deb仓库可以采用apt-get install *的方式来进行快速软件安装。制作软件包仓库其实很简单:
首先, 将制作好的deb包放在一个目录下,当然您也可以依据软件名称建立子目录,再存放deb包,如您建立一个Version1.1-Xubuntu6.的 目录存放已经建立的软件包
随后,采用sudo dpkg-scanpackages Version1.1-Xubuntu6. /dev/null | gzip -9c Packages.gz建立仓库索引文件
然后,解开Packages.gz以便编辑:gzip -d Packages.gz, 此时得到Packages文件
编辑,nano Packages,采用替换功能去掉Packages里面的Version1.1-Xubuntu6./字段,然后保存
重新打包gzip Packages Packages.gz放到目录Version1.1-Xubuntu6.中。
现在设定/etc/apt/sources.list中的仓库源,如果Version1.1-Xubuntu6.目录在你系统中的/var /www/Version1.1-Xubuntu6.下的话,可在/etc/apt/sources.list加入:
deb file:////var/www/Version1.1-Xubuntu6./ /
保存后,采用apt-get update更新,此时就可以采用apt-get install bioinfoserv-base-directories_1.1-_i.deb安装你创建好的deb软件了。
当 然如果您需要将这个软件仓库发布到互联网上,假定您的网络地址为,其互联网访问的路径为/BioinfoServDeb/Version1.1-Xubuntu6.,那么在/etc/apt /spurce.list中添加:
deb /BioinfoServD … buntu6./ /
此时,其他人就可以采用互联网使用您的deb软件仓库了。
3、更换Debian的软件源
更换 Debian 软件源的步骤与常见问题解决方法如下: 1. **安装必备工具**:首先,确保安装了用于传输和验证软件包的工具,使用命令 `apt install apt-transport-... buster Release` 文件不存在,这是由于 `AdoptOpenJDK` 已更名为 `Adoptium`。解决方法为更新 `sources.list` 中对应 `AdoptOpenJDK` 的源配置,执行 `sudo sed -i '1c deb mirrors.tuna.tsinghua.edu.cn... buster main' /etc/apt/sources.list.d/AdoptOpenJDK.list` 并通过 `gpg` 命令验证和添加公钥。 4. **Mobian源报错处理**:如果遇到 Mobian 源暂时不可用的问题,可将该源从 `/etc/apt/sources.list.d/mobian.list` 文件中注释掉或禁用,使用命令 `sudo sed -i '1c #deb repo.mobian-project.org... bullseye main non-free' /etc/apt/sources.list.d/mobian.list`。 5. **一键更新软件源与系统程序**:执行一系列命令实现自动化操作,包括更新源、系统更新、重启 SSH 服务。命令如下:默认软件源修改完成。
AdoptOpenJDK 报错修复完成。
Mobian源报错屏蔽。
开始更新软件源列表。
更新完成。
系统程序更新完成。
使用 `sudo apt-get update` 更新源列表,`sudo apt-get upgrade` 更新系统程序至最新版,并在更新后使用 `sudo apt-mark hold openssh-server` 暂时禁用 `openssh-server`,以避免在后续升级中因依赖关系导致的意外中断,最后使用 `sudo apt-mark unhold openssh-server` 重新启用服务。 以上步骤涵盖了更换 Debian 软件源的流程,以及在遇到特定问题时的解决方法。通过这些步骤,可以确保系统的软件源符合要求,同时避免常见的更新错误。Arch安装deb包:为 deb 包编写 PKGBUILD 文件
在使用 Arch 或 Manjaro 系统时,若官方仓库中缺乏所需软件,而网上可下载到编译好的二进制文件,如 deb 包或 rpm 包,这些文件虽可直接使用,却不受包管理器 pacman 监控,也难以从应用程序启动器中便捷运行。
为了解决这一问题,Arch Wiki 提供了一个名为 debtap 的脚本,用于将 deb 包转换为 pacman 可以直接安装的 .pkg.tar.zst 格式。此方法虽简便,但由于考虑广泛兼容性,有时转换后的 .pkg.tar.zst 包会遇到安装问题。
解决这个问题的一种有效方法是使用 makepkg 打包软件。虽然初学者可能会感到困惑,但了解其工作原理后,便会觉得操作简单。通过编写 PKGBUILD 文件,可以将源代码编译并打包成 .pkg.tar.zst 格式,从而在 Arch 系统中直接安装。
要使用 makepkg 打包软件,首先需要创建一个 PKGBUILD 文件。系统中提供了一些示例文件,如 /usr/share/pacman/PKGBUILD.proto,供参考。
编写 PKGBUILD 文件时,需要定义软件名、版本、运行架构,并在文件中定义一个名为 package() 的函数,该函数会被 makepkg 自动执行。确保定义 pkgname、pkgver、pkgrel、arch 四个变量,这些是基本的必要参数。
下面是一个简单的 PKGBUILD 文件示例,其中包含软件名、版本、运行架构,并定义了一个包装函数,仅输出 packaging...,表示打包过程已开始。
构建流程涉及多个步骤。首先,makepkg 通过定义的变量获取软件包的信息,如软件名、版本号等。source 变量用于指示打包过程中所需文件,可以是本地文件或文件网址。makepkg 将获取的文件验证 MD5 值并存放在 src 目录中,这是进行编译等处理的工作目录。
随后,makepkg 依次执行四个函数:prepare()、build()、check()、package()。prepare() 函数通常用于编译前的准备,如解压文件。build() 函数执行编译。check() 函数检查编译结果。最后,package() 函数进行打包。在我们的例子中,prepare()、build()、check() 函数仅输出提示信息。
在 package() 函数中,我们创建了一个目录 ${ pkgdir}/home,其中 ${ pkgdir} 是软件包目录 pkg/${ pkgname},在安装包时会被复制到相应的目录中。例如,在本例中,文件 m.vsix 被复制到 /home/m.vsix。
运行 makepkg 命令后,目录结构会发生变化。接下来,使用 pacman -U 安装软件包,可以看到 /home 目录下多了文件 m.vsix。通过卸载软件包,/home 目录下的 m.vsix 文件将被删除。
为深入理解 PKGBUILD 文件编写,可以参考 AUR 仓库中提供的其他示例,如 quickapp-ide,通过克隆仓库学习实践。
关于 deb 包的示例,可以提前准备好 wps-office 的 deb 安装包,并与 PKGBUILD 文件放在一起。在 PKGBUILD 文件中,需要将 deb 包解压后得到的 data 目录打包,因为 data 目录包含了需要安装的所有文件。