Linux------软件包管理

一、软件包介绍

1、软件类型

  • 二进制软件(rpm -ivh、yum)

    • .rpm

  • 源码软件(先解压再使用)

    • .tar.gz、.tar.bz2

2、获取rpm安装包

  • 大多数的安装包都存在系统的镜像文件中,进入光盘挂载点查看

  • yum-plugin-changelog-1.1.31-52.el7.noarch.rpm

  • zlib-1.2.7-18.el7.x86_64.rpm

  • 软件名-版本号-操作系统平台-操作系统架构.rpm

    • 操作系统有三种

      • noarch //不区分架构

      • x86_64 //64位操作系统

      • i686 //32位操作系统

 [root@localhost Packages]# uname -srm
 Linux 3.10.0-1062.el7.x86_64 x86_64
 ​

二、rpm管理操作

1、安装软件

rpm -ivh 软件包所在路径

  • -i:安装

  • -v:显示

  • -h:以#号显示进度

  • 以安装ftp和httpd为例

 [root@localhost ~]# rpm -ivh 软件安装包名称
 [root@localhost ~]# rpm -ivh /run/media/root/CentOS\ 7\ x86_64/Packages/ftp-0.17-67.el7.x86_64.rpm
 正在升级/安装...
    1:ftp-0.17-67.el7                  ################################# [100%]
 [root@localhost ~]# rpm -ivh /run/media/root/CentOS\ 7\ x86_64/Packages/httpd-2.4.6-90.el7.centos.x86_64.rpm 
 警告:/run/media/root/CentOS 7 x86_64/Packages/httpd-2.4.6-90.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
 错误:依赖检测失败:
     /etc/mime.types 被 httpd-2.4.6-90.el7.centos.x86_64 需要
     httpd-tools = 2.4.6-90.el7.centos 被 httpd-2.4.6-90.el7.centos.x86_64 需要
     libapr-1.so.0()(64bit) 被 httpd-2.4.6-90.el7.centos.x86_64 需要
     libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-90.el7.centos.x86_64 需要
     
     //需要安装依赖,
     error: Failed dependencies:
 软件依赖关系报错
 ​

2、软件查询、删除

  • rpm -q 软件名

  1. 查询软件是否安装

 [root@localhost ~]# rpm -q ftp 
 ftp-0.17-67.el7.x86_64
 ​
  • rpm -qa //查询机器里安装的所有软件

  • rpm -qi 包名 查看一个包的详细信息

    rpm -qf 文件名 查看一个文件是由哪个包安装的

    rpm -ql 包名 查看一个包安装了哪些文件

    rpm -qa 查看系统中安装了哪些包

 [root@localhost ~]# rpm -qa | wc -l
 1355
  1. 查询文件对应的软件安装包

which vim //查询vim这个命令所在文件的路径

rpm -qf 路径 //查询vim这个文件的安装包

 [root@localhost ~]# which vim
 /usr/bin/vim
 [root@localhost ~]# rpm -qf /usr/bin/vim
 vim-enhanced-7.4.629-6.el7.x86_64
 ​
  1. 卸载软件包

rpm -e +软件包名字 //删除软件包

 [root@localhost ~]# rpm -e vim-enhanced
 [root@localhost ~]# vim /etc/fstab 
 -bash: /usr/bin/vim: 没有那个文件或目录
  1. 查询软件生成的文件

rpm -ql +软件名字

 [root@hosta ~]# rpm -ql coreutils | less 

三、基于yum工具管理rpm软件

1、yum工具介绍

  • 作用

    1. 管理rpm软件安装、卸载、更新、查询

  • 优势

    1. 自动解决软件依赖关系

  • 前提

    1. 配置合适的yum源/yum软件仓库

      1. 指定软件安装包的存放位置

    2. yum仓库类型

      1. 本地仓库

      2. FTP仓库

      3. HTTP仓库

    3. 配置yum仓库

      1. /etc/yum.repos.d/*.repo

2、 利用Centos自带的yum仓库安装软件

  • 查看自带的软件仓库

 [root@hosta ~]# ls /etc/yum.repos.d/
 CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo
  • 安装httpd软件

[root@hosta ~]# yum install httpd 
[root@hosta ~]# yum install vim-enhanced 

[root@hosta ~]# rpm -q httpd
httpd-2.4.6-97.el7.centos.2.x86_64

[root@hosta ~]# rpm -q vim-enhanced
vim-enhanced-7.4.629-8.el7_9.x86_64
  • 替换Centos自带的base仓库

[root@hosta ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

四、配置本地自带yum仓库

1、备份现有的7个仓库

[root@localhost yum.repos.d]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/^C

2、新建软件仓库并编写本地仓库

[root@localhost yum.repos.d]# mkdir Centos.repo
[root@localhost yum.repos.d]# vim Centos.repo
[root@localhost yum.repos.d]# cat Centos7.repo 
[centos7]
name=centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0

3、清空缓存、新建缓存、查看仓库是否配置成功

[root@localhost ~]# yum clean all 
已加载插件:fastestmirror, langpacks
正在清理软件源: centos7
Cleaning up list of fastest mirrors
Other repos take up 279 M of disk space (use --verbose for details)
[root@localhost ~]# yum makecache 
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
centos7                                    | 3.6 kB     00:00     
(1/4): centos7/group_gz                      | 165 kB   00:00     
(2/4): centos7/primary_db                    | 3.2 MB   00:00     
(3/4): centos7/filelists_db                  | 3.3 MB   00:00     
(4/4): centos7/other_db                      | 1.3 MB   00:00     
元数据缓存已建立
[root@localhost ~]# yum repolist 
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识                        源名称                         状态
centos7                       centos7                        4,067
repolist: 4,067

4、验证软件仓库

[root@localhost ~]# yum -y install httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-90.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-90.el7.centos,它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 libaprutil-1.so.0()(64bit),它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 libapr-1.so.0()(64bit),它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 apr.x86_64.0.1.4.8-5.el7 将被 安装
---> 软件包 apr-util.x86_64.0.1.5.2-6.el7 将被 安装
---> 软件包 httpd-tools.x86_64.0.2.4.6-90.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

======================================================================================================================================
 Package                         架构                       版本                                    源                           大小
======================================================================================================================================
正在安装:
 httpd                           x86_64                     2.4.6-90.el7.centos                     centos7                     2.7 M
为依赖而安装:
 apr                             x86_64                     1.4.8-5.el7                             centos7                     103 k
 apr-util                        x86_64                     1.5.2-6.el7                             centos7                      92 k
 httpd-tools                     x86_64                     2.4.6-90.el7.centos                     centos7                      91 k
 mailcap                         noarch                     2.1.41-2.el7                            centos7                      31 k

事务概要
======================================================================================================================================
安装  1 软件包 (+4 依赖软件包)

总下载量:3.0 M
安装大小:10 M
Downloading packages:
--------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                   11 MB/s | 3.0 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : apr-1.4.8-5.el7.x86_64                                                                                            1/5 
  正在安装    : apr-util-1.5.2-6.el7.x86_64                                                                                       2/5 
  正在安装    : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                            3/5 
  正在安装    : mailcap-2.1.41-2.el7.noarch                                                                                       4/5 
  正在安装    : httpd-2.4.6-90.el7.centos.x86_64                                                                                  5/5 
  验证中      : apr-1.4.8-5.el7.x86_64                                                                                            1/5 
  验证中      : mailcap-2.1.41-2.el7.noarch                                                                                       2/5 
  验证中      : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                            3/5 
  验证中      : apr-util-1.5.2-6.el7.x86_64                                                                                       4/5 
  验证中      : httpd-2.4.6-90.el7.centos.x86_64                                                                                  5/5 

已安装:
  httpd.x86_64 0:2.4.6-90.el7.centos                                                                                                  

作为依赖被安装:
  apr.x86_64 0:1.4.8-5.el7  apr-util.x86_64 0:1.5.2-6.el7  httpd-tools.x86_64 0:2.4.6-90.el7.centos  mailcap.noarch 0:2.1.41-2.el7 

完毕!

五、配置yum源安装ceph

  • 因为自带的7个yum源没有ceph所以要新建一个源,并添加配置信息

[root@hosta ~]# vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/storage/x86_64/ceph-jewel/
enabled=1
gpgcheck=0
[root@hosta ~]# yum install ceph
[root@hosta ~]# rpm -q ceph
ceph-10.2.10-0.el7.x86_64
  • 主机存在多个yum源文件,确保每个文件的正确,否则会影响yum工具正常使用

六、yum工具常用功能

1、安装软件

# yum install 软件名称  软件名称  软件名称

2、卸载软件

# yum remove 软件名称  软件名称  
[root@hosta ~]# yum remove ceph 

3、更新软件

# yum update 软件名称 
//新建一个更新的源,编辑配置信息
[root@hosta ~]# vim /etc/yum.repos.d/ceph14.repo
[ceph14]
name=ceph14
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/storage/x86_64/ceph-nautilus/
enabled=1
gpgcheck=0

[root@hosta ~]# yum update ceph 

4、查看所有可用源

[root@hosta ~]# yum repolist 
[root@hosta ~]# 

5、查看所有软件

[root@hosta ~]# yum list all

6、查询文件对应的软件

[root@hosta ~]# yum provides iotop  
[root@hosta ~]# yum provides "*bin/sar"

七、yum缓存功能

1、yum缓存功能介绍

  • 默认没有启用

  • 安装软件的同时,会自动缓存相关的软件包

2、启用缓存功能

[root@localhost ~]# vim /etc/yum.conf        
[main]
cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录
keepcache=1             #缓存是否保存,1保存,0不保存。要使用离线模式的yum,这里改为1

3、验证yum缓存功能,并制作普通文件夹yum仓库

//在安装软件时会生成yum缓存
//如果服务器不联网,又想要安装一个yum源中不存在的软件,可以使用yum缓存在联网的虚拟机中安装下来,然后复制到服务其上,制作本地yum源即可

[root@hosta ~]# vim /etc/yum.repos.d/openstack.repo
[openstack]
name=openstack
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/cloud/x86_64/openstack-train/
enabled=1
gpgcheck=0

[root@hosta ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1      //将这里的0改为1,开启yum缓存功能,安装软件时,对应软件相关的rpm包会生成缓存放在/var/cache/yum/这个目录下,想再次在别的服务器上使用软件可以将查找到的rpm包复制走即可

[root@hosta ~]# yum install openstack-keystone 
[root@hosta ~]# mkdir /opt/openstack
[root@hosta ~]# find /var/cache/yum/ -name "*.rpm" -exec cp {} /opt/openstack/ \;
//先将之前安装的openstack软件卸载,删除openstack.repo源,
[root@hosta ~]# cat /etc/yum.repos.d/openstack.repo
[openstack]
name=openstack
baseurl=file:///opt/openstack		//在这里将路径指定为要制作的文件夹
enabled=1
gpgcheck=0
[root@hosta ~]# yum clean all		//清空之前的缓存
[root@hosta ~]# yum install openstack-keystone		//此时安装不成会成功,因为目录不是正确的yum源
[root@hosta ~]# createrepo /opt/openstack/		//制作yum、仓库
Spawning worker 0 with 28 pkgs
Spawning worker 1 with 28 pkgs
Spawning worker 2 with 28 pkgs
Spawning worker 3 with 27 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@hosta ~]# yum install openstack-keystone		//此时再次安装openstack-keystone即可
[root@hosta ~]# rpm -q openstack-keystone 
openstack-keystone-16.0.2-1.el7.noarch

八、源码软件管理操作

1、源码软件介绍

  • .tar.gz .tar.bz2

  • 优势

    • 灵活

      • 自定义软件的安装位置

      • 支持自定义软件的功能

2、原码软件的安装流程(C语言开发的软件、更新也是同样的操作)

  1. 解压缩

  2. 配置软件的安装路径和功能特性

  3. 编译(将软件代码翻译成计算机识别的语言)

  4. 安装、生成软件相关的文件

  5. 卸载用rm -rf 命令即可删除

3、源码编译安装htop软件

//利用rz命令将windows下的.tar.gz 上传到虚拟机,如果没有先安装,并且需要Xshell等远程连接软件
[root@hosta ~]# yum -y install lrzsz 
[root@hosta ~]# tar xf htop-2.2.0.tar.gz	//解压缩
[root@hosta ~]# cd htop-2.2.0/
[root@hosta htop-2.2.0]# ./configure --prefix=/usr/local/htop 			//--prefix=目录名称,指定配置软件的安装路径、功能特性
//大部分的出错都在后几行,仔细看看有没有报错,缺少依赖,看不懂就去百度
[root@hosta htop-2.2.0]# make && make install		//编译并安装
[root@hosta htop]# /usr/local/htop/bin/htop 		//运行htop软件

4、新建5G逻辑卷、源码安装nginx在这个新磁盘上

[root@hosta ~]# pvcreate /dev/sdb
[root@hosta ~]# vgcreate vg0 /dev/sdb
[root@hosta ~]# lvcreate -L 5G -n lv0 vg0
[root@hosta ~]# mkfs.xfs /dev/vg0/lv0 
[root@hosta ~]# mkdir /nginx
[root@hosta ~]# vim /etc/fstab 
[root@hosta ~]# mount -a
[root@hosta ~]# df -Th
[root@hosta ~]# rz 
[root@hosta ~]# tar xf nginx-1.18.0.tar.gz 
[root@hosta ~]# cd nginx-1.18.0/
[root@hosta ~]# ls
[root@hosta ~]# ./configure --prefix=/nginx 
[root@hosta ~]# yum -y install pcre-devel
[root@hosta ~]# yum -y install openssl openssl-devel
[root@hosta ~]# ./configure --prefix=/nginx 	//要在nginx-1.18.0目录下
[root@hosta ~]# cd /nginx/
[root@hosta ~]# make && make install			//要在nginx-1.18.0目录下make
[root@hosta ~]# cd nginx-1.18.0/
[root@hosta ~]# sbin/nginx 
[root@hosta ~]# netstat -anplt		//查看nginx的80端口是否开启,或者打开浏览器输入虚拟机IP地址是否有欢迎界面

九、环境变量

1、环境变量PATH(Windows相同原理)

  • 保存了一些命令的路径

  • 不同路径用冒号隔开

  • 作用

    • 让系统在PATH变量中存放的路径中查找命令

  • 利用之前安装的htop来测试,将htop加入到环境变量中(临时生效)

[root@localhost htop]# bin/htop 
[root@localhost bin]# pwd
/usr/local/htop/bin 
[root@localhost bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/nginx/sbin:/root/bin:/nginx/sbin:/usr/local/htop
[root@localhost bin]# htop
bash: htop: 未找到命令...
相似命令是: 'top'
[root@localhost bin]# export PATH=$PATH:/usr/local/htop/bin/
[root@localhost bin]# htop
  • 永久生效:修改/etc/profile文件

[root@localhost bin]# vim /etc/profile		//在末尾添加命令,保存退出
export PATH=$PATH:/nginx/sbin
[root@localhost bin]# source /etc/profile		//重新加载该配置文件
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值