這篇文章將為大家詳細(xì)講解有關(guān)怎么在Arch Linux上安裝RPM包,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
目前創(chuàng)新互聯(lián)已為超過(guò)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、山陽(yáng)網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
rpmextract 是一個(gè)用來(lái)解壓 RPM 的工具,它會(huì)將 RPM 包中的內(nèi)容解壓到當(dāng)前目錄下。
sudo pacman -S rpmextract --noconfirm
resolving dependencies...looking for conflicting packages... Packages (1) rpmextract-1.0-8 Total Download Size: 0.00 MiBTotal Installed Size: 0.00 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... rpmextract-1.0-8-any 0.0 B 0.00B/s 00:00 [----------------------] 0% rpmextract-1.0-8-any 2.5 KiB 0.00B/s 00:00 [######################] 100%(0/1) checking keys in keyring [----------------------] 0%(1/1) checking keys in keyring [######################] 100%(0/1) checking package integrity [----------------------] 0%(1/1) checking package integrity [######################] 100%(0/1) loading package files [----------------------] 0%(1/1) loading package files [######################] 100%(0/1) checking for file conflicts [----------------------] 0%(1/1) checking for file conflicts [######################] 100%(0/1) checking available disk space [----------------------] 0%(1/1) checking available disk space [######################] 100%:: Processing package changes...(1/1) installing rpmextract [----------------------] 0%(1/1) installing rpmextract [######################] 100%:: Running post-transaction hooks...(1/1) Arming ConditionNeedsUpdate...
由于 RPM 文件中打包的目錄結(jié)構(gòu)是以根目錄為基準(zhǔn)的,因此推薦直接在根目錄下進(jìn)行解壓:
cd /sudo rpmextract.sh ~lujun9972/android-x86-7.1-r2.x86_64.rpm
光把RPM包中的文件解壓出來(lái)還是不夠的,RPM 文件在安裝(或者卸載)前/后還會(huì)執(zhí)行一個(gè)腳本。
這個(gè)腳本可以通過(guò)命令 rpm -qp --script file.rpm
來(lái)查看。
然而, ArchLinux 并沒(méi)有 rpm
命令怎么辦呢?我們可以可以在虛擬機(jī)上運(yùn)行一個(gè) CentOS 或者直接使用 docker 來(lái)模擬一個(gè) CentOS 環(huán)境也可以:
docker run --rm -v ~lujun9972/android-x86-7.1-r2.x86_64.rpm:/tmp/android.rpm centos rpm -qp --scripts /tmp/android.rpm
postinstall scriptlet (using /bin/sh):. /etc/os-releasemkdir -p /android-7.1-r2/dataif [ "$ID" = "debian" -o "$ID_LIKE" = "debian" ]; then grubcfg=/boot/grub/custom.cfgelif mountpoint -q /boot/efi; then grubcfg=/boot/efi/EFI/$ID/custom.cfg && efi=efielse grubcfg=/boot/grub2/custom.cfgfiecho -e "menuentry \"Android-x86 7.1-r2\" {\n\tsearch --set=root --file /android-7.1-r2/kernel\n\tlinux$efi /android-7.1-r2/kernel quiet root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug \n\tinitrd$efi /android-7.1-r2/initrd.img\n}" > $grubcfgecho -e "menuentry \"Android-x86 7.1-r2 (DEBUG mode)\" {\n\tsearch --set=root --file /android-7.1-r2/kernel\n\tlinux$efi /android-7.1-r2/kernel root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug DEBUG=2\n\tinitrd$efi /android-7.1-r2/initrd.img\n}" >> $grubcfg if [ "$ID" = "debian" -o "$ID_LIKE" = "debian" ]; then sed -i 's/^GRUB_HIDDEN_/#GRUB_HIDDEN_/' /etc/default/grub update-grubfipostuninstall scriptlet (using /bin/sh):. /etc/os-releaseif [ "$ID" = "debian" -o "$ID_LIKE" = "debian" ]; then grubcfg=/boot/grub/custom.cfgelif mountpoint -q /boot/efi; then grubcfg=/boot/efi/EFI/$ID/custom.cfgelse grubcfg=/boot/grub2/custom.cfgfiif [ "$1" = "1" ]; then new_prefix=`dirname $(grep initrd $grubcfg | head -1 | awk '{print $2}')` if [ "$new_prefix" != "/android-7.1-r2" ]; then rmdir $new_prefix/data mv /android-7.1-r2/data $new_prefix rmdir /android-7.1-r2 fielse rmdir /android-7.1-r2/data /android-7.1-r2 rm -f $grubcfgfi
運(yùn)氣好的話,你就能把 RPM 安裝好了。
關(guān)于“怎么在Arch Linux上安裝RPM包”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。