rpm的四个指令,安装、卸载、查询和升级。
rpm -i
rpm -e
rpm -qa
rpm -Uvh
// 补充一个,查询这个包安装了哪些文件
rpm -ql (包名,如xnee)
// 使用 rpm 查询包,参考 https://blog.csdn.net/bck1453925668/article/details/85788593
-i是安装,-e是卸载,前面两个参数后面要接包名,-qa是查询已安装的包,这个参数能直接使用, -Uvh是升级库。
下面以安装xnee为例讲解如何安装rpm包。
我们知道有些软件yum上没有,不能通过yum直接安装,这时候就要用的rpm了。
推荐几个个找rpm包的网站。
Rpmfind mirror
https://pkgs.org/
下面这个网站不是专门找包的,不推荐,看运气,比如tigervnc的rpm历史版本就在里面
Compare, Download & Develop Open Source & Business Software - SourceForge
举个例子:
我们在(第一个网址)里面搜索xnee
左边.html结尾的链接是该版本xnee需要的依赖,右边以.rpm包结尾的是下载的rpm链接。因为一个rpm包可能需要别的rpm包作为依赖(左边的链接作用),一会后面会讲到。我下载的是Xnee-3.19-10.fc30.x86_64.rpm。
直接安装,发现报错,缺少依赖libxnee.so.0()。(-ivh可以显示安装进度等信息)
我们点击上面我下载版本左边对应的html网址,看看能不能找到对应依赖。
我们发现有对应依赖,然后我们点击libxnee.so.0()。点进去发现又是一个跟上面一样类似的链接。
我们再把我们对应版本的rpm下载下来,跟前面下载的rpm包一块再次安装。
安装没有报错,Xnee安装成功,如图。
安装的时候可以添加--nodeps --force,就是强制执行,但是如果缺少依赖也强制执行,最后还是跑不起来。
rpm -ivh teamviewer_15.7.6.x86_64.rpm --nodeps --force
卸载
rpm -qa | grep xxx包
rpm -e 包名
(卸载可以加上 --nodeps 强制卸载,但是最好不要这样)
————————————————————分界线————————————————————
下载src.rpm
Index of /7.6.1810/os/Source/SPackages
先解决依赖问题,说两个解决依赖的办法
后缀为rpm是可以被有些windows上的压缩工具解压的,也可以在linux上用命令解压
rpm2cpio xxx.rpm | cpio -div
解压完了之后,里面有个spec文件,在里面搜索
BuildRequires:
例如
BuildRequires: libX11-devel, automake, autoconf, libtool, gettext, gettext-autopoint
BuildRequires: libXext-devel, xorg-x11-server-source, libXi-devel, libxshmfence-devel
BuildRequires: xorg-x11-xtrans-devel, xorg-x11-util-macros, libXtst-devel
BuildRequires: libdrm-devel, libXt-devel, pixman-devel libXfont-devel
BuildRequires: libxkbfile-devel, openssl-devel, libpciaccess-devel
BuildRequires: mesa-libGL-devel, libXinerama-devel
BuildRequires: freetype-devel, libXdmcp-devel
BuildRequires: desktop-file-utils, java-devel, jpackage-utils
BuildRequires: libjpeg-turbo-devel, gnutls-devel, pam-devel
BuildRequires: systemd, cmake, fltk-devel
BuildRequires: libXfont2-devel
BuildRequires: fltk-devel >= 1.3.3
BuildRequires: xorg-x11-server-devel
具体要安装哪些依赖需要看里面的注释说明,有些上面的包可以直接用yum安装,有些包可能要手动寻找,解决完依赖关系就可以尝试源码安装了。
也可以使用 rpmbuild命令寻找依赖关系
# rpmbuild --rebuild *.src.rpm
正在安装 tigervnc-1.8.0-13.el7.src.rpm
错误:构建依赖失败:
libXext-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libXi-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libxshmfence-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
xorg-x11-xtrans-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
xorg-x11-util-macros 被 tigervnc-1.8.0-13.el7.x86_64 需要
libXtst-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libdrm-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libXt-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
pixman-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libXfont-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libxkbfile-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
openssl-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libpciaccess-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
mesa-libGL-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libXinerama-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
freetype-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libXdmcp-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
java-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libjpeg-turbo-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
gnutls-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
pam-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
cmake 被 tigervnc-1.8.0-13.el7.x86_64 需要
fltk-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
libXfont2-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
fltk-devel >= 1.3.3 被 tigervnc-1.8.0-13.el7.x86_64 需要
xorg-x11-server-devel 被 tigervnc-1.8.0-13.el7.x86_64 需要
把里面的包挨个安装就好,有些可以使用yum安装,就使用
yum install -y 包名
教个技巧,就是用正则表达式替换上面的东西,可以实现批量修改
被.*需要 正则替换为 空格
六个空格 正则替换为 yum -y install
就可以变成
yum -y install libXext-devel
yum -y install libXi-devel
yum -y install libxshmfence-devel
yum -y install xorg-x11-xtrans-devel
yum -y install xorg-x11-util-macros
yum -y install libXtst-devel
yum -y install libdrm-devel
yum -y install libXt-devel
yum -y install pixman-devel
yum -y install libXfont-devel
yum -y install libxkbfile-devel
yum -y install openssl-devel
yum -y install libpciaccess-devel
yum -y install mesa-libGL-devel
yum -y install libXinerama-devel
yum -y install freetype-devel
yum -y install libXdmcp-devel
yum -y install java-devel
yum -y install libjpeg-turbo-devel
yum -y install gnutls-devel
yum -y install pam-devel
yum -y install cmake
yum -y install fltk-devel
yum -y install libXfont2-devel
yum -y install fltk-devel
yum -y install xorg-x11-server-devel
解决完依赖问题就可以安装src.rpm包了
rpmbuild --rebuild *.src.rpm