zoukankan      html  css  js  c++  java
  • yum 系列(一) yum 和 rpm 常用命令

    yum 系列(一) yum 和 rpm 常用命令

    一、yum 常用命令

    yum 命令:http://man.linuxde.net/yum

    yum 是在 Fedora 和 RedHat 以及 SUSE 中基于 rpm 的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理 RPM 软件包,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

    yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

    1. 语法

    yum(选项)(参数)
    

    2. 选项

    -h:显示帮助信息;
    -y:对所有的提问都回答“yes”;
    -c:指定配置文件;
    -q:安静模式;
    -v:详细模式;
    -d:设置调试等级(0-10);
    -e:设置错误等级(0-10);
    -R:设置yum处理一个命令的最大等待时间;
    -C:完全从缓存中运行,而不去下载或者更新任何头文件。
    

    3. 参数

    install:安装rpm软件包;
    update:更新rpm软件包;
    check-update:检查是否有可用的更新rpm软件包;
    remove:删除指定的rpm软件包;
    list:显示软件包的信息;
    search:检查软件包的信息;
    info:显示指定的rpm软件包的描述信息和概要信息;
    clean:清理yum过期的缓存;
    shell:进入yum的shell提示符;
    resolvedep:显示rpm软件包的依赖关系;
    localinstall:安装本地的rpm软件包;
    localupdate:显示本地rpm软件包进行更新;
    deplist:显示rpm软件包的所有依赖关系。
    

    4. 实例

    (1) 安装

    yum install              #全部安装
    yum install package1     #安装指定的安装包package1
    yum groupinsall group1   #安装程序组group1
    

    (2) 更新和升级

    yum update               #全部更新
    yum update package1      #更新指定程序包package1
    yum check-update         #检查可更新的程序
    yum upgrade package1     #升级指定程序包package1
    yum groupupdate group1   #升级程序组group1
    

    (3) 查找和显示

    yum info package1      #显示安装包信息package1
    yum list               #显示所有已经安装和可以安装的程序包
    yum list package1      #显示指定程序包安装情况package1
    yum groupinfo group1   #显示程序组group1信息yum search string 根据关键字string查找安装包
    

    (4) 删除程序

    yum remove | erase package1   #删除程序包package1
    yum groupremove group1             #删除程序组group1
    yum deplist package1               #查看程序package1依赖情况
    

    (5) 清除缓存

    yum clean packages       #清除缓存目录下的软件包
    yum clean headers        #清除缓存目录下的 headers
    yum clean oldheaders     #清除缓存目录下旧的 headers
    

    二、rpm 常用命令

    rpm 命令:http://man.linuxde.net/rpm

    rpm 命令是 RPM 软件包的管理工具。rpm 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

    1. 语法

    rpm(选项)(参数)
    

    2. 选项

    -a:查询所有套件;
    -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
    -c:只列出组态配置文件,本参数需配合"-l"参数使用;
    -d:只列出文本文件,本参数需配合"-l"参数使用;
    -e<套件档>或--erase<套件档>:删除指定的套件;
    -f<文件>+:查询拥有指定文件的套件;
    -h或--hash:套件安装时列出标记;
    -i:显示套件的相关信息;
    -i<套件档>或--install<套件档>:安装指定的套件档;
    -l:显示套件的文件列表;
    -p<套件档>+:查询指定的RPM套件档;
    -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
    -R:显示套件的关联性信息;
    -s:显示文件状态,本参数需配合"-l"参数使用;
    -U<套件档>或--upgrade<套件档>:升级指定的套件档;
    -v:显示指令执行过程;
    -vv:详细显示指令执行过程,便于排错。
    

    3. 参数

    软件包:指定要操纵的 rpm 软件包。

    4. 实例

    (1) 安装 rpm 软件包

    rpm 软件包的安装可以使用程序 rpm 来完成。执行下面的命令:

    rpm -ivh your-package.rpm
    

    其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。安装过程中可能出现下面的警告或者提示:

    ... conflict with ...
    

    可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是无法正确安装的可以用 rpm --force -i 强制安装即可

    ... is needed by ...
    ... is not installed ...
    

    此包需要的一些软件你没有安装可以用 rpm --nodeps -i 来忽略此信息,也就是说 rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软件包不能保证完全发挥功能。

    如果 rpm 包有依赖关系,可以全部安装

    rpm -Uvh --force --nodeps *.rpm 
    

    (2) 如何安装 .src.rpm 软件包

    有些软件包是以 .src.rpm 结尾的,这类软件包是包含了源代码的 rpm 包,在安装时需要进行编译。这类软件包有两种安装方法:

    方法一:

    rpm -i your-package.src.rpm
    cd /usr/src/redhat/SPECS
    rpmbuild -bp your-package.specs             #一个和你的软件包同名的specs文件
    cd /usr/src/redhat/BUILD/your-package/      #一个和你的软件包同名的目录
    ./configure                                 #这一步和编译普通的源码软件一样,可以加上参数
    make
    make install
    

    方法二:

    rpm -i you-package.src.rpm
    cd /usr/src/redhat/SPECS
    

    前两步和方法一相同

    rpmbuild -bb your-package.specs       #一个和你的软件包同名的specs文件
    

    这时在/usr/src/redhat/RPM/i386/(根据具体包的不同,也可能是i686,noarch等等)在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。

    执行 rpm -i new-package.rpm 即可安装完成。

    (3) 如何卸载 rpm 软件包

    使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀 .rpm,比如卸载软件包 proftpd-1.2.8-1,可以使用下列格式:

    rpm -e proftpd-1.2.8-1
    rpm -e proftpd-1.2.8
    rpm -e proftpd-
    rpm -e proftpd
    rpm -qa | grep proftpd | xargs rpm -e --nodeps
    

    不可以是下列格式:

    rpm -e proftpd-1.2.8-1.i386.rpm
    rpm -e proftpd-1.2.8-1.i386
    rpm -e proftpd-1.2
    rpm -e proftpd-1
    

    有时会出现一些错误或者警告:

    ... is needed by ...
    

    这说明这个软件被其他软件需要,不能随便卸载,可以用 rpm -e --nodeps 强制卸载

    (4) 如何不安装但是获取rpm包中的文件

    使用工具 rpm2cpio 和 cpio

    rpm2cpio xxx.rpm | cpio -vi
    rpm2cpio xxx.rpm | cpio -idmv
    rpm2cpio xxx.rpm | cpio --extract --make-directories
    

    参数i和extract相同,表示提取文件。v表示指示执行进程,d和make-directory相同,表示根据包中文件原来的路径建立目录,m表示保持文件的更新时间。

    (5) 如何查看与 rpm 包相关的文件和其他信息

    下面所有的例子都假设使用软件包 mysql-3.23.54a-11

    # 1. 查看系统中安装了那些 rpm 软件包。
    rpm -qa
    rpm -qa | grep sql
    # 2. 如何获得某个软件包的文件全名。
    rpm -q mysql
    # 3. 查看 rpm 包安装路径
    rpm -ql mysql-3.23.54a-11
    

    每天用心记录一点点。内容也许不重要,但习惯很重要!

  • 相关阅读:
    2w字 + 40张图带你参透并发编程!
    完了,这个硬件成精了,它竟然绕过了 CPU...
    一文详解 Java 并发模型
    详解匈牙利算法与二分图匹配
    机器学习 | 详解GBDT在分类场景中的应用原理与公式推导
    Python | 浅谈并发锁与死锁问题
    LeetCode 91,点赞和反对五五开,这题是好是坏由你来评判
    LeetCode 90 | 经典递归问题,求出所有不重复的子集II
    【Azure DevOps系列】什么是Azure DevOps
    MSIL入门(四)之委托delegate
  • 原文地址:https://www.cnblogs.com/binarylei/p/9185794.html
Copyright © 2011-2022 走看看