Linux中安装软件包的三种方法
Posted Jzy的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中安装软件包的三种方法相关的知识,希望对你有一定的参考价值。
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 软件包。
使用 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:当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系
第二种:编译安装
编译安装的基本过程
PS:RPM不会自动安装依赖包,需要按照要求安装所需要的包
获得所需安装的软件源代码以后,安装的基本过程包括解包、配置、编译及安装这几个
通用步骤,如图
所示,大多数开源软件的安装都遵循这个过程。当然,这四个步骤并不是一成不变的,实际安装时应参考软件自带的相关文档(如 INSTALL、README)
查看源代码安装包文件
Apache是运行在
Linux 操作系统下的 web 服务器软件,能够用于架设 web 服务器。执行下面的命令可以查看当前目录中上传的
Apache 服务的源代码安装包文件。
检查 MD5 校验和
对于从互联网中下载的软件包,建议使用
md5sum 命令工具检查 MD5 校验和。例如,执行“md5sum httpd-2.4.25.tar.gz”操作后可计算出
httpd-2.4.25.tar.gz 软件包文件的MD5 校验和为“24fb8b9e36cf131d78caae864fea0f6a”,操作如下所示。将其与软件官方提供的校验值进行比较,若相同则说明该软件包在网络传输过程中没有被非法改动;对于校验和不一致的软件包,应尽量不要使用,以免带来virus、Trojan等不安全因素。
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/目录中。
2.配置
在编译应用程序之前,需要进入源代码目录,通过目录下的脚本检查安装环境,并且对软件的安装目录、功能选择等参数进行预先配置。环境检查与配置工作通常由源代码目录中的
configure 脚本文件来完成,可用的各种配置参数可以通过在源代码目录中执行“./configure
--help”命令进行查看。对不同的软件程序来说,其配置参数存在区别,但是有一个“--prefix”形式的参数却是大多数开源软件通用的,该配置参数用于指定软件包安装的目标文件夹。如果没有指定任何配置参数0
,“configure”脚本将采用软件默认的值进行配置。例如,以下操作将对
Apache 软件的安装参数进行配置。
配置之前,需要安装可以编译的一些东西
yum
-y install \\
gcc
\\
gcc-c++
\\
make
\\
pcre-devel
\\
expat-devel
\\
perl
\\
zlib-devel
\\
zlib
可直接复制粘贴
在 Linux
操作系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹(如./configure
--prefix=/usr/local/Apache)中,这样当需要卸载软件时,只要直接将该文件夹删除即可,非常方便(某些软件也可以在源代码目录中执行“make uninstall”命令完成卸载)。如果软件的功能比较复杂,配置过程会需要一定的时间,期间会在屏幕中显示大量的输出信息,这些信息可以帮助管理员了解程序配置的过程。配置结果将保存到源代码目录的Makefile 文件中。如果配置过程出现错误,如包含“error”、“failed”或“not
found”等关键字,通常是缺少相关的依赖软件包所致,此时只要根据提示安装对应的软件即可。
3.编译
编译的过程主要是根据
Makefile
文件内的配置信息(若上一步的配置操作失败,将无法进行编译),将源代码文件进行编译生成二进制的程序模块、动态链接库、可执行文件等。配置完成后,只要在源代码目录中执行“make”命令即可执行编译操作。编译的过程比配置过程需要更长的时间,期间同样会显示大量的执行过程信息。
4.安装
编译完成以后,就可以执行如下的“make install”命令将软件的执行程序、配置文件、帮助文档等相关文件复制到 Linux
操作系统中了,即应用程序的最后“安装”过程。安装过程需要的时间相对要短一些,期间也会显示安装的过程信息。
有时为了简便,可将上述的编译、安装步骤写成一行命令执行,中间用“&&”符号分隔。例如,“make && make install”(表示“make”命令执行成功以后再执行“make
install”命令,否则将忽略“make install”命令)。
5.使用
安装后使用时需要先调整配置文件,操作如下:
然后修改配置文件
httpd.conf 的第 194 行,将前面的‘#’去掉,如图 所示,保存并退出。最后启动 Apache,操作如下:
修改 Apache
配置文件安装 lynx 网页浏览器,并在命令行下运行 lynx 127.0.0.1 查看本机 Apache 运行状态,如看到“It works!”字样表明
Apache 已经工作正常了。具体操作如下:
第三种: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 编辑文本
编辑内容
[zz] 这里的zz对应文本的名称
name=zz 名称=zz
baseurl=file:///mnt 基础地址=file:///mnt
enable=1 开启=1 (1开启 0关闭)
gpgcheck=0
保存退出
以上是关于Linux中安装软件包的三种方法的主要内容,如果未能解决你的问题,请参考以下文章