Linux中软件的三种安装方式

Linux系统中,最常用的有三种安装方式

  • 源码编译安装(根据当前系统编译)
  • rpm安装(需要自己安装相应的依赖)
  • yum安装(自动安装依赖)

当然,解压、配置(相当于windwos下绿色版的安装),也算是一种安装方式。

解压来,我将介绍这三种安装方式的使用方法!

文章目录

源码编译安装

src-build概述

源码编译安装即src-build式安装。

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。

Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure -help输出详细的选项列表。

其中-prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱。

如果配置-prefix,如下:

1
./configure --prefix=/usr/local/test

可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。

用了-prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall

src-build安装Nginx

接下来,我以Nginx为例子,介绍源码编译安装方式:

(1)安装 gcc

Nginx 具有很强的可扩展性,需要使用哪些功能,只需通过 with 配置后重新编译即可添加此功能,所以对于 Nginx 的源码安装方式是我们最常接触到的。

Nginx 是由 C/C语言编写的,所以对其进行编译就必须要使用相关编译器。对于C/C语言的编译器,使用最多的是 gcc 与 gcc-c++,而这两款编译器在 CentOS6.5 中是没有安装的,所以首先要安装这两款编译器。

gcc,GNU Compiler Collection,GNU 编译器集合,其可以编译多种语言。

(2)安装依赖库

基本的 Nginx 功能依赖于一些基本的库,在安装 Nginx 之前需要提前安装这些库。

A. pcre-devel:pcre,Perl Compatible Regular Expressions,Perl 脚本语言兼容正则表达式,为 Nginx 提供正则表达式库。(即安装正则表达式的库)

B. openssl-devel:为 Nginx 提供 SSL(安全套接字层)密码库,包含主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。在安装之前需要注意,很多库具有 devel 库与非 devel 库两种。devel 库表示 development开发库,比非 devel 库会多出一些头文件、静态库、源码包等。而这些包在运行时不可能用到,但在开发时有可能用到。所以对于程序员来说,一般都是需要安装 devel 库的。不过,在 yum 安装 devel 库时,由于其依赖于非 devel 库,所以其会先自动安装非 devel 库,而后再安装 devel 库。所以真正在安装时,只需显示的安装 devel 库即可。通过以下命令可以查看到,非 devel 库也被安装了。

1
2
3
4
5
6
7
8
# 1.为了编译nginx源码
yum install gcc gcc-c++ -y
# 2. 用于支持https协议
yum install openssl openssl-devel -y
# 3. 解析正则表达式
yum install pcre pcre-devel -y
# 4. 压缩 gzip deflate(下面是和压缩有关的包)
yum install zlib zlib-devel -y

然后,下载nginx,下载地址为:http://nginx.org/en/download.html

这里选择nginx-1.8.1版本进行下载。

  1. 将nginx-1.8.1.tar.gz上传到linux的/opt/apps/目录下(需要创建apps文件夹)
  2. 解压nginx-1.8.1.tar.gz,输入命令tar -zxvf nginx-1.8.1.tar.gz
  3. 配置nginx(configure)
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@layne testdir]# cd /opt/apps/nginx-1.8.1
# ./configure --help查看帮助信息
[root@layne nginx-1.8.1]# ./configure --help

--help print this message

--prefix=PATH set installation prefix
--sbin-path=PATH set nginx binary pathname
--conf-path=PATH set nginx.conf pathname
--error-log-path=PATH set error log pathname
--pid-path=PATH set nginx.pid pathname
--lock-path=PATH set nginx.lock pathname
...(太多了,这里把后面的删除了)

输入以下命令进行配置

1
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_gzip_static_module --error-log-path=/var/log/nginx/nginx.log --pid-path=/var/log/nginx/pid
  • /opt/nginx指的是安装目录
  • http_ssl_module 支持安全协议
  • --with-http_gzip_static_module 支持压缩
  • --error-log-path 错误日志目录
  • --pid-path=/var/log/nginx/pid 进程id放置的目录信息

执行后输出以下结果

上面表示:

1
2
3
4
5
6
7
8
9
10
11
12
nginx path prefix: "/opt/nginx"  将来安装的时候放的目录
nginx binary file: "/opt/nginx/sbin/nginx" 执行文件目录
nginx configuration prefix: "/opt/nginx/conf" 配置文件目录前缀
nginx configuration file: "/opt/nginx/conf/nginx.conf" 配置文件
nginx pid file: "/var/log/nginx/pid" 进程ID目录
nginx error log file: "/var/log/nginx/nginx.log" 错误日志文件
nginx http access log file: "/opt/nginx/logs/access.log" 里面的access目录
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"

这个步骤可以理解为预编译,主要用于检测系统基准环境库是否满足gcc环境,生成makefile文件。

  1. 编译(make)

make clean命令用来清除上一次编译生成的目标文件(清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件)。这个步骤可有可无,但为了确保编译的成功,还是加上为好。防止由于软件中含有残留的目标文件导致编译失败。

生成脚本及配置文件:make (根据Makefile文件编译源代码、连接、生成目标文件、可执行文件)

编译步骤:根据Makefile文件生成相应的模块

所以一般先输入make clean 再输入make

  1. 安装(make install)

输入make install(将编译成功的可执行文件安装到系统目录中)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 安装之后进入nginx的安装目录/opt/nginx
[root@layne nginx-1.8.1]# cd /opt/nginx
[root@layne nginx]# ls
client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp
[root@layne nginx]# cd conf
[root@layne conf]# ll
total 60
-rw-r--r-- 1 root root 1034 Feb 5 17:14 fastcgi.conf
-rw-r--r-- 1 root root 1034 Feb 5 17:14 fastcgi.conf.default
-rw-r--r-- 1 root root 964 Feb 5 17:14 fastcgi_params
-rw-r--r-- 1 root root 964 Feb 5 17:14 fastcgi_params.default
-rw-r--r-- 1 root root 2837 Feb 5 17:14 koi-utf
-rw-r--r-- 1 root root 2223 Feb 5 17:14 koi-win
-rw-r--r-- 1 root root 3957 Feb 5 17:14 mime.types
-rw-r--r-- 1 root root 3957 Feb 5 17:14 mime.types.default
-rw-r--r-- 1 root root 2656 Feb 5 17:14 nginx.conf
-rw-r--r-- 1 root root 2656 Feb 5 17:14 nginx.conf.default
-rw-r--r-- 1 root root 596 Feb 5 17:14 scgi_params
-rw-r--r-- 1 root root 596 Feb 5 17:14 scgi_params.default
-rw-r--r-- 1 root root 623 Feb 5 17:14 uwsgi_params
-rw-r--r-- 1 root root 623 Feb 5 17:14 uwsgi_params.default
-rw-r--r-- 1 root root 3610 Feb 5 17:14 win-utf

conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,以文件名.default结尾,使用的使用将其复制并将default去掉即可。

html:目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。

logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。

sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。

现在,我们启动nginx

1
2
3
4
[root@layne conf]# cd ../sbin/
[root@layne sbin]# ls
nginx
[root@layne sbin]# ./nginx

在浏览器中输入你的ip地址,如http://192.168.50.33/

出现该界面说明nginx安装成功。

关于卸载

要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令。

也可以将有关目录删除,这个方法会比较麻烦,建议网上查找详细步骤。

rpm安装软件

rpm概述

RPM(RedHat Package Manager)安装管理,这个机制最早是由Red Hat开发出来,后来实在很好用,因此很多 distributions(发行版)就使用这个机制来作为软件安装的管理方式 ,包括Fedora,CentOS,SuSE等等知名的开发商。

RPM的优点

  1. RPM内含已经编译过的程序与配置文件等数据,可以让用户免除重新编译的困扰
  2. RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装
  3. RPM文件本身提供软件版本信息、相依属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件
  4. RPM管理的方式使用数据库记录 RPM 文件的相关参数,便于升级 、移除、查询与验证

rpm默认安装的路径如下:

  1. /etc 一些配置文件放置的目录,例如/etc/crontab
  2. /usr/bin 一些可执行文件
  3. /usr/lib 一些程序使用的动态链接库
  4. /usr/share/doc 一些基本的软件使用手册与说明文件
  5. /usr/share/man 一些man page(Linux命令的随机【跟随虚拟机】帮助说明)文件

rpm安装命令

1
rpm -ivh package_name

选项与参数:

  • -i :install的意思
  • -v:察看更细部的安装信息画面
  • -h :以安装信息列显示安装进度

安装单个rpm包

1
rpm -ivh package_name

安装多个rpm包

1
rpm -ivh a.i386.rpm b.i386.rpm *.rpm

安装网上某个位置rpm包

1
rpm -ivh http://website.name/path/pkgname.rpm

rpm安装jdk

这里,我通过rpm安装jdk为例子,进行说明:

  1. 将jdk上传到/opt/apps目录下
1
2
3
[root@layne ~]# cd /opt/apps
[root@layne apps]# ls
jdk-7u80-linux-x64.rpm nginx-1.8.1 nginx-1.8.1.tar.gz rpm_mysql
  1. 安装当前目录下的jdk-7u80-linux-x64.rpm
1
2
3
4
5
6
7
8
9
10
[root@layne apps]# rpm -ivh jdk-7u80-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
  1. 查找java安装目录的位置:
1
2
3
4
5
6
7
8
9
10
[root@layne apps]# whereis java
java: /usr/bin/java
[root@layne apps]# ll /usr/bin/java
lrwxrwxrwx 1 root root 26 Feb 5 19:29 /usr/bin/java -> /usr/java/default/bin/java
[root@layne apps]# cd /usr/java
[root@layne java]# ls
default jdk1.7.0_80 latest
[root@layne java]# cd jdk1.7.0_80/
[root@layne jdk1.7.0_80]# pwd
/usr/java/jdk1.7.0_80
  1. 配置环境变量

进入vim /etc/profile ,在文件最后加入以下两行代码:

1
2
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin

  1. 让配置生效,使用source /etc/profile
  2. 测试安装配置是否成功
1
2
3
4
5
6
[root@layne ~]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@layne ~]# jps
1423 Jps

出现以上信息,说明配置成功

rpm安装:

  • redhat提供了rpm管理系统
  • 已经编译的软件包:针对不同的平台系统编译目标软件包
  • 操作系统维护安装信息
  • 软件包包含依赖检查,这是人需要参与处理的。你得下载它需要的所有依赖包并安装,才能安装一个rpm软件

rpm查询

简单原理:rpm在查询的时候,其实查询的地方是在/var/lib/rpm/ 这个目录下的数据库文件

1
2
3
4
5
6
7
8
9
10
[root@layne ~]# ll /var/lib/rpm/
total 28752
-rw-r--r--. 1 root root 1523712 Feb 9 10:40 Basenames
-rw-r--r--. 1 root root 12288 Feb 5 16:46 Conflictname
-rw-r--r-- 1 root root 24576 Feb 9 10:40 __db.001
-rw-r--r-- 1 root root 229376 Feb 9 10:40 __db.002
-rw-r--r-- 1 root root 1318912 Feb 9 10:40 __db.003
-rw-r--r-- 1 root root 753664 Feb 9 10:40 __db.004
-rw-r--r--. 1 root root 331776 Feb 9 10:40 Dirnames
...

rpm查询已安装软件,选项与参数:

-q :仅查询,后面接的软件名称是否有安装

-qa :列出所有的,已经安装在本机Linux系统上面的所有软件名称 !!!

-qi :列出该软件的详细信息,包含开发商、版本和说明等 !!

-ql :列出该软件所有的文件与目录所在完整文件名 !!

-qc :列出该软件的所有配置文件 !

-qd :列出该软件的所有说明文件

-qR :列出和该软件有关的相依软件所含的文件

-qf :由后面接的文件名,找出该文件属于哪一个已安装的软件 、

查询某个 RPM 文件内含有的信息: -qp[icdlR]

注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出 某个 RPM 文件内的信息,而非已安装的软件信息

案例1:查找是否安装jdk

1
2
[root@layne ~]# rpm -qa |grep jdk
jdk-1.7.0_80-fcs.x86_64

注意:grep jdk 本来就是模糊查询,不用加*

案例2:查询jdk所包含的文件及目录

1
[root@layne ~]# rpm -ql jdk

案例3:查看jdk包的相关说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@layne ~]# rpm -qi jdk
Name : jdk Relocations: /usr/java
Version : 1.7.0_80 Vendor: Oracle Corporation
Release : fcs Build Date: Sat 11 Apr 2015 11:15:36 AM CST
Install Date: Fri 05 Feb 2021 07:29:53 PM CST Build Host: sca00efd.us.oracle.com
Group : Development/Tools Source RPM: jdk-1.7.0_80-fcs.src.rpm
Size : 219404663 License: http://java.com/license
Signature : (none)
Packager : Java Software <jre-comments@java.sun.com>
URL : URL_REF
Summary : Java Platform Standard Edition Development Kit
Description :
The Java Platform Standard Edition Development Kit (JDK) includes both
the runtime environment (Java virtual machine, the Java platform classes
and supporting files) and development tools (compilers, debuggers,
tool libraries and other tools).

The JDK is a development environment for building applications, applets
and components that can be deployed with the Java Platform Standard
Edition Runtime Environment.

案例4:列出iptables的配置文件

1
2
[root@layne ~]# rpm -qc iptables
/etc/sysconfig/iptables-config

案例5:查看apr需要的依赖

1
2
[root@layne ~]# yum install apr
[root@layne ~]# rpm -qR apr

温馨提示:大改动之前一定要拍快照

rpm安装MySQL

  1. 查找当前系统中安装的MySQL:
1
2
[root@layne ~]# rpm -qa | grep mysql
mysql-libs-5.1.71-1.el6.x86_64

上面是CentOS6.5自带的mysql,但是版本有点低

  1. 将上一步找到的mysql相关的包都删除(-e是erase的意思)
1
2
3
4
5
[root@layne ~]# rpm -e mysql-libs-5.1.71-1.el6.x86_64
error: Failed dependencies:
libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
mysql-libs is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64

会发现mysql5.1.7被postfix-2:2.6.6-2.2.el6_1.x86_64依赖:

加上--nodeps 不检查依赖直接删除

1
2
[root@layne ~]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
[root@layne ~]# rpm -qa | grep mysql
  1. 检查并删除老版本mysql的开发头文件和库(如果有的话)
1
2
3
4
5
6
[root@layne ~]# find / -name "mysql*"
rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
rm -fr /usr/share/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除(可以先备份,后删除),如果确定没用后就手工删除。

  1. 安装perl
1
[root@layne ~]# yum install perl -y
  1. 下载numactl-2.0.9-2.el6.x86_64.rpm并安装
1
2
3
4
5
6
[root@layne apps]# cd /opt/apps/rpm_mysql
[root@layne rpm_mysql]# ls
mysql-community-client-5.7.19-1.el6.x86_64.rpm mysql-community-server-5.7.19-1.el6.x86_64.rpm
mysql-community-common-5.7.19-1.el6.x86_64.rpm numactl-2.0.9-2.el6.x86_64.rpm
mysql-community-libs-5.7.19-1.el6.x86_64.rpm rpm??װmysql.txt
[root@layne rpm_mysql]# rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm

numactl-2.0.9-2.el6.x86_64.rpm为Mysql依赖的包

  1. 安装mysql(有顺序要求)

方法1:依次安装如下软件包

1
2
3
4
rpm -ivh mysql-community-common-5.7.19-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.19-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.19-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.19-1.el6.x86_64.rpm

方法2:执行rpm -ivh mysql-community-*让系统自己判断rpm安装顺序

  1. 修改/etc/my.cnf文件,设置数据库的编码方式
1
2
3
4
5
6
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8

  1. 如果出现错误,请查看/etc/my.cnf文件中指定的错误log日志的文件

错误log的存放位置为log-error=/var/log/mysqld.log

这里可能会出现找不到文件的情况,如果找不到这个文件,就先执行第9步再尝试,如果再不行就重启系统。

  1. 启动MySQL:service mysqld start

  2. 找到随机密码

/var/log/mysqld.log中有一行:A temporary password is generated for root@localhost,后面就是随机密码

然后使用随机密码登陆:

1
mysql -uroot -p"yAe7QGVJ;HlR"
  1. 修改模式密码
1
2
3
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
mysql> set password for 'root'@'localhost'=password('123456');
  1. 登陆mysql查看编码方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.09 sec)
  1. 给root设置远程登录权限
1
2
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

ALL PRIVILEGES指所有的权限

‘root’@’%’ 指root用户除了localhost,也支持其他的远程登录

  1. 设置msyql开机启动
1
2
3
mysql> exit
Bye
[root@layne rpm_mysql]# chkconfig mysqld on

到这里就安装完毕,如果安装失败,就把第6步安装的4个包删了重新来。

rpm卸载

找出与apr有关的软件名称,并尝试移除apr这个软件

1
2
3
4
5
[root@layne ~]# rpm -qa|grep apr
apr-1.3.9-5.el6_9.1.x86_64
[root@layne ~]# rpm -e apr-1.3.9-5.el6_9.1.x86_64
[root@layne ~]# rpm -qa|grep apr
[root@layne ~]#

yum安装软件

了解epl

全称:Extra Packages for Enterprise Linux,企业版Linux的额外软件包。它是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。

我们可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版本的软件发生冲突或替换其文件。更多关于EPEL 项目的细节可以到以下网站获取:https://fedoraproject.org/wiki/EPEL。

RHEL/CentOS系统有许多第三方源,比较流行的比如RpmForge,RpmFusion,EPEL,Remi等等。然而需要引起注意的是,如果系统添加了多个第三方源,可能会因此产生冲突——一个软件包可以从多个源获取,一些源会替换系统的基础软件包,从而可能会产生意想不到的错误。已知的就有Rpmforge与EPEL会产生冲突。对于这些问题我们建议,调整源的优先权或者有选择性的安装源,但是这需要复杂的操作,如果你不确定如何操作,我们推荐你只安装一个第三方源。

yum命令

yum的源在/etc/yum.repos.d/ 目录下,以.repo结尾的的文件都是yum源配置文件,yum可以同时有多个镜像,名字无所谓,只要文件以.repo结尾就可以使用。

1
2
3
[root@layne ~]# ls /etc/yum.repos.d/
CentOS-Base-Neu.repo CentOS-Base.repo CentOS-Base-Sohu.repo.bak CentOS-Debuginfo.repo CentOS-Vault.repo
CentOS-Base-QingHua.repo.bak CentOS-Base.repo.bak CentOS-Base-YuanShi.repo.bak CentOS-Media.repo

可以看到,我启用了三个源,分别是CentOS-Base-Neu.repo、CentOS-Base.repo、 CentOS-Media.repo

yum命令:

1
2
3
4
yum repolist  #查看yum源
yum clean all # 清除缓存
yum makecache # 重新生成缓存(生成软件花名册)
yum update #更新系统使用该命令(更新系统已经存在的软件)

查询:

yum list 列出系统中已经安装的和可以安装的包

1
yum list | grep mysql

yum search 在yum源搜索指定的包

1
yum search mysql

yum info 打印指定包的描述信息

1
yum info mysql

安装和卸载:

1
2
yum install xxx
yum remove|erase xxx

yum分组命令:

查询yum源中rpm包的组信息(一个group组包含多个软件包)

1
yum grouplist

查看指定组的信息

1
yum groupinfo "Chinese Support"

安装指定的组(即安装该组下的所有软件包)

1
yum groupinstall "Chinese Support"

删除指定软件

1
yum groupremove "Chinese Support"

更新指定软件组

1
yum groupupdate "Chinese Support"

其它命令(了解)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Usage: yum [options] COMMAND

List of Commands:

check Check for problems in the rpmdb
check-update Check for available package updates
clean 移除缓存的数据
deplist 列出包的依赖
distribution-synchronization Synchronize installed packages to the latest available versions
downgrade downgrade a package
erase 从系统中移除一个或几个包
groupinfo 打印软件组的细节信息
groupinstall 在系统中安装一组软件包
grouplist 列出可用的软件包
groupremove 从系统中移除一组软件包
help Display a helpful usage message
history Display, or use, the transaction history
info Display details about a package or group of packages
install 在系统中安装一个或几个软件包
list 列出包信息或一组包的信息
load-transaction load a saved transaction from filename
makecache 生成元数据缓存
provides 哪个包提供了指定的值。
reinstall 重新安装一个软件包
repolist 打印配置的软件源
resolvedep Determine which package provides the given dependency
search 搜索指定的包
shell Run an interactive yum shell
update Update a package or packages on your system
upgrade Update packages taking obsoletes into account
version Display a version for the machine and/or available repos.

yum的三类源

(1)本地自定义源

1
2
3
4
5
6
cd  /etc/yum.repos.d/
cp CentOS-Base.repo localRepo.repo #先备份文件
mkdir old
mv CentOS-* old #将原来的文件备份到一个位置

vim localRepo.repo

localRepo.repo中base那一部分改为

1
2
3
4
5
6
7
8
...
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=file:///mnt
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
...

插入DVD的ISO镜像文件(CentOS-6.8-x86_64-bin-DVD1.iso),挂载到/mnt目录

挂载设备

1
2
3
4
mount  /dev/cdrom  /mnt
cd /mnt # 查看其中的内容
cd /mnt/Packages
ls -l | wc -l

统计出该目录有多少个rpm包

然后清缓存,再生成数据缓存

1
2
3
yum  clean  all    #清空本地元数据缓存
yum makecache #创建本地元数据缓存
yum repolist #查看元数据的具体信息

至此,本地yum源配置完成。

(2)发布局域网yum源

tomcat发布自定义的yum源

解压tomcat的tar包:

1
tar -zxf apache-tomcat-7.0.68.tar.gz

首先将dvd1和dvd2的内容从node2主机的/mnt目录拷贝到tomcat的webapps/ROOT/目录

输入./startup.sh启动tomcat

在node1的tomcat.repo中进行配置:

配置tomcat.repo:

1
2
3
4
5
[base]
name=CentOS-$releasever - Base - tomcat
baseurl=http://node2:8080
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

然后清缓存,再生成数据缓存

1
2
yum  clean  all    #清空本地元数据缓存
yum makecache #创建本地元数据缓存

这样就可以了

(3)CentOS使用其他源

这个可以参考我的博客把Linux系统中的yum替换为清华源,速度瞬间从5KB/s变到3.5MB/s