1.Arch安装deb包:为 deb 包编写 PKGBUILD 文件
2.è°è½å¸®å¿ç»å¶ä½ä¸ä¸ª config.plist
Arch安装deb包:为 deb 包编写 PKGBUILD 文件
在使用 Arch 或 Manjaro 系统时,若官方仓库中缺乏所需软件,码修而网上可下载到编译好的编译二进制文件,如 deb 包或 rpm 包,改源改这些文件虽可直接使用,码修却不受包管理器 pacman 监控,编译ios qq好友源码也难以从应用程序启动器中便捷运行。改源改
为了解决这一问题,码修Arch Wiki 提供了一个名为 debtap 的编译脚本,用于将 deb 包转换为 pacman 可以直接安装的改源改 .pkg.tar.zst 格式。此方法虽简便,码修但由于考虑广泛兼容性,编译有时转换后的改源改 .pkg.tar.zst 包会遇到安装问题。
解决这个问题的码修一种有效方法是使用 makepkg 打包软件。虽然初学者可能会感到困惑,编译但了解其工作原理后,便会觉得操作简单。通过编写 PKGBUILD 文件,可以将源代码编译并打包成 .pkg.tar.zst 格式,从而在 Arch 系统中直接安装。
要使用 makepkg 打包软件,怎么套取源码首先需要创建一个 PKGBUILD 文件。系统中提供了一些示例文件,如 /usr/share/pacman/PKGBUILD.proto,供参考。
编写 PKGBUILD 文件时,需要定义软件名、版本、运行架构,并在文件中定义一个名为 package() 的函数,该函数会被 makepkg 自动执行。excel源码实现确保定义 pkgname、pkgver、pkgrel、arch 四个变量,这些是基本的必要参数。
下面是一个简单的 PKGBUILD 文件示例,其中包含软件名、版本、运行架构,并定义了一个包装函数,源码值钱么仅输出 packaging...,表示打包过程已开始。
构建流程涉及多个步骤。首先,makepkg 通过定义的变量获取软件包的信息,如软件名、版本号等。source 变量用于指示打包过程中所需文件,可以是本地文件或文件网址。makepkg 将获取的源码时代猫文件验证 MD5 值并存放在 src 目录中,这是进行编译等处理的工作目录。
随后,makepkg 依次执行四个函数:prepare()、build()、check()、package()。prepare() 函数通常用于编译前的准备,如解压文件。build() 函数执行编译。check() 函数检查编译结果。最后,package() 函数进行打包。在我们的例子中,prepare()、build()、check() 函数仅输出提示信息。
在 package() 函数中,我们创建了一个目录 ${ pkgdir}/home,其中 ${ pkgdir} 是软件包目录 pkg/${ pkgname},在安装包时会被复制到相应的目录中。例如,在本例中,文件 m.vsix 被复制到 /home/m.vsix。
运行 makepkg 命令后,目录结构会发生变化。接下来,使用 pacman -U 安装软件包,可以看到 /home 目录下多了文件 m.vsix。通过卸载软件包,/home 目录下的 m.vsix 文件将被删除。
为深入理解 PKGBUILD 文件编写,可以参考 AUR 仓库中提供的其他示例,如 quickapp-ide,通过克隆仓库学习实践。
关于 deb 包的示例,可以提前准备好 wps-office 的 deb 安装包,并与 PKGBUILD 文件放在一起。在 PKGBUILD 文件中,需要将 deb 包解压后得到的 data 目录打包,因为 data 目录包含了需要安装的所有文件。
è°è½å¸®å¿ç»å¶ä½ä¸ä¸ª config.plist
é¦å æä¹å没ç¨è¿cloverï¼æ以å å¨Uçä¸æè ¾çï¼ç®ç主è¦æ¯æconfigæ件é 置好(æ¨èæå¨ä¿®æ¹ï¼Clover Configuratorè¿ä¸å¤æçï¼bug太å¤ï¼ç¨å®ä¿®æ¹çæ件ç»å¸¸åºéï¼ä½æ¯å¯ä»¥ç¨å®å½ä½åè)ã
æ¨è大家ä¹å å¨Uçä¸æè ¾ï¼çå¾æåç³»ç»ã
æçcloverè£ å¥½ä¹ååªæ¾äºä¸ä¸ªæ件ï¼config.plist DSDT.aml SSDT.aml
大家æ åµä¸åçå¯ä»¥åæ¾kextï¼æçé½æ¯å声驱å¨çæ以ä¸ç¨æ¾ã
ä¸è¾¹ä¸»è¦è¯´ä¸ä¸æ®émbr硬çå®è£ cloveråconfigé ç½®
æé 置好configåå¼å§å°Uçéçclover移å°ç¡¬çä¸ï¼å ¶å®è¿ç¨åmacçåè²é¾å ä¹ä¸æ ·ãä½æå ä¸ªå ³é®ç¹ï¼
1.ç½ä¸ä¸è½½äºå¥½å¤cloverççæ¬ï¼æè§ä¸å¤ªå¥½ç¨ï¼ä¸»è¦åå æ¯cloveræ´æ°å¤ªå¿«ï¼configçé ç½®æ ¼å¼åå太快ï¼ä¹åçæç¨é½ä¸éç¨äºæ°ççæ¬çconfigäºï¼ä½æ¯å¯ä»¥ä½ä¸ºåæ°çå¦ä¹ åèã
2.èªå·±å¨æ丰衣足书ã
ä¸è¾¹å¼å§ï¼
第ä¸æ¥ï¼å¿ ç¶éè¦Command Line Toolsï¼å¯ä»¥è£ 个Xcodeï¼ä¹å¯ä»¥å¨è¿ä¸ developer.apple.com/...de%-
第äºæ¥ï¼ä¸è½½æºç CloverGrower(ç¼è¯åä¸è½½ææ°cloverçå·¥å ·)
github.com/STLVNUB/CloverGrower
第ä¸æ¥ï¼å¼å§ç¼è¯ï¼æå¼CloverGrower.commandï¼ç¬¬ä¸æ¬¡éè¦ä¸è½½ä¸å GCCçåºç¡å (æ´ä¸ªç¼è¯è¿ç¨å¾æ¼«é¿ï¼ä½æ¯ä¸ºäºä¿è¯åä¸ªå·¥å ·å¯¹äºçæ¬çéåºæ§ï¼è¿æ¯ç¼è¯æºç æ¯è¾å¥½)
第åæ¥ï¼ç¼è¯å®æåï¼å¾å°builtPKGåedk2æ件夹ï¼builtPKGéè¾¹çæ件ä¸è¬é½å¤ç¨äº(è¦æ¯è§å¾ä¸å¤ç¨å¯ä»¥å°ç®å½åæ¢å°edk2 -> Clover -> CloverPackageï¼åå»makeisoååå»makepkgå次çæï¼ä¼åç°åç®å½éææ°çæ件夹ï¼å ·ä½èªå·±çå§)
第äºæ¥ï¼builtPKGéæ¾å°Cloverçpkgå®è£ æ件ï¼ååç®å½ä¸çCloverCD/usr/local/bin/clover-genconfigæ件ï¼è¿æ ·è¿ä¸¤ä¸ªæ件ççæ¬å°±å¯¹åºèµ·æ¥äºï¼æ¯è¾å¥½é ç½®config.plist (pkgç¨äºå®è£ ï¼clover-genconfigç¨äºçæconfig.plist)
第å æ¥ï¼å¾å°configæ件ï¼æå¼ç»ç«¯ï¼ç´æ¥å°clover-genconfigæè¿å»ï¼åå°åè²é¾çorg.chameleon.Boot.plistæè¿å»ï¼åå°smbios.plistæè¿å»ç¶åå¨åè¾¹å ä¸>>~/Desktop/config.plistï¼å车ï¼è¿æ¶åå°±ä¼çå°æ¡é¢ä¸å·²ç»çæäºè¿ä¸ªæ件ãè¿ä¸ªconfig.plistå°±æ¯è¾å¥½äºï¼æ¯å¯¹åºå½åçæ¬Cloverçï¼ä½ åªéè¦æéè¾¹çå 容è¿è¡å¾®è°å°±è¡äºï¼å ·ä½çåæ°å个大大已ç»è¯´äºï¼æå°±ä¸èµè¿°äºã
第ä¸æ¥ï¼Uçå®è£ ãè°è¯ (è¿ä¸ªå¯ä»¥å»é¡¶ç½®å¸éç)
ç¬¬å «æ¥ï¼ç¡¬çå®è£ ï¼è°è¯å¥½äºå°±å¯ä»¥ç§»å°ç¡¬çä¸ç´æ¥å¼å¯¼äº(å½ç¶ä¿è¯ä½ çmacååºæ¯ä¸»ååº)ãæå¼pkgï¼éæ©ä½ çmacååºï¼ç¶åéæ©èªå®ä¹ï¼å¯¹äºä¼ ç»çBIOS+mbrå¯ ä»¥è¿æ ·éæ©ã
1.å®è£ PBR çå¤éå¼æºé项
é»è®¤å¯å¨ boot = Clover boot ä½
æ 1 é boot1 = åè²é¾ boot
æ 3 é boot3 = Clover boot ä½
æ 6 é boot6 = Clover boot ä½
2.CloverEFIéæ©ä½SATA
3.æ ¹æ®ä¸ªäººå好éæ©ä¸»é¢
4.æéçæ¯Driversï¼ä¸è¡çè¯åéï¼æä¹æ¯è¯çéçï¼ç´æ¥å®è£ å®å°±è½ç¨å°±æ²¡ææµè¯ï¼è¿æ²¡ç 究è¿å(ç¨Uçæµè¯çæ¶å好åéçæ¯å§)
5.RC scripts好åå¯ä»¥è§£å³å±å¹äº®åº¦è®°å¿çé®é¢
6.å®è£ Cloverç³»ç»å好设置é¢æ¿ï¼å¥½åè¿ä¸ªå¯ä»¥å级Clover
第ä¹æ¥ï¼å°ä½ çconfig.plistãDSDT.amlãSSDT.amlæ¾å¨macçå®è£ ååºå¯¹åºçEFIç®å½ä¸ï¼æéè¦çè¯å¯ä»¥åæ¾kextï¼
第åæ¥ï¼åå ¥boot1h(è¿ä¸ªæ件å¨CloverGrower-master/edk2/Clover/BootSector/binæ件夹ä¸)ï¼è¿ä¸ªçæ¹æ³å¯ä»¥åç §crazybirdyçå¸åï¼è¿éå°±ä¸åèµè¿°äºã
OKï¼å®äºéå¯åºè¯¥å°±å¯ä»¥äºã