• rpm 软件包


    rpm 软件包

      Linux 中有安装软件方式有两种,源码安装以及软件包安装:

    • 压缩包:源码包,编译后安装
    • rpm(redhat package manager 红帽软件包管理):需要编译,直接安装即可

      采用源码包安装,需要考虑软件之间的依赖关系,以及自行编译,在校验、安装、卸载等方面很不方便。rpm 机制就是为解决这种问题而设计的,像 Windows 的控制面板一样,简历同一的数据库文件,详细记录软件信息并自动分析依赖关系。

    1. rpm 命令

    1.1 安装本地软件包

      用于安装、卸载、查询、升级软件包等

      语法:

    rpm [选项] 软件包名
    选项:
    - i:安装(install)软件
    -U:升级(upgrade)软件
    -e:移除/删除(erase)软件
    -v:显示详细的处理信息,一般与 h 搭配使用
    -h:显示安装进度,卸载不能用
    -q: 查询(query)
    -a:所有(all)
    

      1. rpm 软件包结构

      rpm 软件包分为包名、版本号、修正次数(及发行多少次)、适用平台、32/64 位以及拓展名:

    # 版本是奇数为测试版本(不稳定),偶数为稳定版
    yum-plugin-aliases-1.1.30-16.el6.x86_64.rpm		# el6 可以安装到哪个系统,16 是修正次数
    

      2. 安装

    cd /media/CentOS_6.8_Final/Packages
    rpm -ivh file1.rpm
    rpm -ivh file1.rpm file2.rpm...		# 安装多个
    rpm -ivh file.rpm --force	# 覆盖安装
    

      3. 查询

    # 查询所有安装的软件包
    rpm -qa			# query/all
    
    # 过滤,查询某个软件包
    rpm -qa | grep 'dhcp'
    rpm -q 软件包名
    rpm -ql 软件包名		 # query location 查询软件包安装位置
    rpm -qi 软件包名      # 查询软件包详细信息
    

      4. 卸载

    rpm -e 软件包名
    

      5. 升级

    rpm -U 软件包名
    

    1.2 安装网络软件包

      语法:

    rpm -ivh 域名/软件包名
    rpm -ivh http://mirror.centos.org/centos-6/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm
    

      也可以先使用 wget 命令下载到本地,再使用 rpm 命令安装:

    cd direcory		# 切换到目录
    wget http://mirror.centos.org/centos-6/6.8/extras/x86_64/Packages/python-boto-2.32.1-1.el6.centos.noarch.rpm	# 下载
    rpm -ivh python-boto	# 安装
    

    1.3 rpm 包的属性依赖性问题

      rpm 软件包的属性依赖性问题,即这个软件包的安装依赖于其他软件包的安装。那么卸载它就需要忽略依赖或者先卸载依赖于它的那个软件,安装亦一样:

    # 删除有依赖关系的软件包
    rpm -e dhcp-common --nodeps		# no dependencies 忽略依赖
    

    2. yum 命令

      
    

      yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

      基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

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

    2.1 常见 yum 命令

    命令 作用 命令 作用
    yum install 软件包 安装软件包 yum repolist all 列出所有仓库
    yum list all 列出仓库中所有软件包 yum info 软件包 查看软件包信息
    yum makecache 制作缓存 yum -y install http* 模糊安装(安装所有含http 的软件包
    yum reinstall 软件包 重新安装软件包 yum update 软件包 升级软件包
    yum remove 软件包 移除软件包 yum clean all 清除所有仓库缓存
    yum check-update 检查可更新的软件包 yum grouplist 查看系统中已安装的软件包组
    yum groupinstall "软件包组" 安装指定的软件包组 yum groupremove 软件包组 移除指定的软件包组

    2.2 配置本地 yum 仓库

      配置一个本地 yum 仓库,需要将路径设置为光盘路径(/media/CentOS_6.8_Final/Packages 存放的 rpm软件包),再配置 yum 仓库。

      步骤一:将光盘挂载到某个目录,也可以不挂载直接指定光盘路径

    mkdir /media/local_yum
    mount /media/CentOS_6.8_Final /media/local_yum
    

      步骤二:配置 yum 仓库,编辑配置文件。首先在 /etc/yum.repos.d/ 目录下创建一个仓库名(local.repo),再编辑配置文件

    [root@hj /]# vim /etc/yum.repos.d/local.repo
    [local]			# id ,中括号内容要求唯一,但不要出现特殊字符
    name=local yum	# 描述信息
    baseurl=file:///media/CentOS_6.8_Final	# yum 软件仓库位置,指向光盘挂载点
    enabled=1		# 1 为开启,0不开启
    gpgcheck=0		# 检查签名,1 为检测,0不检测(一般设置不检测)
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release  # 签名认证信息的路径(gpgcheck=1 才有这行)
    

      查看仓库是否安装成功,安装软件包

    [root@hj yum.repos.d]# yum repolist
    [root@hj yum.repos.d]# yum install dhcp-common
    

    2.3 自定义 yum 源

      自定义 yum 源除了需要有 rpm 软件包,还需要存放有软件包依赖关系的配置文件 repodata,可以使用 createrepo 命令生成:

    安装 createrepo
    mkdir /test
    cp 软件包 /test
    createrepo /test
    修改 /etc/yum.repos.d/local.repo 的 baseurl=file:///test
    

    2.4 网络源仓库

      要想安装网络上的软件包,就需要安装网络源仓库,与配置本地 yum 仓库不同的是 baseurl 指向的是网络 URL:

    vim /etc/yum.repos.d/line_yum
    [online]
    name=online yum
    baseurl=http://mirrors.163.com/.help/CentOS6-Base-163.repo
    enabled=1
    gpgabled=0
    

      使用 yum 命令安装网络上的软件包,安装完毕后默认移除软件包,也可以通过设置 /etc/yum.conf 文件,将软件包保留下来,用于以后制作自己的 yum 源。

    mkdir /etc/yum_source		# 新建一个目录用于存储缓存的软件包
    vim /etc/yum.conf			# 打开配置文件
    cachedir=/yum_source		# 缓存目录
    keepcache=0					# 保留缓存,0表示不缓存,1表示缓存
    

    2.5 国内源

      系统默认的源有时速度上很慢,我们可以将源路径设置为国内的源,国内目前比较好用的几个源有:网易 163 、中科大、sohu 等,下面以网易 163 为例:

      步骤一:备份原先的源(CentOS-Base.repo)

    mv /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.backup
    

      步骤二:下载对应版本 repo 文件,放入 /etc/yum.repos.d/

    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    mv CentOS6-Base-163.repo CentOS-Base.repo
    

      步骤三:运行命令生成缓存

    yum clean all
    yum makecache
    

    3. 源码包安装

    3.1 源码包安装步骤

      一般来说,能用 yum 软件仓库安装,就要 yum 方式;反之则去寻找合适的 rpm 软件包安装;实在没有资源可用,则采用源码包安装。

      源码安装分为以下几个步骤:

      第 1 步:安装编译所需的 C 运行库 glibc(Linux 最底层的 api ),以及 gcc 编译器(Linux 中所有程序包括内核都是 gcc 编译),两个软件互相依赖。

    yum install gcc-* glibc-* -y
    

      第 2 步:下载源码包。源码包通常是归档后的以 gzip 或 bzip2 等格式压缩的文件,因此一般会具有 .tar.gz、.tar.bz2 后缀。

    # 一般下载到根目录下
    wget https://python.org/ftp/python/3.6.5/Python-3.6.5.tgz
    

      第 3 步:解包。

    tar -xvf Python-3.5.2.tgz
    

      第 4 步:编译源码包文件。在正式安装之前,还需使用编译器脚本针对当前系统进行一系列的评估工作,如果系统符合安装要求,会在当前目录生成一个 Makefile 安装文件,还根据需要追加 --prefix 参数,指定软件安装路径。

    cd /Python-3.5.2
    ./configure --prefix=/usr/local/python3.6	# 指定软件安装路径
    

      第 5 步:生成二进制安装程序。刚刚生成的 Makefile 文件保存有关系统环境、软件依赖关系和安装规则等,接下来可以用 make 命令编译生成二进制安装程序。

    make
    

      第 6 步:运行二进制服务程序安装包(即安装软件)。

    make install
    

      第 7 步:清理源码包临时文件。在编译时会产生很多临时垃圾文件,可以使用 make clean 命令将其清除掉。

    make clean
    

    3.2 添加环境路径(PATH)

      软件安装成功后,要想正常使用,一般都需要添加环境路径,这和 Windows 上类似,以上面的 Python 程序为例:

      1. 查看 PATH 路径

    # 以冒号【:】 为分隔符
    [root@hj /]# echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    

      2. 临时添加 PATH

      临时添加 PATH,重启系统服务失效,直接给 PATH 赋值即可

    # 添加 Python 执行程序路径 /usr/local/python3.6/bin/
    PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3.6/bin/
    

      3. 永久添加 PATH

      凡是永久有效的,都需要修改配置文件。添加 PATH 需要修改 /etc/profile ,在最后面添加 PATH

    vim /etc/profile
    PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3.6/bin/
    export PATH                           
    

      保存,退出,执行 source /etc/profile,否则不奏效。

  • 相关阅读:
    NPS之Socks流量分析以及未授权复现
    某OA系统审计小记
    记一次MCMS的审计之路
    Eoffice Server_v9.0 漏洞分析
    goahead环境变量注入漏洞分析
    Java反序列化之原生
    ThinkPHP6.0.13反序列化漏洞分析
    Docker
    Mybatisplus进阶
    软件项目文档
  • 原文地址:https://www.cnblogs.com/midworld/p/9849233.html
Copyright © 2020-2023  润新知