LINUX下软件安装与管理的方法

电子说

1.2w人已加入

描述

LINUX下软件安装方式主要有以下4种

  • 源码方式安装Linux软件
  • RPM工具方式安装软件
  • yum方式在线安装软件
  • 二进制包安装方式安装软件

下面将分别演示不同方式下软件的安装与管理。

1.源码方式安装Linux软件

这种方式安装安装软件的优点是:

1)只安装需要的软件,不用的不安装。

2)安装时可以通过参数指定路径,不需要的时候,直接删除目录即完成卸载。

3)可以从官网获得最新的源码包,然后安装最新版的软件。

源码方式安装软件地般 步骤

采用源码方式安装软件,一般包括以下三步:

1)到官网下载软件压缩包,一般是tar.gz或者是tar.bz2格式,并解压。

2)进入解压目录,执行./configure,进行分析环境是否满足。

3)执行make && make install,进行编译与安装。

具体的安装过程演示,本文不再描述。请关注本公众号Python运维实践haopython),看2022年7月27日发布的 《CENTOS7.8下源码方式安装Apache2.4.54及排错》 这篇文章。

注:此处插入公众号和文章链接。

2.RPM工具方式安装软件

2.1RPM包管理工具介绍

RPMRed Hat Package Manager的缩写,即Redhat软件包管理。它是linux平台下通用的软件包管理方式,例如FedoraRedhatsuse等主流linux发行版本都默认采用了这种软件包管理方式。这种方式管理软件的安装优缺点如下: 优点: 安装简单方便。 缺点: 对操作系统环境的依赖很大,它要求RPM包的安装环境必须与RPM包封装时的环境相一致或相当。同时需满足安装时与系统某些软件包的依赖关系,例如需要安装A软件,但是A软件需要系统有B和C软件的支持,那么就必须先安装B和C软件,然后才能安装A软件

2.2RPM包命名及含义

对于RPM包命名格式,以下面这个文件为例进行解释:

mysql-community-server-8.0.29-1.el7.x86_64.rpm

它主要由六部分组成,各部分如下:

mysql-community-server:表示软件的名称

8.0.29:表示软件的版本号

1:表示软件更新发行的次数

el7:表示适用的操作系统平台

x86_64:表示适合的硬件平台

rpm:是rpm软件包的标识

2.3RPM工具使用命令
2.3.1安装软件包

命令格式:

rpm -i [辅助选项] file1.rpm file2.rpm…..fileN.rpm

主选项含义:

-iinstall的意思,即安装软件。等同于--install

file1.rpm file2.rpm…..fileN.rpm:表示多个软件可以一起安装,这种方式有助于解决多个依赖关系。

辅助选项参数有多个,一般常用的有如下几个,或它们的 组合

  • -a,--all :查询/验证所有软件包。
  • -v:显示附加信息。
  • -h:安装时输出标记“#”。
  • --test:只对安装进行测试,并不实际安装。
  • --nodeps:不检查软件之间的依赖关系。加入此选项可能会导致软件不可用。
  • --force:忽略软件包以及软件冲突。
  • -U, --upgrade=+ :升级软件包。

组合用法:

一般情况下,安装rpm包采用以下两种方式:

rpm -ivh mysql-community-server-8.0.29-1.el7.x86_64.rpm
rpm -Uvh mysql-community-server-8.0.29-1.el7.x86_64.rpm

有时候,安装的软件的低版本已经存在,这时用rpm -Uvh安装可以解决软件冲突的问题,推荐使用这种方式。

2.3.2查询软件包

命令格式:

rpm -q [辅助选项] package1……packageN

常用选项含义如下:

  • -qquery的意思,也可以使用--query。辅助选项含义如下:
  • -f:查询操作系统中某个文件属于哪个对应的rpm软件包。
  • -p:查询以.rpm为后缀的软件包安装后对应的包名称。
  • -l:显示软件包中的所有文件列表。此选项后面跟软件包安装后对应的包名,切记不是以.rpm为后缀的rpm包。
  • -i:显示软件包的概要信息,例如软件名称、版本、适应平台、大小等等。此选项后面跟完整的包名,切忌不是以.rpm为后缀的rpm包。

一般常用组合使用如下:

1)qf组合:

查询某个文件属于哪个对应的rpm软件包:

[root@mysquid ~]# rpm -qf /bin/ls
coreutils-8.22-24.el7.x86_64
[root@mysquid ~]# rpm -qf /bin/scp
openssh-clients-7.4p1-21.el7.x86_64
[root@mysquid ~]#

2)qa组合

检查yum是否安装:

[root@mysquid ~]# rpm -qa | grep yum
yum-3.4.3-167.el7.centos.noarch
yum-langpacks-0.4.2-7.el7.noarch
yum-plugin-fastestmirror-1.1.31-53.el7.noarch
PackageKit-yum-1.1.10-2.el7.centos.x86_64
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-utils-1.1.31-53.el7.noarch
[root@mysquid ~]#

3)其他组合

rpm -qp
rpm -ql
rpm -qi
rpm -qpi
2.3.3更新软件包

命令格式:

rpm -U [辅助选项] file1.rpm……fileN.rpm

主选项含义如下:-U:upgrade的意思,可以使用--upgrade代替。

参数说明:

file1.rpm……fileN.rpm表示需要升级的rpm文件包。

2.3.4删除软件包

命令格式:

rpm -e [辅助选项] package1……packageN

主选项含义如下:-e:erase的意思,也可以用--erase代替。

参数说明:

package1……packageN表示已经安装的软件包名称。

辅助选项含义如下:

--test:只执行删除的测试。

--nodeps:不检查依赖性。

2.3.5验证未安装的软件包文件

发行的RPM格式的软件包是否值得信任,是否损坏,我们可以通过RPM提供的选项进行验证。

RPM软件包一般使用 Gnu 隐私卫士(或称GPG)来签名,从而帮助使用者肯定下载软件包的可信任性。

命令格式:

rpm -K file1.rpm……fileN.rpm

主选项含义如下:

-K:checksig的意思,也可以用--checksig代替。

这个选项用来检查 RPM 软件包文件的md5校验和GPG签名。

3.yum方式在线安装软件

yum即`yellowdog updater modified。

yellow dog(黄狗)也是一个Linux的发行版本。

3.1yum的安装与配置

Centos7.8为例,检查yum是否已经安装,执行如下命令:

[root@mysquid ~]# rpm -qa | grep yum
yum-3.4.3-167.el7.centos.noarch
yum-langpacks-0.4.2-7.el7.noarch
yum-plugin-fastestmirror-1.1.31-53.el7.noarch
PackageKit-yum-1.1.10-2.el7.centos.x86_64
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-utils-1.1.31-53.el7.noarch
[root@mysquid ~]#

表明yum已经安装。

如果没有任何显示,表示系统中还没有安装yum工具。

yum安装包在Centos系统光盘中可以找到,执行如下指令进行安装:

[root@mysquid ~]# rpm -ivh yum-*.noarch.rpm

安装yum需要python-elementtreepython-sqliteurlgrabberyumconf等软件包的支持。

3.2yum的配置

yum工具安装完毕,接下来的工作是进行yum的配置,yum的配置文件有主配置文件/etc/yum.conf、资源库配置目录/etc/yum.repos.dyum安装后,默认的一些资源库配置可能无法使用,可能需要修改。

3.3yum的特点

安装方便,自动解决依赖性问题。可以同时配置多个资源库(Repository) 配置文件简单(/etc/yum.conf/etc/yum.repos.d/CentOS-Base.repo) 保持与RPM数据库的一致性、安全性

注意:

yum会自动下载所有所需的升级资源包并默认放置在:

/var/cache/yum

当第一次使用yumyum资源库更新时,软件升级所需的时间可能较长。

3.4yum的基本用法
3.4.1通过yum安装和删除RPM

举例如下:

1)安装rpm包,如mysql

[root@mysquid ~]# yum -y install mysql-server mysql mysql-devel
[root@mysquid ~]#

2)删除rpm包,包括与该包有依赖性的包:

[root@mysquid ~]# yum remove mysql-server mysql mysql-devel
3.4.2检查可更新的rpm
[root@mysquid ~]# yum check-update
[root@mysquid ~]#
3.4.3更新所有的rpm
root@mysquid ~]# yum update
3.4.4列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
[root@mysquid ~]# yum info openssh
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
已安装的软件包
名称    :openssh
架构    :x86_64
版本    :7.4p1
发布    :21.el7
大小    :1.9 M
源    :installed
来自源:anaconda
3.4.5列出资源库中特定的可以安装或更新以及已经安装的rpm
[root@mysquid ~]# yum list gcc*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
已安装的软件包
gcc.x86_64                                                                                                 4.8.5-44.el7                                                                                     @base
gcc-c++.x86_64                                                                                             4.8.5-44.el7                                                                                     @base
可安装的软件包
gcc-gfortran.x86_64                                                                                        4.8.5-44.el7                                                                                     base 
gcc-gnat.x86_64                                                                                            4.8.5-44.el7                                                                                     base 
gcc-go.x86_64                                                                                              4.8.5-44.el7                                                                                     base 
gcc-objc.x86_64                                                                                            4.8.5-44.el7                                                                                     base 
gcc-objc++.x86_64                                                                                          4.8.5-44.el7                                                                                     base 
gcc-plugin-devel.x86_64                                                                                    4.8.5-44.el7                                                                                     base 
[root@mysquid ~]#
3.4.6搜索匹配特定字符的rpm包的详细信息
[root@mysquid ~]# yum list squid
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
已安装的软件包
squid.x86_64                                                                                     7:3.5.20-17.el7_9.6                                                                                     @updates
可安装的软件包
squid.x86_64                                                                                     7:3.5.20-17.el7_9.7                                                                                     updates 
[root@mysquid ~]#
3.6.7清除缓存中旧的rpm头文件和包文件
[root@mysquid ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源:base extras updates
Cleaning up list of fastest mirrors
[root@mysquid ~]#
3.5yum只下载软件

使用yum的一个插件:yum-downloadonly可以用来只下载软件,不安装软件。

yum -y install --downloadonly --downloaddir=/tmp  httpd
--downloadonly 说明只下载
--downloaddir  指定安装到哪个目录下
3.6yum加速插件

yum-fastestmirror插件可以自动选择速度最快的mirror

它的配置文件在如下位置:

/etc/yum/pluginconf.d/fastestmirror.conf

其中,yum镜像的速度测试记录文件是这个:

/var/cache/yum/timedhosts.txt

安装加速插件

[root@mysquid ~]# yum -y install yum-plugin-fastestmirror
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                                                                      | 3.6 kB  00:00:00     
extras                                                                                                                                                                                    | 2.9 kB  00:00:00     
updates                                                                                                                                                                                   | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                                                                                                             | 153 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                                                                                                         | 247 kB  00:00:00     
(3/4): base/7/x86_64/primary_db                                                                                                                                                           | 6.1 MB  00:00:01     
(4/4): updates/7/x86_64/primary_db                                                                                                                                                        |  16 MB  00:00:04     
正在解决依赖关系
……
3.7更换yum源

这里更换系统默认yum源为阿里云yum源。

具体的思路是:

备份原yum源-->下载阿里云yum源-->清理缓存-->生成新缓存

具体操作如下:

3.7.1备份原yum源
[root@mysquid ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ori.20220729
3.7.2下载阿里云yum源
[root@mysquid ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2022-07-29 17:06:53--  http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 27.128.222.199, 27.128.222.198, 27.128.222.205, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|27.128.222.199|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”

100%[==================================================>] 2,523       --.-K/s 用时 0.003s  

2022-07-29 17:06:53 (907 KB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])

[root@mysquid ~]#
3.7.3清理缓存
[root@mysquid ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源:base extras updates
Cleaning up list of fastest mirrors
[root@mysquid ~]#
3.7.4生成新缓存
[root@mysquid ~]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
……

4.二进制包安装方式安装软件

二进制软件包的优点是安装简单、容易。

缺点是缺乏灵活性,相应的软件包执行在对应平台下安装,离开这个环境软件就无法运行。

安装就是解压。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分