软件的安装

RPM 软件管理程序: rpm

rpm 一般用于查询查询和验证,安装一般使用 yum 。 安装后,软件的信息会被写入 /var/lib/rpm/ 下。

rpm 安装软件的用法:

[root@study ~]# rpm -ivh package_name
选项与参数:
-i :install 的意思
-v :察看更细部的安装信息画面
-h :以安装信息列显示安装进度
# 安装原版光盘上的 rp-pppoe 软件
[root@study ~]# rpm -ivh /mnt/Packages/rp-pppoe-3.11-5.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
 1:rp-pppoe-3.11-5.el7 ################################# [100%]
# 安装两个以上的软件时:
[root@study ~]# rpm -ivh a.i386.rpm b.i386.rpm *.rpm
# 后面直接接上许多的软件文件!
# 直接由网络上面的某个文件安装,以网址来安装:
[root@study ~]# rpm -ivh http://website.name/path/pkgname.rpm

rpm 更新软件的用法:

rpm -Uvh file.rpm # 不管系统有没有这个软件都更新安装
rpm -Fvh file.rpm # 如果系统上无这个软件则不安装

rpm 查询软件的用法:

其查询的地方是在 /var/lib/rpm/ 这个目录下的数据库文件,RPM 也可以查询未安装的 RPM 文件内的信息。

root@study ~]# rpm -qa <==已安装软件
[root@study ~]# rpm -q[licdR] 已安装的软件名称 <==已安装软件
[root@study ~]# rpm -qf 存在于系统上面的某个文件名 <==已安装软件
[root@study ~]# rpm -qp[licdR] 未安装的某个文件名 <==查阅 RPM 文件
选项与参数:
查询已安装软件的信息:
-q :仅查询,后面接的软件名称是否有安装;
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi :列出该软件的详细信息 (information),包含开发商、版本与说明等;
-ql :列出该软件所有的文件与目录所在完整文件名 (list);
-qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的檔名而已)
-qd :列出该软件的所有说明文件 (找出与 man 有关的文件而已)
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-qf :由后面接的文件名,找出该文件属于哪一个已安装的软件;
-q --scripts:列出是否含有安装后需要执行的脚本档,可用以 debug 喔!
查询某个 RPM 文件内含有的信息:
-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出
 某个 RPM 文件内的信息,而非已安装的软件信息!注意!

范例:

# 范例一:查看 Linux 是否安装 logrotate 这个软件
[root@study ~]# rpm -q logrotate
logrotate-3.8.6-4.el7.x86_64
[root@study ~]# rpm -q logrotating
package logrotating is not installed
# 系统会去找是否有安装后面接的软件名称,不必要加上版本
# 至于显示的结果,一看就知道有没有安装
# 范例二:列出上题当中,属于该软件所提供的所有目录与文件:
[root@study ~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
....(以下省略)....
# 可以看出该软件到底提供了多少的文件与目录,也可以追踪软件的数据。
# 范例三:列出 logrotate 这个软件的相关说明数据:
[root@study ~]# rpm -qi logrotate
Name : logrotate # 软件名称
Version : 3.8.6 # 软件的版本
Release : 4.el7 # 释出的版本
Architecture: x86_64 # 编译时所针对的硬件等级
Install Date: Mon 04 May 2015 05:52:36 PM CST # 这个软件安装到本系统的时间
Group : System Environment/Base # 软件是放再哪一个软件群组中
Size : 102451 # 软件的大小
License : GPL+ # 释出的授权方式
Signature : RSA/SHA256, Fri 04 Jul 2014 11:34:56 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : logrotate-3.8.6-4.el7.src.rpm # 这就是 SRPM 的檔名
Build Date : Tue 10 Jun 2014 05:58:02 AM CST # 软件编译打包的时间
Build Host : worker1.bsys.centos.org # 在哪一部主机上面编译的
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : https://fedorahosted.org/logrotate/
Summary : Rotates, compresses, removes and mails system log files
Description : # 这个是详细的描述!
The logrotate utility is designed to simplify the administration of
log files on a system which generates a lot of log files. Logrotate
allows for the automatic rotation compression, removal and mailing of
log files. Logrotate can be set to handle a log file daily, weekly,
monthly or when the log file gets to a certain size. Normally,
logrotate runs as a daily cron job.
Install the logrotate package if you need a utility to deal with the
log files on your system.
# 列出该软件的 information (信息),里面的信息可多着呢,包括了软件名称、
# 版本、开发商、SRPM 文件名、打包次数、简单说明信息、软件打包者、
962
# 安装日期等等!如果想要详细的知道该软件的数据,用这个参数来了解一下
# 范例四:分别仅找出 logrotate 的配置文件与说明档
[root@study ~]# rpm -qc logrotate
[root@study ~]# rpm -qd logrotate
# 范例五:若要成功安装 logrotate ,需要的Request 文件 
[root@study ~]# rpm -qR logrotate
/bin/sh
config(logrotate) = 3.8.6-4.el7
coreutils >= 5.92
....(以下省略)....
# 范例六:由上面的范例五,找出 /bin/sh 是那个软件提供的
[root@study ~]# rpm -qf /bin/sh
bash-4.2.46-12.el7.x86_64
# 这个参数后面接的可是『文件』
# 这个功能在查询系统的某个文件属于哪一个软件所有的。
# 范例七:查询RPM文件的需求(Request)文件
[root@study ~]# rpm -qpR filename.i386.rpm
# 加上 -qpR ,找出该文件需求的数据!

YUM 在线升级机制

利用 yum 进行查询、安装、升级与移除功能

查询功能用法 :

[root@study ~]# yum [option] [查询工作项目] [相关参数]
选项与参数:
[option]:主要的选项,包括有:
 -y :当 yum 要等待用户输入时,这个选项可以自动提供 yes 的响应;
 --installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径
[查询工作项目] [相关参数]:这方面的参数有:
 search :搜寻某个软件名称或者是描述 (description) 的重要关键字;
 list :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa(这里是可用的包括互联网上的,不止包括自己主机上的软件);
 info :同上,不过有点类似 rpm -qai 的执行结果;
 provides:从文件去搜寻软件!类似 rpm -qf 的功能!
# 范例一:搜寻磁盘阵列 (raid) 相关的软件有哪些?
[root@study ~]# yum search raid
Loaded plugins: fastestmirror, langpacks # yum 系统自己找出最近的 yum server
Loading mirror speeds from cached hostfile # 找出速度最快的那一部 yum server
* base: ftp.twaren.net # 底下三个软件库,且来源为该服务器!
* extras: ftp.twaren.net
* updates: ftp.twaren.net
....(前面省略)....
dmraid-events-logwatch.x86_64 : dmraid logwatch-based email reporting
dmraid-events.x86_64 : dmevent_tool (Device-mapper event tool) and DSO
iprutils.x86_64 : Utilities for the IBM Power Linux RAID adapters
mdadm.x86_64 : The mdadm program controls Linux md devices (software RAID arrays)
....(后面省略)....
# 在冒号 (:) 左边的是软件名称,右边的则是在 RPM 内的 name 设定 (软件名)
# 瞧!上面的结果,这不就是与 RAID 有关的软件吗?如果想了解 mdadm 的软件内容呢?
# 范例二:找出 mdadm 这个软件的功能为何
[root@study ~]# yum info mdadm
Installed Packages <==这说明该软件是已经安装的了
Name : mdadm <==这个软件的名称
Arch : x86_64 <==这个软件的编译架构
Version : 3.3.2 <==此软件的版本
Release : 2.el7 <==释出的版本
Size : 920 k <==此软件的文件总容量
Repo : installed <==软件库回报说已安装的
From repo : anaconda
Summary : The mdadm program controls Linux md devices (software RAID arrays)
URL : http://www.kernel.org/pub/linux/utils/raid/mdadm/
License : GPLv2+
Description : The mdadm program is used to create, manage, and monitor Linux MD (software
 : RAID) devices. As such, it provides similar functionality to the raidtools
 : package. However, mdadm is a single program, and it can perform
 : almost all functions without a configuration file, though a configuration
 : file can be used to help with some common tasks.
# 范例三:列出 yum 服务器上面提供的所有软件名称
[root@study ~]# yum list
Installed Packages <==已安装软件
GConf2.x86_64 3.2.6-8.el7 @anaconda
LibRaw.x86_64 0.14.8-5.el7.20120830git98d925 @base
ModemManager.x86_64 1.1.0-6.git20130913.el7 @anaconda
....(中间省略)....
Available Packages <==还可以安装的其他软件
389-ds-base.x86_64 1.3.3.1-20.el7_1 updates
389-ds-base-devel.x86_64 1.3.3.1-20.el7_1 updates
389-ds-base-libs.x86_64 1.3.3.1-20.el7_1 updates
....(底下省略)....
# 上面提供的意义为:『 软件名称 版本 在那个软件库内 』
# 范例四:列出目前服务器上可供本机进行升级的软件有哪些?
[root@study ~]# yum list updates <==一定要是 updates 喔!
Updated Packages
NetworkManager.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates
NetworkManager-adsl.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates
....(底下省略)....
# 上面就列出在那个软件库内可以提供升级的软件与版本!
# 范例五:列出提供 passwd 这个文件的软件有哪些
[root@study ~]# yum provides passwd
passwd-0.79-4.el7.x86_64 : An utility for setting or changing passwords using PAM
Repo : base
passwd-0.79-4.el7.x86_64 : An utility for setting or changing passwords using PAM
Repo : @anaconda
# 找到啦!就是上面的这个软件提供了 passwd 这个程序!

安装、更新、移除软件功能用法:

yum install software # 安装软件
yun update software # 更新软件
yun update software # 移除软件

YUM 的配置文件

YUM 的配置文件在 /etc/yum.repos.d/ 目录中,yum 联机的的网站在 /etc/yum.repos.d/CentOS-Base.repo 文件中。可以修改文件的地址。 如果想要通过 yum 安装谷歌浏览器就必须在 /etc/yum.repos.d/ 中添加 .repo 文件,如下:

# google-chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub

添加完文件,就可以通过 yum install google-chrome 安装谷歌浏览器了。

基础服务管理:以Apache 为例

安装软件如果对外服务(Internet)等要求时,一般操作为:

  1. 安装: yum install (你的软件)
  2. 启动: systemctl start (你的软件)
  3. 开机启动: systemctl enable (你的软件)
  4. 防火墙: firewall-cmd --add-service="(你的服务)"; firewall-cmd --permanent --add-service="(你的服务)"
  5. 测试: 用软件去查阅你的服务是否正常

范例(httpd 是老版的Apache,现在Apache 称为 apache2):

rpm -q httpd; # 查询是否安装
yum install httpd;
systemctl daemon-reload
systemctl start httpd
systemctl enable httpd
systemctl status httpd
# 防火墙设置 
firewall-cmd --add-service="http"
firewall-cmd --permanent --add-service="http"
firewall-cmd --list-all



发表评论

评论列表,共 0 条评论

    暂无评论