[Howto]生成Arch Linux软件包和派生版本

关于Arch Linux及其衍生产品,我最喜欢的一件事是 极大的方便 创建软件包以稍后安装在系统上,与已知的软件包不同 deb文件。 Debian / Ubuntu / Linux Mint / etc的混乱(如果它们是库,我不会告诉你)。

基本模板是这样的:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

现在,我将解释每个参数:

  • #维护者: 其中包含软件包维护者的名称
  • pkgname: 包的名称。 它只能包含字母,数字,-,_和+
  • pkver: 软件包版本。 pe 1.0.0
  • pkgrel: 审查程序或程序包。 pe 1
  • pkgdesc: 包装说明。
  • 拱: 程序的体系结构:它可以是任何(对于所有人),i686和x86_64,对于不需要编译的软件包(例如bash或python程序)可以是任何。 如果它是需要它的程序(例如,C或C ++中的程序),则应将i686用于32位或x86_64用于64位。 通常,如果两者兼容,则将其设置为(i686,x86_64)
  • 网址: 该程序官方页面的网址。 建议把它放进去。
  • 授权方式: 程序许可证。 例如GPL3
  • 组: 程序包所属的组。 组=('系统')
  • 依靠: 在其中,我们指出了执行程序所需的软件包。 pependens =('python2''pygtk')
  • makedepends: 仅编译包所需的依赖项。 如果要从版本管理器中下载代码,建议放置它。 pe:makedepends =('git')
  • 来源: 在其中,我们指出了创建包所需的文件。 通常,包含代码,补丁程序,.desktopt文件,图标等的是软件包的URL。 pe:来源=(pacsyu.desktop)
  • md5sums: 这是源中指示的文件的md5总和。 要知道我们是从PKGBUILD所在的文件夹中的终端运行的(已在源代码中写入了文件路径) makepkg -g 和将显示在屏幕上。
    也可以使用其他总和,例如sh1。
  • 建立: 在此功能中,我们将 继续编译软件所需的命令。 如果不需要编译,则仅需要以下功能)
  • 软件包:在该其他功能中,程序安装命令将执行。 例如,如果我们在这里编译C代码,则将进行make install。

最后,我们只需要执行 制作包 验证软件包是否已生成。
如您所见,这对我们来说很困难。 然后我给你留一些额外的参数 makepkg:

  • -一世: 指示makepkg在创建软件包后安装它。
  • -s: 如果软件包依赖项位于存储库中,请安装它们。
  • -F: 如果已经有带有该参数的名称,版本和修订的软件包,我们会告诉您覆盖它。
  • -C: 完成后,清理工作文件夹(pkg和源)。
  • -R: 重新打包该软件包,而无需重新编译。

我建议查看更多PKGBUILD文件以查看更多示例,执行命令 makepkg -h 除了查看 在Arch Linux Wiki上的makepkg官方文档 你能找到什么 信息


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   杰明·塞缪尔

    挺好 …

    您可以使.exe软件包管理(编译)为Arch软件包吗?

    例如著名的下载管理器 Mipony ??

    1.    正确

      据我所知,这是不可能的,请记住.exe是二进制文件而不是源代码。 但是有JDownloader。

    2.    v3on

      有人使用linux却错过了Myponi…jijijijiji

      jDownloader在Java中,并且众所周知Java会导致肺癌...

  2.   乳28

    有趣的是,我们将不得不测试软件包,我想我会倾向于从qbittorrent中获取一个软件包,哈哈哈,它已经存在于yaourt中,但是拥有自己的版本将很不错,感谢您提供的信息和问候。

  3.   MSX

    输入不错,+ 1
    我要补充一点,它们也比Gentoo ebuilds更易于创建和维护!

    关于Debian,我认为该发行版将通过升级或迁移到更现代的软件包和软件包管理系统而极大地增加其障碍,我不知道dpkg / apt集的最后一次更新何时会开始,但是这个概念应该已经拥有轻松的15年,事实是今天已经过时了。

  4.   腐烂87

    非常感谢,就在最近,我一直在Wiki中寻找它,但我还不了解其结构(我想更新PlayonLinux的结构),但是我仍然放弃了……有些事情我想拥有助手之类的东西(不要开枪打我),但仍然...随着时间的流逝没有工具,我会看看我是否创建了

    1.    MSX

      感谢您的指导,我开始创建Zeya的PKGBUILD(http://web.psung.name/zeya/),完成后立即将其上传到AUR🙂

  5.   hypersayan_x

    不像Debian / Ubuntu / Linux Mint等著名的.deb

    完全同意,前一阵子我试图为Ubuntu创建一个软件包,但我不可能找到关于如何制作软件包的易懂的信息,最后我放弃并大致安装了该程序。
    用于Arch的同一程序花了我不到5分钟的时间就将软件包打包在一起。
    而且我不确定,但我认为RPM比DEB稍微容易些,但比Arch难。

  6.   黑客775

    非常好又容易,至于.deb并不难,对于iOS

    问候

  7.   卡洛斯

    我认为将前一个PKGBUILD上传到AUR时,这会为我服务

  8.   腿骨

    有人可以向我解释一下这是什么吗,我是新手,我不知道这是否有助于我安装.deb程序包,但可以在manjaro本地安装,确切地说是一款游戏。 是的,行得通吗?