1
电子说
LINUX
下软件安装方式主要有以下4种
:
下面将分别演示不同方式下软件的安装与管理。
这种方式安装安装软件的优点是:
1)只安装需要的软件,不用的不安装。
2)安装时可以通过参数指定路径,不需要的时候,直接删除目录即完成卸载。
3)可以从官网获得最新的源码包,然后安装最新版的软件。
源码方式安装软件地般 步骤 :
采用源码方式安装软件,一般包括以下三步:
1)到官网下载软件压缩包,一般是tar.gz
或者是tar.bz2
格式,并解压。
2)进入解压目录,执行./configure
,进行分析环境是否满足。
3)执行make && make install
,进行编译与安装。
具体的安装过程演示,本文不再描述。请关注本公众号Python运维实践
(haopython
),看2022年7月27日发布的 《CENTOS7.8下源码方式安装Apache2.4.54及排错》 这篇文章。
注:此处插入公众号和文章链接。
RPM
是Red Hat Package Manager
的缩写,即Redhat
软件包管理。它是linux
平台下通用的软件包管理方式,例如Fedora
、Redhat
、suse
等主流linux
发行版本都默认采用了这种软件包管理方式。这种方式管理软件的安装优缺点如下: 优点: 安装简单方便。 缺点: 对操作系统环境的依赖很大,它要求RPM
包的安装环境必须与RPM
包封装时的环境相一致或相当。同时需满足安装时与系统某些软件包的依赖关系,例如需要安装A软件
,但是A软件
需要系统有B和C软件
的支持,那么就必须先安装B和C软件
,然后才能安装A软件
。
对于RPM包命名格式,以下面这个文件为例进行解释:
mysql-community-server-8.0.29-1.el7.x86_64.rpm
它主要由六部分组成,各部分如下:
mysql-community-server
:表示软件的名称
8.0.29
:表示软件的版本号
1
:表示软件更新发行的次数
el7
:表示适用的操作系统平台
x86_64
:表示适合的硬件平台
rpm
:是rpm软件包的标识
命令格式:
rpm -i [辅助选项] file1.rpm file2.rpm…..fileN.rpm
主选项含义:
-i
:install
的意思,即安装软件。等同于--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
安装可以解决软件冲突的问题,推荐使用这种方式。
命令格式:
rpm -q [辅助选项] package1……packageN
常用选项含义如下:
-q
:query
的意思,也可以使用--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
命令格式:
rpm -U [辅助选项] file1.rpm……fileN.rpm
主选项含义如下:-U:upgrade
的意思,可以使用--upgrade
代替。
参数说明:
file1.rpm……fileN.rpm
表示需要升级的rpm
文件包。
命令格式:
rpm -e [辅助选项] package1……packageN
主选项含义如下:-e:erase
的意思,也可以用--erase
代替。
参数说明:
package1……packageN
表示已经安装的软件包名称。
辅助选项含义如下:
--test
:只执行删除的测试。
--nodeps
:不检查依赖性。
发行的RPM
格式的软件包是否值得信任,是否损坏,我们可以通过RPM
提供的选项进行验证。
RPM
软件包一般使用 Gnu 隐私卫士
(或称GPG
)来签名,从而帮助使用者肯定下载软件包的可信任性。
命令格式:
rpm -K file1.rpm……fileN.rpm
主选项含义如下:
-K:checksig
的意思,也可以用--checksig
代替。
这个选项用来检查 RPM
软件包文件的md5
校验和GPG
签名。
yum
即`yellowdog updater modified。
yellow dog
(黄狗)也是一个Linux
的发行版本。
yum
的安装与配置以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-elementtree
、python-sqlite
、urlgrabber
、yumconf
等软件包的支持。
yum
工具安装完毕,接下来的工作是进行yum
的配置,yum
的配置文件有主配置文件/etc/yum.conf
、资源库配置目录/etc/yum.repos.d
,yum
安装后,默认的一些资源库配置可能无法使用,可能需要修改。
安装方便,自动解决依赖性问题。可以同时配置多个资源库(
Repository
) 配置文件简单(/etc/yum.conf
、/etc/yum.repos.d/CentOS-Base.repo
) 保持与RPM
数据库的一致性、安全性
注意:
yum
会自动下载所有所需的升级资源包并默认放置在:
/var/cache/yum
当第一次使用yum
或yum
资源库更新时,软件升级所需的时间可能较长。
yum
的基本用法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
rpm
包[root@mysquid ~]# yum check-update
[root@mysquid ~]#
rpm
包root@mysquid ~]# yum update
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
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 ~]#
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 ~]#
rpm
头文件和包文件[root@mysquid ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源:base extras updates
Cleaning up list of fastest mirrors
[root@mysquid ~]#
使用yum
的一个插件:yum-downloadonly
可以用来只下载软件,不安装软件。
yum -y install --downloadonly --downloaddir=/tmp httpd
--downloadonly 说明只下载
--downloaddir 指定安装到哪个目录下
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
正在解决依赖关系
……
这里更换系统默认yum
源为阿里云yum
源。
具体的思路是:
备份原yum源-->下载阿里云yum源-->清理缓存-->生成新缓存
具体操作如下:
[root@mysquid ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ori.20220729
[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 ~]#
[root@mysquid ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源:base extras updates
Cleaning up list of fastest mirrors
[root@mysquid ~]#
[root@mysquid ~]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
……
二进制软件包的优点是安装简单、容易。
缺点是缺乏灵活性,相应的软件包执行在对应平台下安装,离开这个环境软件就无法运行。
安装就是解压。
全部0条评论
快来发表一下你的评论吧 !