电子说
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条评论
快来发表一下你的评论吧 !