有时候你可能会发现你想安装一个包,但是这个包只提供RPM安装文件,而ArchLinux不支持RPM文件的安装,怎么办?下面的方法或许能帮到你。1、安装rpmextractrpmextract是一个RPM解压工具。它将RPM包的内容解压到当前目录。sudopacman-Srpmextract--noconfirmresolvingdependencies...lookingforconflictingpackages...Packages(1)rpmextract-1.0-8Total下载大小:0.00MiBTotal安装大小:0.00MiB::继续安装?[是/否]::检索包...rpmextract-1.0-8-any0.0B0.00B/s00:00[---------------------]0%rpmextract-1.0-8-any2.5KiB0.00B/s00:00[######################]100%(0/1)检查密钥环中的密钥[---------------------]0%(1/1)检查密钥环中的密钥[######################]100%(0/1)检查包完整性[------------------------]0%(1/1)检查包完整性[######################]100%(0/1)加载包文件[--------------------]0%(1/1)加载包文件[######################]100%(0/1)检查文件冲突[-----------------------]0%(1/1)检查文件冲突[########################]100%(0/1)检查可用磁盘空间[--------------------]0%(1/1)检查可用磁盘空间[#######################]100%::处理包更改...(1/1)安装rpmextract[----------------------]0%(1/1)安装rpmextract[#######################]100%::运行交易后挂钩...(1/1)武装条件需要更新...2。使用rpmextract解压rpm文件由于rpm文件中打包的目录结构是基于根目录的,所以建议直接在根目录下解压:cd/sudorpmextract.sh~lujun9972/android-x86-7.1-r2.x86_64.rpm3。提取安装RPM时调用的脚本。仅仅解压RPM包中的文件是不够的。RPM文件还将在安装(或卸载)之前/之后执行脚本。这个脚本可以通过命令rpm-qp--scriptfile.rpm来查看。但是,如果ArchLinux没有rpm命令怎么办?我们可以在虚拟机上运行一个CentOS或者直接使用docker模拟CentOS环境:dockerrun--rm-v~lujun9972/android-x86-7.1-r2.x86_64.rpm:/tmp/android.rpmcentosrpm-qp--scripts/tmp/android.rpmpostinstall脚本(使用/bin/sh):。/etc/os-releasemkdir-p/android-7.1-r2/dataif["$ID"="debian"-o"$ID_LIKE"="debian"];然后grubcfg=/boot/grub/custom.cfgelifmountpoint-q/boot/efi;然后grubcfg=/boot/efi/EFI/$ID/custom.cfg&&efi=efielsegrubcfg=/boot/grub2/custom.cfgfiecho-e"menuentry\"Android-x867.1-r2\"{\n\tsearch--set=root--file/android-7.1-r2/kernel\n\tlinux$efi/android-7.1-r2/kernelquietroot=/dev/ram0androidboot.selinux=permissivebuildvariant=userdebug\n\tinitrd$efi/android-7.1-r2/initrd.img\n}">$grubcfgecho-e"menuentry\"Android-x867.1-r2(DEBUG模式)\"{\n\tsearch--set=root--file/android-7.1-r2/内核\n\tlinux$efi/android-7.1-r2/kernelroot=/dev/ram0androidboot.selinux=permissivebuildvariant=userdebugDEBUG=2\n\tinitrd$efi/android-7.1-r2/initrd.img\n}">>$grubcfgif["$ID"="debian"-o"$ID_LIKE"="debian"];然后sed-i's/^GRUB_HIDDEN_/#GRUB_HIDDEN_/'/etc/default/grubupdate-grubfipostuninstall脚本(使用/bin/sh):./etc/os-releaseif["$ID"="debian"-o"$ID_LIKE"="debian"];然后grubcfg=/boot/grub/custom.cfgelifmountpoint-q/boot/efi;然后grubcfg=/boot/efi/EFI/$ID/custom.cfgelsegrubcfg=/boot/grub2/custom.cfgfiif["$1"="1"];然后new_prefix=`dirname$(grepinitrd$grubcfg|head-1|awk'{print$2}')`if["$new_prefix"!="/android-7.1-r2"];thenrmdir$new_prefix/datamv/android-7.1-r2/data$new_prefixrmdir/android-7.1-r2文件rmdir/android-7.1-r2/data/android-7.1-r2rm-f$grubcfgfi4.调用安装脚本如果幸运的话,你将能够安装RPM
