git如何安装aur_ArchLinux aur打包简易指南

ArchLinux aur打包简易指南

[TOC]

准备

登记密钥

登录aur账号,在账号设置里添加本机(用以打包aur的设备)的ssh公钥(如~/.ssh/id_rsa.pub),生成ssh密钥的方法:

ssh-keygen

ssh-keygen -t rsa #或者-t指定加密类型如rsa、dsa

创建git仓库

入到打包目录

git init #在打包目录执行git初始化

#-------------新建一个仓库-------------

#如果是新提交一个软件包,可以用以下命令clone,aur服务器上将建立一个名为package_name的新仓库 (会有创建仓库的提示信息)

git clone git+ssh://aur@aur.archlinux.org/package_name

#然后连接远程仓库

git remote add origin git+ssh://aur@aur.archlinux.org/package_name

#-------------获取存在的仓库-----------

#如果是aur服务器上已经存在的 git 仓库,先连接仓库

git remote add origin git+ssh://aur@aur.archlinux.org/package_name

#再从服务器同步下来

git pull origin master

注意:即使 AUR 中的软件包被删除,Git 仓库也不会删除,所以你可能会发现 clone 一个 AUR 中还不存在的软件包时不会看到提示信息。

PKGBUILD文件

首次制作,从/usr/share/pacman/下复制一份PKGBUILD样本,更名为PKGBUILD,根据情况编辑PKGBUILD内容。

PKGBUILD参考archwiki-PKGBUILD),以及在aur软件包仓库中参照他人的PKGBUILD文件(在软件包详细资料的右侧有查看PKGBUILD的链接)。

mkepkg配置文件(可选)

/etc/makepkg.conf 是 makepkg 的主配置文件。用户的自定义配置位于 $XDG_CONFIG_HOME/pacman/makepkg.conf 或 ~/.makepkg.conf。

打包人信息:找到`#PACKAGER="John Doe "一行,去掉注释符号#(下同),修改“John Doe ”为当前打包人信息。

包输出:makepkg 默认会在工作目录创建软件包,并把源代码下载到 src/ 目录。可根据需要修改起默认位置,找到一下内容进行相关修改:#PKGDEST设置产生的包的路径,#SRCDEST设置soure数据路径,SRCPKGDEST设置产生的源码包(可用makdepkg -s生成)的路径。

使用tmpfs:编译过程需要大量的读写操作,要处理很多小文件。将工作目录移动到 tmpfs 可以减少编译时间。找到#BUILDDIR=/tmp/makepkg去掉#,修改为BUILDDIR=/tmp/makepkg makepkg。

其余参考archwiki-makepkg#.E9.85.8D.E7.BD.AE)

构建和测试

在PKGBUILD文件目录下执行:

makepkg # 构建软件包

# 如果需要的依赖不满足,构建失败可执行 makepkg -s 自动安装依赖

# 或者makepkg -S pkgname 手动安装依赖

# makepkg -i 可安装构建的软件包

namcap pkgname #检测依赖情况 pkgname是软件包的名字

pacman -U pkgname #安装软件包

如有错误信息提示,根据提示修正PKGBUILD文件。

提交

只提交PKGBUILD文件和.SRCINFO文件,软件包相关资源应在PKGBUILD的source中提供URI,而不是上传到aur的git服务器。

updpkgsums #生成校验码

makepkg --printsrcinfo > .SRCINFO #生成源文件信息文件

git add PKGBUILD .SRCINFO # 提交变动到暂存区

git commit -m 'some description' #增加快照

git push #推送

注意:

每次更新了软件包都需要重新生成校验码(sums)和信息文件(不实用校验码可以将PKGBUILD文件的md5sums值设为SKIP。

aur的git服务器不允不允许强制推送,只能在最新快照上更新推送。

如果忘记在提交中包含.SRCINFO,即使稍后补上该文件,AUR也会拒绝接收推送请求(因为每一次提交中都包含.SRCINFO)。 要解决这个问题,你可以使用git rebase 中的 --root 选项或是 git filter-branch 中的 --tree-filter 选项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值