天天看點

archlinux的aur軟體的書寫

此文章适合建立包和接收孤兒包(

Orphaned

),有人維護的包不能建構

一、介紹

PKGBULD

原型

  • /usr/share/pacman/

    的原型檔案

    PKGBUILD.proto

    拷貝一份重命名成

    PKGBUILD

    檔案
  • 兩個重要參數:

    \${srcdir}

    是提取的源資料目錄,

    \${pkgdir}

    相當于安裝後的根目錄

參考文章(PKGBUILD包裝指南):https://wiki.archlinux.org/index.php/Arch_package_guidelines

參考文章(建立PKGBUILD):https://wiki.archlinux.org/index.php/Creating_packages

參考文章(PKGBUILD的變量):https://wiki.archlinux.org/index.php/PKGBUILD

二、常用的檢查指令

$ namcap PKGBUILD
$ namcap <package file name>.pkg.tar.xz
           

三、認證

  • 為 AUR 建立一個新的密鑰(而不是用舊的)
$ ssh-keygen -f ~/.ssh/aur
           

然後在 AUR Web 界面上點選 “My Account (我的賬戶)” ,把

aur.pub

公鑰裡的内容填進 “SSH Public Key:” 一節中,儲存.

  • 接下來編輯

    ~/.ssh/config

    , 告訴ssh指令連接配接到 aur.archlinux.org 用汝建立的新密鑰
Host aur.archlinux.org
  IdentityFile ~/.ssh/aur
  User your-name #注意使用你自己注冊的名字替換
           

四、送出軟體包到 AUR(此步驟是經常使用的)

  • 建立軟體包倉庫

    把pkgbase換成軟體包名

$ git clone ssh://[email protected]/pkgbase.git
           
  • 送出和更新軟體包
$ makepkg --printsrcinfo > .SRCINFO
$ git add PKGBUILD .SRCINFO
$ git commit -m "useful commit message"
$ git push
           
  • .gitignore

    檔案配置

    正常忽略以下檔案

src
pkg
*.deb
*.rpm
.AppImage
*.pkg.tar.xz
           
  • 如果執行了ssh認證配置,可以為軟體包投票
ssh [email protected] vote <PACKAGE_NAME>
           

五、常用的配置

  • 修改

    /etc/makepkg.conf

    中某些行
MAKEFLAGS="-j$(nproc)"
COMPRESSXZ =(xz -c -z  - --threads = 0)
           
  • 安裝

    pacman-contrib

    使用方式:與PKGBUILD檔案相同的目錄中運作以下指令以生成新的md5sum

$ updpkgsums
           
  • 下載下傳

    aria2c

    ,修改

    /etc/makepkg.conf

DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
          'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
          'http::/usr/bin/aria2c -s 5 -x 6  -c  -o %o %u'
          'https::/usr/bin/aria2c -s 5 -x 6  -c  -o %o %u'
          'rsync::/usr/bin/rsync --no-motd -z %u %o'
          'scp::/usr/bin/scp -C %u %o')