arch linux rpm格式,如何在ArchLinux上安装RPM包
有时候你可能会发现,想安装一个包,但是这个包只提供 RPM 安装文件,而 ArchLinux 并不支持安装 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 MiB
Total Installed Size: 0.00 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
rpmextract-1.0-8-any0.0B0.00B/s00:00 [----------------------] 0%
rpmextract-1.0-8-any2.5 KiB 0.00B/s00: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-release
mkdir -p/android-7.1-r2/data
if [ "$ID" = "debian" -o"$ID_LIKE" = "debian" ]; then
grubcfg=/boot/grub/custom.cfg
elif mountpoint-q/boot/efi; then
grubcfg=/boot/efi/EFI/$ID/custom.cfg&&efi=efi
else
grubcfg=/boot/grub2/custom.cfg
fi
echo -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}" >$grubcfg
echo -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-grub
fi
postuninstall scriptlet(using /bin/sh):
. /etc/os-release
if [ "$ID" = "debian" -o"$ID_LIKE" = "debian" ]; then
grubcfg=/boot/grub/custom.cfg
elif mountpoint-q/boot/efi; then
grubcfg=/boot/efi/EFI/$ID/custom.cfg
else
grubcfg=/boot/grub2/custom.cfg
fi
if [ "$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
fi
else
rmdir /android-7.1-r2/data/android-7.1-r2
rm -f $grubcfg
fi
4、 调用安装脚本
运气好的话,你就能把 RPM 安装好了。
arch linux rpm格式,如何在ArchLinux上安装RPM包相关推荐
- r语言使用linux命令,技术|如何在 Ubuntu 上安装和使用 R 语言
这个教程指导你如何在 Ubuntu 上安装 R 语言.你也将同时学习到如何在 Ubuntu 上用不同方法运行简单的 R 语言程序. R,和 Python 一样,它是在统计计算和图形处理上最常用的编程语 ...
- deepin linux桌面环境,如何在Ubuntu上安装Deepin桌面环境
到目前为止,Deepin拥有最时尚的桌面环境.它可能是最漂亮,最好的user-friendly桌面Linux发行版之一.当我们谈论视觉吸引力时,我说它吹走了Windows 10和MacOS并没有错. ...
- linux卸载kodi,如何在Ubuntu上安装Kodi 18 Beta
Kodi的Beta版周期很长.很棒,因为它有助于将错误排除在生产版本之外,而且还可以保留数月的新功能.值得庆幸的是,Kodi开发人员提供了可供测试和使用的"unstable"软件包 ...
- mac在linux虚拟机gromacs,如何在MacBook上安装gromacs
满意答案 rqeljnpl3 2017.02.18 采纳率:56% 等级:12 已帮助:5001人 MacBook上gromacs安装流程: (1) 解压缩fftw,lam-mpi,gromac ...
- Linux 如何安装 SRPM 包(源代码 rpm 软件包,以 .src.rpm 为后缀名)/rpm 格式的源码软件包/源码包
文章目录 一.SRPM 介绍 二.SRPM 命名格式 三.SRPM 的安装 (一)直接使用命令 rpmbuild (二)利用 *.spec 文件编译 (三)使用命令 make 编译和安装 四.写在最后 ...
- linux+usb刻录,如何在Ubuntu上安装Etcher-开源USB刻录机工具
如何在Ubuntu上安装Etcher-开源USB刻录机工具 Mark Do 2017年5月20日 暂无评论 阅读 4,988 次 Etcher是一款跨平台的USB镜像文件写入工具,在Windows.m ...
- java安装_如何在 Mac 上安装 Java | Linux 中国
macOS 用户可以运行 Java 的开源版本,以及用于云原生开发的新框架. 来源:https://linux.cn/article-12393-1.html 作者:Daniel Oh 译者:MCGA ...
- 如何在vmware15上安装linux镜像
如何在vmware15上安装linux镜像 环境介绍 VMware前置条件 VMware安装centos7镜像 环境介绍 VMware® Workstation 15 Pro CentOS-7-x86 ...
- 如何在Linux(CentOS, Debian, Fedora和Ubuntu)上安装MyCLI
介绍 MyCLI是MySQL和MariaDB的命令行客户端,允许您自动完成,并帮助您的SQL命令语法. MyCLI特性 在数据库中键入SQL关键字以及表.视图和列时自动完成. 输入时的语法高亮显示. ...
最新文章
- 0909 编译原理1
- 加权边界框融合(WBF)
- lucene搜索之facet查询原理和facet查询实例——TODO
- python安装勾选-Python的安装
- 函数 —— strncpy() (内存重叠) memcpy() memmove() 一个字符串拷贝给另一个字符串
- memcached的基本命令(安装、卸载、启动、配置相关)
- 迭代加深搜索与埃及分数求解
- 给 asp.net core 写个中间件来记录接口耗时
- java font属性,css font-family属性怎么用
- h5 rem vue_vue移动端h5适配解决方案(rem or vw)
- 安装esxi时候的No Network Adapters报错 解决办法
- 微信获取access_token 返回-1000
- 51单片机——蜂鸣器按照次数响起1.0
- character在mysql什么类型_character是什么字段类型
- dac芯片(国产dac芯片)
- Latex使用总结(待完善)
- 电口模块和光模块有什么区别?
- 营销-营销方式:营销方式
- 最简单的数据备份的方法
- 接口 抽象类 C++
热门文章
- windows下安装cygwin以及SeismicUnix在cygwin下的安装(windows下安装linux环境,非虚拟机、非双系统)
- 大数据时代时代舍恩伯格书资源_大数据时代的特征和思维
- web root下放置图片_Apache HTTP存在提权漏洞,威胁共享Web主机安全性
- uwsgi+django在ubuntu下命令部署亲测ok
- IDEA下java的SSM框架搭建
- servlet请求的执行过程_Springmvc执行流程
- c语言学习-使用指针求一个字符串的长度
- OpenShift 4 - DevSecOps (3) - 用 RHACS 精细化管理云原生应用安全
- OpenShift 4 - 安装3Scale API Management环境
- .NET Standard,有哪些替代方案?