0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_78858299 来源:Python运维实践 作者:moonrong 2023-05-12 10:25 次阅读

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.二进制包安装方式安装软件

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

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

安装就是解压。

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

    关注

    87

    文章

    10991

    浏览量

    206736
  • 源码
    +关注

    关注

    8

    文章

    573

    浏览量

    28586
  • RPM
    RPM
    +关注

    关注

    0

    文章

    44

    浏览量

    17642
收藏 人收藏

    评论

    相关推荐

    一天学好Linux软件安装

    一天学好Linux软件安装
    发表于 08-14 13:41

    linux安装软件遇到错误

    linux安装软件,make时出现错误 /bin/sh: @LIBTOOL@: command not foundmake[1]: *** [appenderattachablei
    发表于 07-12 20:32

    求labview 2010 pro (Linux版)安装方法

    和runtime_engine两个目录,如图1所示。install目录下面的文件及目录如图2所示。由于刚刚接触Linux系统,自己安装的Ubuntu系统,对Ubuntu系统安装其他
    发表于 11-21 14:35

    Linux系统安装软件的原理与系统结构

     只能简单地讲一,本人对于linux kernel运行的实际情况也是一知半解,不敢胡说,只能讲讲软件安装的一点东西,下面讲错的还请兄弟们指正。   在
    发表于 07-03 00:53

    Linux安装ns2的方法

    执行install就可以一步到底,需要linux环境。这种方式比较常用。 二:Redhat的allinone安装 最早使用ns2时便是这种方式,安装和使用时比较麻烦,毕竟,
    发表于 08-18 01:06

    Linux安装使用SourceInsight

    的SourceInsight的安装文件 一路执行即可,不需要选择指定的安装盘符,默认即可! 如下图所示为安装成功软件 **步骤三:**Linux
    发表于 07-04 07:34

    Linux软件安装方法

    怎么安装应用软件?    我的软件安装在什么地方?    如何删除不要的应用软件
    发表于 07-23 06:43

    Linux系统的软件安装方式

    Linux有很多种发行版本,各种发行版本之间安装软件方式和命令不一样,同一个版本之间安装软件也有不同的
    发表于 07-23 07:38

    linux安装的一些软件

    linux安装的一些软件,jdk和tomcat一类的。
    发表于 11-09 17:39 0次下载

    linux基础(软件包管理)

    介绍linux软件包主要的安装方式:1 命令行安装 2 图像界面安装 3 源代码编译安装
    发表于 03-25 14:01 3次下载

    Linux下的软件安装方法

    1、已经编译打包好的xxx.rpm 如果你的Linux系统带有安装程序,最好用系统自带的安装程序来安装。比如SuSE的YaST2就带有安装
    发表于 11-07 15:23 15次下载

    linux软件的基本安装和卸载解析

    Linux软件安装和卸载一直是困扰许多新用户的难题。在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的添加/删除程序来
    发表于 11-07 15:21 13次下载

    Linux安装与卸载软件

    原文链接 Linux安装与卸载命令。 安装软件(以nplay为例): sudo apt-get install nplay 卸载软件: su
    的头像 发表于 01-13 10:06 671次阅读

    什么是Linux软件包,如何管理它们

    现代类 Unix 操作系统都提供了一个集中的软件包管理机制,以帮助用户搜索、安装管理软件。而软件通常以包的形式存储在仓库中,对软件包的使用
    的头像 发表于 02-06 14:59 1049次阅读

    Linux环境下进行软件管理方法介绍

    本文介绍了在Linux环境下进行软件管理方法,包括查看已安装软件、卸载
    的头像 发表于 03-06 09:11 884次阅读