怎么在ArchLinux上安装RPM包

这篇文章将为大家详细讲解有关怎么在Arch Linux上安装RPM包,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

目前创新互联已为超过千家的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器托管、企业网站设计、山阳网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

1、 安装 rpmextract

rpmextract 是一个用来解压 RPM 的工具,它会将 RPM 包中的内容解压到当前目录下。

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...

2、 使用 rpmextract 解压 RPM 文件

由于 RPM 文件中打包的目录结构是以根目录为基准的,因此推荐直接在根目录下进行解压:

cd /sudo rpmextract.sh ~lujun9972/android-x86-7.1-r2.x86_64.rpm

3、 抽取出安装 RPM 时调用的脚本

光把RPM包中的文件解压出来还是不够的,RPM 文件在安装(或者卸载)前/后还会执行一个脚本。

这个脚本可以通过命令 rpm -qp --script file.rpm 来查看。

然而, ArchLinux 并没有 rpm 命令怎么办呢?我们可以可以在虚拟机上运行一个 CentOS 或者直接使用 docker 来模拟一个 CentOS 环境也可以:

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

4、 调用安装脚本

运气好的话,你就能把 RPM 安装好了。

关于“怎么在Arch Linux上安装RPM包”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


当前文章:怎么在ArchLinux上安装RPM包
URL标题:http://azwzsj.com/article/pigojp.html