当前位置 : 主页 > 操作系统 > centos >

Linux中安装软件包的三种方法

来源:互联网 收集:自由互联 发布时间:2022-06-20
CentOS 启 动 后 安 装 光 盘 会 自 动 挂 载 到 系 统 的 /run/media/root/CentOS\7\x86_64/Packages/ 三种方法,RPM安装,编译安装,yum安装,其中yum安装最简单,自动处理包的依赖关系 下面盘点了三

CentOS 启 动 后 安 装 光 盘 会 自 动 挂 载 到 系 统 的

/run/media/root/CentOS\7\x86_64/Packages/

三种方法,RPM安装,编译安装,yum安装,其中yum安装最简单,自动处理包的依赖关系

下面盘点了三种安装软件方法

第一种:RPM安装

安装、升级、卸载RPM软件包

格式:rpm 参数   位置

    例:rpm -ivh /etc/cdrom/packges/lynx-2.8.8-0.3.dev15.e17.x86_64.rpm   

 -i                      安装软件包

-e                卸载指定名称软件包

-v                     显示软件安装过程中的详情信息

-h               在安装或升级包的过程中以“#”号显示安装进度

-U                检查并更新系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项

-F                   检测并更新系统中的某个软件包, 若该软件包来源并未安装,则放弃安装

--force              强制安装某个软件包,当需要替换已安装的软件包及文件,或者安装一个比当前使用的软件                   

                    版本更旧的软件时,可以使用此项                     


​修复rpm数据库​

当RMP数据库发生损坏(可能由误删文件,非法关机,virus破坏等导致),且Linux操作系统无法自动修复

时,将导致无法使用rpm命令正常的安装,卸载及查询软件包,可以使用“--rebuilddb”或者“--initdb”


例:rpm --rebuilddb

              或

      rpm --initdb


​导入验证公钥​

格式:rpm    --import  软件包位置

    例:rpm --import    /media/cdrom/RPM-GPG-KEY-CentOS-7


查询已安装的 RPM 软件信息

格式:rpm  -q[子选项]   [软件名]

不带子选项的“-q”选项可用于查询已知名称的软件包是否已经安装,需要使用准确的软件名做参数

-qa:显示当前系统中以RPM方式安装的所有软件列表

         例:rpm -qa       直接列出系统中已安装的数据包

                rpm -qa | wc -l  可以统计出系统中已安装的rpm软件个数

-qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息(-info)。

例:rpm -qi    wget-1.14-18.el7.x86_64     
显示wget这个软件包的详情信息

-ql:显示指定的软件包在当前系统中安装的所有目录、文件列表(--list)

 例:rpm -ql wget-1.14-18.el7.x86_64      显示wget这个软件包所有的安装位置

-qf:查看指定的文件或目录是由哪个软件包所安装的(-file)

例:rpm -qf   /usr/bin/wget                      /usr/bin/wget                      
显示出wget软件包是哪个安装包安装的


​查询未安装的 RPM 软件包文件中信息​

格式:rpm  -q[子选项]   [软件名][软件名]

使用“-qp”选项时,必须以RPM软件包文件的路径作为参数,(可以有多个)而不是软件包名称。                      

-qpi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息

例:rpm -qpi
wget-1.14-18.el7.x86_64.rpm   
显示这个安装包的详细信息

-qpl:查看该软件包准备要安装的所有目标目录、文件列表。

例:rpm -qpl
wget-1.14-18.el7.x86_64.rpm   
显示这个安装包中有哪些文件


RPM安装实例

1)安装、升级软件包

使用 rpm
命令安装软件包时,一般需要指定完整的软件包文件名作为参数(可以有多个);

而卸载软件包时,只需要指定软件名称即可。若要一次安装多个
RPM 软件包,可以使用通配

符“*”,这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统将会自动检查依

赖性并决定安装顺序,而无须管理员去判断应该先装哪一个包。

在安装一个新的软件包时,通常使用“-ivh”的组合选项,这样便于了解软件安装的过

程信息,及时跟踪安装进度。若使用新版本的软件包替换旧的版本,则只需将“-i”换成“-U”

即可。例如,以下操作将从光盘目录中全新安装 lynx 软件包。

Linux中安装软件包的三种方法_依赖关系

使用 lynx
命令程序可以在文本模式中访问 Web 站点(不能显示图片,若当前终端不支

持中文,则中文也无法正常显示),也可以直接查看本机中的“.html”格式的各种软件文档。

2)卸载软件包

卸载一个软件包时,主要使用“-e”选项。例如,执行“rpm -e lynx”操作可卸载已

安装的
lynx 软件,再执行查询时会发现 lynx 软件没有安装,具体操作如下:

Linux中安装软件包的三种方法_centos_02

当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系

而放弃执行。这时可以结合“--nodeps”选项忽略依赖关系,而强行安装或卸载指定的软件包。忽略依赖关系可能会导致软件功能异常或失效,因此只在学习或者调试程序时使用,生产环境中应避免使用。


维护RPM数据库

1)重建
RPM 数据库

RPM
数据库用于记录在 Linux 操作系统中安装、卸载、升级应用程序的相关信息,由 RPM

软件包管理系统自动完成维护,一般不需要用户干预。当
RPM 数据库发生损坏(可能由误删

文件、非法关机、virus破坏等导致),且
Linux 操作系统无法自动完成修复时,将导致无法

使用 rpm
命令正常地安装、卸载及查询软件包。这时可以使用 rpm 命令的“--rebuilddb”

或“--initdb”功能对
RPM 数据库进行重建,具体操作如下:

Linux中安装软件包的三种方法_centos_03

或者

Linux中安装软件包的三种方法_依赖关系_04

2)导入验证公钥


Linux/UNIX 应用领域,相当一部分软件厂商会对发布的软件包进行数字签名,以确

保软件的完整性、合法性。对于用户来说,可以利用官方提供的公钥文件,自动对下载的软

件包进行验证,若在安装软件时出现验证失败的提示,则表示该软件包可能已经被非法篡改。

CentOS 的
DVD 光盘中默认已经提供了用于数字签名验证的公钥文件,即位于光盘根目

录下的
RPM-GPG-KEY-redhat-release 文件。在没有导入公钥文件之前,安装 CentOS 光盘中

的一部分 RPM
软件包时,可能会出现“warning: „„.x86_64.rpm: Header V3 RSA /SHA256

signature,
key ID „„:NOKEY”的警告信息(一般不影响正常使用)。

向 RPM
数据库中导入公钥文件时,需要用到“--import”选项。例如,执行以下操作可

以把光盘目录中的
RPM-GPG-KEY-CentOS-7 公钥文件导入 RPM 数据库中。

Linux中安装软件包的三种方法_依赖关系_05

PS:当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系



第二种:编译安装

​编译安装的基本过程​

PS:RPM不会自动安装依赖包,需要按照要求安装所需要的包

获得所需安装的软件源代码以后,安装的基本过程包括解包、配置、编译及安装这几个

通用步骤,如图 
所示,大多数开源软件的安装都遵循这个过程。当然,这四个步骤并不是一成不变的,实际安装时应参考软件自带的相关文档(如 INSTALL、README)



Linux中安装软件包的三种方法_依赖关系_06



​查看源代码安装包文件​

Apache是运行在
Linux 操作系统下的 web 服务器软件,能够用于架设 web 服务器。执行下面的命令可以查看当前目录中上传的
Apache 服务的源代码安装包文件。

Linux中安装软件包的三种方法_依赖关系_07



检查 MD5 校验和

对于从互联网中下载的软件包,建议使用
md5sum 命令工具检查 MD5 校验和。例如,执行“md5sum httpd-2.4.25.tar.gz”操作后可计算出
httpd-2.4.25.tar.gz 软件包文件的MD5 校验和为“24fb8b9e36cf131d78caae864fea0f6a”,操作如下所示。将其与软件官方提供的校验值进行比较,若相同则说明该软件包在网络传输过程中没有被非法改动;对于校验和不一致的软件包,应尽量不要使用,以免带来virus、Trojan等不安全因素。

Linux中安装软件包的三种方法_依赖关系_08



RPM安装

1)安装、升级软件包

使用 rpm
命令安装软件包时,一般需要指定完整的软件包文件名作为参数(可以有多个);

而卸载软件包时,只需要指定软件名称即可。若要一次安装多个
RPM 软件包,可以使用通配

符“*”,这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统将会自动检查依

赖性并决定安装顺序,而无须管理员去判断应该先装哪一个包。

在安装一个新的软件包时,通常使用“-ivh”的组合选项,这样便于了解软件安装的过

程信息,及时跟踪安装进度。若使用新版本的软件包替换旧的版本,则只需将“-i”换成“-U”

即可。例如,以下操作将从光盘目录中全新安装 lynx 软件包。

使用 lynx
命令程序可以在文本模式中访问 Web 站点(不能显示图片,若当前终端不支

持中文,则中文也无法正常显示),也可以直接查看本机中的“.html”格式的各种软件文档。

2)卸载软件包

卸载一个软件包时,主要使用“-e”选项。例如,执行“rpm -e lynx”操作可卸载已

安装的
lynx 软件,再执行查询时会发现 lynx 软件没有安装,具体操作如下:

当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系

而放弃执行。这时可以结合“--nodeps”选项忽略依赖关系,而强行安装或卸载指定的软件包。忽略依赖关系可能会导致软件功能异常或失效,因此只在学习或者调试程序时使用,生产环境中应避免使用。


维护RPM数据库

1)重建
RPM 数据库

RPM
数据库用于记录在 Linux 操作系统中安装、卸载、升级应用程序的相关信息,由 RPM

软件包管理系统自动完成维护,一般不需要用户干预。当
RPM 数据库发生损坏(可能由误删

文件、非法关机、virus破坏等导致),且
Linux 操作系统无法自动完成修复时,将导致无法

使用 rpm
命令正常地安装、卸载及查询软件包。这时可以使用 rpm 命令的“--rebuilddb”

或“--initdb”功能对
RPM 数据库进行重建,具体操作如下:

或者

2)导入验证公钥


Linux/UNIX 应用领域,相当一部分软件厂商会对发布的软件包进行数字签名,以确

保软件的完整性、合法性。对于用户来说,可以利用官方提供的公钥文件,自动对下载的软

件包进行验证,若在安装软件时出现验证失败的提示,则表示该软件包可能已经被非法篡改。

CentOS 的
DVD 光盘中默认已经提供了用于数字签名验证的公钥文件,即位于光盘根目

录下的
RPM-GPG-KEY-redhat-release 文件。在没有导入公钥文件之前,安装 CentOS 光盘中

的一部分 RPM
软件包时,可能会出现“warning: „„.x86_64.rpm: Header V3 RSA /SHA256

signature,
key ID „„:NOKEY”的警告信息(一般不影响正常使用)。

向 RPM
数据库中导入公钥文件时,需要用到“--import”选项。例如,执行以下操作可

以把光盘目录中的
RPM-GPG-KEY-CentOS-7 公钥文件导入 RPM 数据库中。

PS:当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系


​编译安装实例​

1.解包

开源软件的源代码包一般为
TarBall 形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用
tar 命令进行解压释放。对于只有“.gz”扩展名的源代码包,表示只经过压缩而并未使用 tar 归档,这样的文件只需使用 gzip 进行解压缩即可。在
Linux 操作系统中,通常将各种软件的源代码目录保存到“/usr/src/”目录中,以便于集中管理。释放后的软件包目录一般包括软件名和版本信息(如
httpd-2.4.25)。解包前先安装编译环境和依赖包。以下操作将把 httpd-2.4.25.tar.gz
文件解包到/usr/src/目录中。

Linux中安装软件包的三种方法_数据库_09

2.配置

在编译应用程序之前,需要进入源代码目录,通过目录下的脚本检查安装环境,并且对软件的安装目录、功能选择等参数进行预先配置。环境检查与配置工作通常由源代码目录中的
configure 脚本文件来完成,可用的各种配置参数可以通过在源代码目录中执行“./configure
--help”命令进行查看。
对不同的软件程序来说,其配置参数存在区别,但是有一个“--prefix”形式的参数却是大多数开源软件通用的,该配置参数用于指定软件包安装的目标文件夹。如果没有指定任何配置参数0
,“configure”脚本将采用软件默认的值进行配置。例如,以下操作将对
Apache 软件的安装参数进行配置。

配置之前,需要安装可以编译的一些东西

yum
-y install \

gcc
\

gcc-c++
\

make
\

pcre-devel
\

expat-devel
\

perl
\

zlib-devel
\

zlib

可直接复制粘贴

Linux中安装软件包的三种方法_依赖关系_10

在 Linux
操作系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹(如./configure
--prefix=/usr/local/Apache)中,这样当需要卸载软件时,只要直接将该文件夹删除即可,非常方便(某些软件也可以在源代码目录中执行“make uninstall”命令完成卸载)。如果软件的功能比较复杂,配置过程会需要一定的时间,期间会在屏幕中显示大量的输出信息,这些信息可以帮助管理员了解程序配置的过程。配置结果将保存到源代码目录的Makefile 文件中。如果配置过程出现错误,如包含“error”、“failed”或“not
found”等关键字,通常是缺少相关的依赖软件包所致,此时只要根据提示安装对应的软件即可。

3.编译

编译的过程主要是根据
Makefile
文件内的配置信息(若上一步的配置操作失败,将无法进行编译),将源代码文件进行编译生成二进制的程序模块、动态链接库、可执行文件等。配置完成后,只要在源代码目录中执行“make”命令即可执行编译操作。编译的过程比配置过程需要更长的时间,期间同样会显示大量的执行过程信息。

Linux中安装软件包的三种方法_centos_11

4.安装

编译完成以后,就可以执行如下的“make install”命令将软件的执行程序、配置文件、帮助文档等相关文件复制到 Linux
操作系统中了,即应用程序的最后“安装”过程。安装过程需要的时间相对要短一些,期间也会显示安装的过程信息。

Linux中安装软件包的三种方法_依赖关系_12

有时为了简便,可将上述的编译、安装步骤写成一行命令执行,中间用“&&”符号分隔。例如,“make && make install”(表示“make”命令执行成功以后再执行“make
install”命令,否则将忽略“make install”命令)。

5.使用

安装后使用时需要先调整配置文件,操作如下:

Linux中安装软件包的三种方法_centos_13

然后修改配置文件
httpd.conf 的第 194 行,将前面的‘#’去掉,如图 所示,保存并退出。最后启动 Apache,操作如下:

Linux中安装软件包的三种方法_数据库_14


Linux中安装软件包的三种方法_依赖关系_15

修改 Apache
配置文件安装 lynx 网页浏览器,并在命令行下运行 lynx 127.0.0.1 查看本机 Apache 运行状态,如看到“It works!”字样表明
Apache 已经工作正常了。具体操作如下:

Linux中安装软件包的三种方法_centos_16

第三种:yum安装

格式:yum  install  服务名称

   例:yum install httpd -y   安装httpd服务  

如果无法使用yum安装可以试一试下面的方法


需要连接光盘

mount /dev/cdrom /mnt 先有个挂载

cd /etc/yum.repos.d 切换到这个目录下
mv * /opt 将所有的东西移到别的目录下
touch zz.repo 创建一个文档,(名称可选).repo格式
vim zz.repo 编辑文本
编辑内容 

Linux中安装软件包的三种方法_centos_17

[zz] 这里的zz对应文本的名称
name=zz 名称=zz
baseurl=file:///mnt 基础地址=file:///mnt
enable=1 开启=1 (1开启 0关闭)
gpgcheck=0
保存退出








网友评论