Linux应用程序的安装与管理

大家好,这次给大家分享一些linux应用程序安装和管理的经验。

在linux系统系当中,应用程序的安装,通常有两种方法。第一是rpm,第二是yum源

这里主要介绍rpm命令安装软件程序的程序的过程

安装完一个软件包以后,可能会向系统中复制大量的数据文件,并进行相关设置。在
Linux 操作系统中,典型的应用程序通常由以下几部分组成。
普通的可执行程序文件:一般保存在/usr/bin 目录中,普通用户即可执行。
服务器程序、管理程序文件:一般保存在/usr/sbin 目录中,只有管理员能执行。
配置文件:一般保存在/etc 目录中,配置文件较多时会建立相应的子目录。

日志文件:一般保存在/var/log 目录中
这里列举了一些应用程序安装后,他的一个组成部分,和个目录的作用以及位置
关于应用程序的参考文档等数据:一般保存在/usr/share/doc/目录中。
执行文件及配置文件的 man 手册页:一般保存在/usr/share/man/目录中。

[root@localhost ~]# rpm -ql postfix //
查看 postfix 软件包在系统
中安装的目录和文件清单
„„ //省略部分内容
/etc/postfix/main.cf
//配置文件
/etc/sasl2/smtpd.conf„„
//省略部分内容
/usr/bin/mailq.postfix
//普通用户能够执行的程序文件
/usr/bin/newaliases.postfix „„
//省略部分内容
/usr/lib/systemd/system/postfix.service
//启动服务程序的脚本文件
/usr/sbin/postfix
//管理员用户才能执行的程序文件
/usr/sbin/postmap„„
//省略部分内容
/usr/share/man/man5/postconf.5.gz
//man 手册页文件
/usr/share/man/man1/mailq.postfix.1.gz„„ //省略部分内容

一般情况
下 , CentOS
启 动 后 安 装 光 盘 会 自 动 挂 载 到 系 统 的
/run/media/root/CentOS\7\x86_64/Packages/目录下
[root@localhost ~]# cd /run/media/root/CentOS\7\ x86_64/Packages/
//切换至光盘自动挂载位置(目录)
[root@localhost Packages]# ls -lh bash* fontconfig-devel*
-rw-rw-r–. 2 root root 1011K Aug 2 2016 bash-4.2.46-20.el7_2.x86_64.rpm
-rw-rw-r–. 2 root root 86K Jul 3 2014 bash-completion-2.1-6.el7.noarch.rpm
-rw-rw-r–. 2 root root 129K Nov 20 12:44 fontconfig-devel-2.10.95-10.el7.x86_64.rpm

[root@localhost ~]# man rpm //rpm 的man手册
RPM(8) System Manager’s Manual RPM(8)
NAME
rpm - RPM Package Manager
SYNOPSIS
QUERYING AND VERIFYING PACKAGES:
rpm {-q|–query} [select-options] [query-options]
rpm {-V|–verify} [select-options] [verify-options]
INSTALLING, UPGRADING, AND REMOVING PACKAGES:
rpm {-i|–install} [install-options] PACKAGE_FILE …
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
rpm {-e|–erase} [–allmatches] [–justdb] [–nodeps] [–noscripts]
[–notriggers] [–test] PACKAGE_NAME …
„„ //省略部分内容

查询 RPM 软件包信息

-qa:显示当前系统中以 RPM 方式安装的所有软件列表。
-qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息(–info)。
-ql:显示指定的软件包在当前系统中安装的所有目录、文件列表(–list)。
-qf:查看指定的文件或目录是由哪个软件包所安装的(–file)

直接执行“rpm -qa”命令将列出当前操作系统中以 RPM 方式安装的所有软件包清单,
每行记录一个软件包的名称、版本等信息。结合管道操作和“wc -l”命令,可以统计出系
统中已安装的 RPM 软件的个数。
[root@localhost ~]# rpm -qa
geocode-glib-3.14.0-2.el7.x86_64
libfontenc-1.1.2-3.el7.x86_64
libpurple-2.10.7-26.el7.x86_64
gom-0.2.1-3.el7.x86_64
selinux-policy-targeted-3.13.1-102.el7.noarch
„„
//省略部分内容

[root@localhost ~]# rpm -q elinks lynx //查看elinks lynx 是否安装
package elinks is not installed //not 表示没有
package lynx is not installed //not 表示没有

[root@localhost ~]# rpm -qa | grep -i samba //查看是否有包含Samba的软件
samba-common-libs-4.4.4-9.el7.x86_64
samba-client-4.4.4-9.el7.x86_64
samba-client-libs-4.4.4-9.el7.x86_64
samba-common-4.4.4-9.el7.noarch

[root@localhost ~]# rpm -qi samba-client //
了解 samba-client 软件包的摘要信息
Name
: samba-client
Epoch
: 0
Version
: 4.4.4
Release
: 9.el7
Architecture
: x86_64
Install Date
: Wed 12 Apr 2017 01:15:16 PM EDT
Group
: Applications/System
Size
: 1826831
License
: GPLv3+ and LGPLv3+
Signature
: RSA/SHA256, Sun 20 Nov 2016 03:38:35 PM EST,Key ID 24c6a8a7f4a80eb5
Source RPM
: samba-4.4.4-9.el7.src.rpm
Build Date
: Mon 07 Nov 2016 05:31:03 AM EST
Build Host
: worker1.bsys.centos.org
Relocations
: (not relocatable)
Packager
: CentOS BuildSystem http://bugs.centos.org
Vendor
: CentOS
URL
: http://www.samba.org/
Summary
: Samba client programs
Description
:
The samba-client package provides some SMB/CIFS clients to complement
the built-in SMB/CIFS filesystem in Linux. These clients allow access
of SMB/CIFS shares and printing to SMB/CIFS printers

[root@localhost ~]# rpm -ql wget //
列出 wget 软件包安装的目录和文件清单
/etc/wgetrc
/usr/bin/wget
/usr/share/doc/wget-1.14
/usr/share/doc/wget-1.14/AUTHORS
/usr/share/doc/wget-1.14/COPYING
/usr/share/doc/wget-1.14/MAILING-LIST
/usr/share/doc/wget-1.14/NEWS
„„
//省略部分内容

[root@localhost ~]# which vim //先找出 vim 程序位置,以便进行下一步的查询
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
注意:使用 rpm 命令只能查询通过 RPM 方式安装的软件包信息,对通过其他途径安
装(如源码编译、手动复制等方式)到系统中的软件包,rpm 命令则无法获取相关信息。
2)查询 RPM 软件包文件中的相关信息
使用“-qp”选项时,必须以 RPM 软件包文件的路径作为参数(可以有多个),而不是软
件包名称。其相关的子选项与使用“-q”查询时类似,常用的两个查询选项如下所述。
-qpi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息。
-qpl:查看该软件包准备要安装的所有目标目录、文件列表。
下面看几个操作示例。例如,已知 CentOS 光盘目录中有一个 RPM 软件包文件
ethtool-4.5-3.el7.x86_64.rpm,若要在安装之前了解该软件的用途,可以执行以下操作。

[root@localhost ~]# cd /media/cdrom/Packages
[root@localhost Packages]# rpm -qpi ethtool-4.5-3.el7.x86_64.rpm
warning: ethtool-4.5-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID
f4a80eb5: NOKEY
Name
: ethtool
Epoch
: 2
Version
: 4.5
Release
: 3.el7
Architecture
: x86_64
Install Date
: (not installed)
Group
: Applications/System
Size
: 344591
License
: GPLv2
Signature
: RSA/SHA256, Sun 20 Nov 2016 12:36:38 PM EST,Key ID 24c6a8a7f4a80eb5
Source RPM
: ethtool-4.5-3.el7.src.rpm
Build Date
: Sat 05 Nov 2016 10:05:23 PM EDT
Build Host
: worker1.bsys.centos.org
Relocations
: (not relocatable)
Packager
: CentOS BuildSystem http://bugs.centos.org
Vendor
: CentOS
URL
: http://ftp.kernel.org/pub/software/network/ethtool/
Summary
: Settings tool for Ethernet NICs
Description
:

若希望进一步了解该软件包中包含哪些文件(安装后将复制到系统中),可以执行以下
操作。
[root@localhost Packages]# rpm -qpl ethtool-4.5-3.el7.x86_64.rpm
warning: ethtool-4.5-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID
f4a80eb5: NOKEY
/usr/sbin/ethtool
/usr/share/doc/ethtool-4.5
/usr/share/doc/ethtool-4.5/AUTHORS
/usr/share/doc/ethtool-4.5/COPYING
/usr/share/doc/ethtool-4.5/ChangeLog
/usr/share/doc/ethtool-4.5/LICENSE
/usr/share/doc/ethtool-4.5/NEWS
/usr/share/doc/ethtool-4.5/README
/usr/share/man/man8/ethtool.8.gz
3.安装、升级、卸载 RPM 软件包
在日常系统管理工作中,安装、升级及卸载软件包是管理应用程序最基本的工作内容。
使用 rpm 命令实现这些操作时,基本的命令选项如下所述。
-i:在当前系统中安装(
Install)一个新的 RPM 软件包。
-e:卸载指定名称的软件包。
-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”
选项。
-F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。
-h:在安装或升级软件包的过程中,以“#”号显示安装进度。
-v:显示软件安装过程中的详细信息。
–force:强制安装某个软件包,当需要替换已安装的软件包及文件,或者安装一
个比当前使用的软件版本更旧的软件时,可以使用此选项。
–nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件
的依赖关系。

安装、升级软件包 使用rpm命令安装软件包时,一般需要指定完整的软件包文件名作为参数(可以有多个);而卸载软件包时,只需要指定软件名称即可。若要一次安装多个RPM软件包,可以使用通配符“*”,这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统将会自动检查依赖性并决定安装顺序,而无须管理员去判断应该先装哪一个包。 在安装一个新的软件包时,通常使用“-ivh”的组合选项,这样便于了解软件安装的过程信息,及时跟踪安装进度。若使用新版本的软件包替换旧的版本,则只需将“-i”换成“-U”即可。例如,以下操作将从光盘目录中全新安装lynx软件包。 [root@localhost ~]# rpm -ivh /media/cdrom/Packages/lynx-2.8.8-0.3.dev15.el7.x86 _64.rpm warning: /media/cdrom/Packages/lynx-2.8.8-0.3.dev15.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing„ ################################# [100%] Updating / installing„ 1:lynx-2.8.8-0.3.dev15.el7 ################################# [100%] [root@localhost ~]# rpm -q lynx lynx-2.8.8-0.3.dev15.el7.x86_64 [root@localhost ~]# which lynx /usr/bin/lynx 使用lynx命令程序可以在文本模式中访问Web站点(不能显示图片,若当前终端不支持中文,则中文也无法正常显示),也可以直接查看本机中的“.html”格式的各种软件文档。 2)卸载软件包 卸载一个软件包时,主要使用“-e”选项。例如,执行“rpm -e lynx”操作可卸载已安装的lynx 软件,再执行查询时会发现lynx软件没有安装,具体操作如下: [root@localhost ~]# rpm -e lynx [root@localhost ~]# rpm -q lynx package lynx is not installed 当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系 而放弃执行。这时可以结合“–nodeps”选项忽略依赖关系

而强行安装或卸载指定的软件包。忽略依赖关系可能会导致软件功能异常或失效,因此只在学习或者调试程序时使用,生产环境中应避免使用。 4.维护RPM数据库 1)重建RPM数据库 RPM数据库用于记录在Linux操作系统中安装、卸载、升级应用程序的相关信息,由RPM软件包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(可能由误删文件、非法关机、病毒破坏等导致),且Linux操作系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包。这时可以使用rpm命令的“–rebuilddb”或“–initdb”功能对RPM数据库进行重建,具体操作如下: [root@localhost ~]# rpm --rebuilddb 或者 [root@localhost ~]# rpm --initdb 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数据库中。 [root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7
[root@localhost ~]# gcc --version //查看gcc版本信息 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11) Copyright © 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [root@localhost ~]# make --version //查看make版本信息 GNU Make 3.82 Built for x86_64-redhat-linux-gnu Copyright © 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

在这里插入图片描述
[root@localhost ~]# ll httpd-2.4.25.tar.gz -rw-r–r--. 1 root root 8460433 Apr 13 02:12 httpd-2.4.25.tar.gz

[root@localhost ~]# md5sum httpd-2.4.25.tar.gz 24fb8b9e36cf131d78caae864fea0f6a httpd-2.4.25.tar.gz

Apache的配置及运行需要apr、pcre等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Apache的安装顺利完成。 [root@localhost Packages]# rpm -ivh pcre-devel-8.32-15.el7_2.1.x86_64.rpm apr-devel-1.4.8-3.el7.x86_64.rpm expat-devel-2.1.0-8.el7.x86_64.rpm libdbdevel-5.3.21-19.el7.x86_64.rpm cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm openldap-devel-2.4.40-13.el7.x86_64.rpm apr-util-devel-1.5.2-6.el7.x86_64.rpm „„ //省略内容

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/目录中。 [root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/ [root@localhost ~]# ls /usr/src/ debug httpd-2.4.25 kernels 2.配置 在编译应用程序之前,需要进入源代码目录,通过目录下的脚本检查安装环境,并且对软件的安装目录、功能选择等参数进行预先配置。 环境检查与配置工作通常由源代码目录中的configure脚本文件来完成,可用的各种配置参数可以通过在源代码目录中执行“./configure --help”命令进行查看。对不同的软件程序来说,其配置参数存在区别,但是有一个“–prefix”形式的参数却是大多数开源软件通用的,该配置参数用于指定软件包安装的目标文件夹。如果没有指定任何配置参数,“configure”脚本将采用软件默认的值进行配置。例如,以下操作将对Apache软件的安装参数进行配置。 [root@localhost ~]# cd /usr/src/httpd-2.4.25/ [root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/apache „„ //省略内容 在Linux操作系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹(如./configure --prefix=/usr/local/Apache)中,这样当需要卸载软件时,只要直接将该文件夹删除即可,非常方便(某些软件也可以在源代码目录中执行“make uninstall”命令完成卸载)。 第 17 页 共 18 页 如果软件的功能比较复杂,配置过程会需要一定的时间,期间会在屏幕中显示大量的输出信息,这些信息可以帮助管理员了解程序配置的过程。配置结果将保存到源代码目录的Makefile文件中。如果配置过程出现错误,如包含“error”、“failed”或“not found”等关键字,通常是缺少相关的依赖软件包所致,此时只要根据提示安装对应的软件即可。 3.编译 编译的过程主要是根据Makefile文件内的配置信息(若上一步的配置操作失败,将无法进行编译),将源代码文件进行编译生成二进制的程序模块、动态链接库、可执行文件等。配置完成后,只要在源代码目录中执行“make”命令即可执行编译操作。编译的过程比配置过程需要更长的时间,期间同样会显示大量的执行过程信息。

[root@localhost httpd-2.4.25]# make „„ //省略内容

安装 编译完成以后,就可以执行如下的“make install”命令将软件的执行程序、配置文件、帮助文档等相关文件复制到Linux操作系统中了,即应用程序的最后“安装”过程。安装过程需要的时间相对要短一些,期间也会显示安装的过程信息。 [root@localhost httpd-2.4.25]# make install „„ //省略内容 有时为了简便,可将上述的编译、安装步骤写成一行命令执行,中间用“&&”符号分隔。例如,“make && make install”(表示“make”命令执行成功以后再执行“make install”命令,否则将忽略“make install”命令)。 5.使用 安装后使用时需要先调整配置文件,操作如下: 第 18 页 共 18 页 [root@localhost httpd-2.4.25]# vim /usr/local/apache/conf/httpd.conf 然后修改配置文件httpd.conf的第194行,将前面的‘#’去掉,如图3.2所示,保存并退出。最后启动Apache,操作如下: [root@localhost httpd-2.4.25]# /usr/local/apache/bin/apachectl start 修改Apache配置文件 安装lynx网页浏览器,并在命令行下运行lynx 127.0.0.1查看本机Apache运行状态,如看到“It works!”字样表明Apache已经工作正常了。具体操作如下: [root@localhost httpd-2.4.25]# cd /media/cdrom/Packages/ [root@localhost Packages]# rpm -ivh lynx-2.8.8-0.3.dev15.el7.x86_64.rpm Preparing… ################################# [100%] Updating / installing… 1:lynx-2.8.8-0.3.dev15.el7 ################################# [100%] [root@localhost Packages]# lynx 127.0.0.1

这就是RPM命令在管理软件程序的方式了,谢谢大家,有问题可以留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思诚代码块

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值