大家好,这次给大家分享一些linux应用程序安装和管理的经验。
在linux系统系当中,应用程序的安装,通常有两种方法。第一是rpm,第二是yum源
这里主要介绍rpm命令安装软件程序的程序的过程
安装完一个软件包以后,可能会向系统中复制大量的数据文件,并进行相关设置。在
Linux 操作系统中,典型的应用程序通常由以下几部分组成。
普通的可执行程序文件:一般保存在/usr/bin 目录中,普通用户即可执行。
服务器程序、管理程序文件:一般保存在/usr/sbin 目录中,只有管理员能执行。
配置文件:一般保存在/etc 目录中,配置文件较多时会建立相应的子目录。
日志文件:一般保存在/var/log 目录中
这里列举了一些应用程序安装后,他的一个组成部分,和个目录的作用以及位置
关于应用程序的参考文档等数据:一般保存在/usr/share/doc/目录中。
执行文件及配置文件的 man 手册页:一般保存在/usr/share/man/目录中。
一般情况
下 , CentOS
启 动 后 安 装 光 盘 会 自 动 挂 载 到 系 统 的
/run/media/root/CentOS7x86_64/Packages/目录下
[root@localhost ~]# cd /run/media/root/CentOS7 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 / installing1: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 //省略内容
[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命令在管理软件程序的方式了,谢谢大家,有问题可以留言
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!