Archlinux打包软件包步骤


Archlinux打包软件包步骤

1.介绍

archlinux中的软件包都是通过makepkg来打包的,makepkg工具会读取一个PKGBUILD的脚本,按照脚本里面的规则自动构建软件包,打包完成后会在打包的目录下面生成一个.pkg.tar.zst的文件,这个文件可以直接使用pacman包管理工具安装(pacman -U name.pkg.tar.zst)

2.打包前的准备

首先要准本打包的工具,一般有base-devel这个软件包就足够了,通常makepkg在打包的过程中主要做以下几个步骤:

  • 1.检查软件包的相关依赖是否已经安装

  • 2.从指定的服务器下载软件包对应的源代码

  • 3.解压对应的源代码

  • 4.编译源码,并将其安装在伪root目录下面

  • 5.生成包的元数据(metadata)

  • 6.将伪root环境打包为一个tar文件后用zstd将其压缩

  • 7.将生成的打包好的软件保存至配置好的目录下面

    3.PKGBUILD写法

    PKGBUILD脚本中一般有以下几个变量和函数

    • 变量

    1.pkgdesc

    软件包的描述信息

    2.pkgdir

    软件包存储的目录

    3.pkgname

    软件包的名称

    4.pkgver

    软件包的版本

    5.source

    软件的源码

    6.arch

    软件适用的架构,如果和平台无关可以直接填写any

    7.license

    软件的许可证

    8.depens

    软件的依赖

    9.srcdir

    软件源码的目录

    • 函数

    1.prepare()

    此函数会执行用于预处理源文件执行的命令,例如patch,此函数执行在build之前

    2.pkgver()

    此函数会抓取并解压源文件,执行完prepare函数后执行此函数

    3.build()

    此函数第一步先进入源代码的目录下,makepkg会在执行build函数之前更改当前目录为pkgdir目录

    1
    2
    3
    cd "$pkgdir/$pkgname-$pkgver"
    ./configure --prefix=/usr
    make

    4.package()

    此函数会将编译好的文件安装值伪root环境下面

    1
    make DESTDIR="$pkgdir/" install 

文章作者: 404NotFound
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 404NotFound !
评论
  目录