Arch通过aur安装墨刀的时候报错,查看PKGBUILD发现下载地址错误("https://s3.cn-north-1.amazonaws.com.cn/modao/download" 已改为 "https://s3.cn-north-1.amazonaws.com.cn/modao/linux")
于是更正下载地址后再次提交构建,又发现一个错误:当前的 MockingBot_amd64.deb
无法由tar解包
那就把它改成手动解压吧:把deb包加入noextract
列表,在package()里面使用ar p MockingBot_amd64.deb data.tar.xz > data.tar.xz
手动解压出来 data.tar.xz ,
再次构建。。。
然而使用ar
解压的时候又报错:deb包畸形,
考虑到md5校验的部分跳过了,可能是下载的时候出错,所以干脆手工把压缩包下载下来放到/tmp,
并修改相应的 deb包 和 data.tar.xz 的路径,再次构建成功。
最后的PKGBUILD文件如下:
# Maintainer: levinit <levinit at outlook>
pkgname=mockingbot
pkgver=0.6.9
pkgrel=1
pkgdesc="A prototyping & collaboration tool.墨刀/modao/MockingBot"
arch=('i686' 'x86_64')
url="https://mockingbot.com/downloads"
license=('custom')
depends=('gconf')
source_common="https://s3.cn-north-1.amazonaws.com.cn/modao/linux"
source_x86_64=("$source_common/MockingBot_amd64.deb")
source_i686=("$source_common/MockingBot_i386.deb")
md5sums_x86_64=('SKIP')
md5sums_i686=('SKIP')
#pkgver() {
#
#}
noextract=("MockingBot_amd64.deb")
package() {
ar p /tmp/MockingBot_amd64.deb data.tar.xz > /tmp/data.tar.xz
tar -xvJf /tmp/data.tar.xz -C ${pkgdir}
cp -r ${pkgdir}/usr/bin/MockingBot ${pkgdir}/usr/bin/mockingbot
#edit app's desktop file
sed -i 's/Exec=MockingBot/Exec=mockingbot/' ${pkgdir}/usr/share/applications/MockingBot.desktop
sed -i 's/Comment=MockingBot/Comment=Prototyping design tool/' ${pkgdir}/usr/share/applications/MockingBot.desktop
sed -i 's/Categories=utils;/Categories=Graphics;/' ${pkgdir}/usr/share/applications/MockingBot.desktop
echo -e '
Name[zh_CN]=墨刀
Name[zh_TW]=墨刀
Name[zh_HK]=墨刀
Name[zh_SG]=墨刀
Comment[zh_CN]=原型设计工具
Comment[zh_TW]=原型設計工具
Comment[zh_HK]=原型設計工具
Comment[zh_SG]=原型设计工具' >> ${pkgdir}/usr/share/applications/MockingBot.desktop
chmod -R go-w "${pkgdir}"/usr
install -dm755 "${pkgdir}/usr/bin"
}
https://wiki.archlinux.org/index.php/Creating_packages_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
https://unix.stackexchange.com/questions/152368/create-pkgbuild-from-deb