1、RPM包的来源:所有RPM包都在系统光盘的Packages目录中
2、RPM包命名规则:软件包名-软件版本-软件发布的次数-适合的Linux平台-适合的硬件平台-包扩展名
3、RPM包依赖性:
a、树形依赖:a->b->c 解决方法:从后往前安装
b、环形依赖:a->b->c->a 解决方法:放在一条命令中安装即可
c、模块依赖:库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就是以【.so.数字】结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:登录www.rpmfind.net网站,输入库文件名称查询到对应的rpm包,然后安装即可。
4、yum在线安装:可以方便的解决依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。
注:RedHat的yum是收费服务,而CentOS的yum是免费服务。
RPM包升级:rpm -Uvh 包全名(虽然之前已经安装过了该包,但是升级的时候还是得使用包全名,不能使用包名。)
【另外补充:】
在Ubuntu中:sudo apt-get update ——》更新软件包列表
sudo apt-get upgrade ——》更新(或者说升级嘛)所有已安装的包
1.查询是否安装:rpm -q 包名 (查询包是否安装,query) rpm -qa (查询所有已经安装的rpm包,all)
2.查询软件包详细信息:rpm -qi 包名 (查询软件信息,information) rpm -qip 包名 (查询未安装包信息,package)
3. 查询包中文件安装位置:rpm -ql 包名 (l , list,列表) rpm -qlp 包名 (查询未安装包信息,package)
4.查询系统文件属于哪个RPM包:rpm -qf 系统文件名 (查询系统文件属于哪个软件包,file)
5.查询软件包的依赖性:rpm -qR 包名 (-R 查询软件包的依赖性 ,requires ) rpm -qRp 包名 (-p 查询未安装包信息 ,package)
一、RPM包校验:
rpm -V(大写V) 已安装的包名
V(verify):校验指定RPM包中的文件;
##!!该命令执行之后,如果没有任何回馈信息,则表示该文件一切正常!!
验证内容中的8个信息得具体内容如下:
①S:文件大小是否改变;
②M:文件的类型或文件的权限(rwx)是否被改变;
③5:文件MD5校验和是否改变(可以看成文件内容是否改变)
④D:设备的主从代码是否改变;
⑤L:文件路径是否改变;
⑥U:文件的属主(所有者)是否改变;
⑦G:文件的属组是否改变;
⑧T:文件的修改时间是否改变;
文件类型:
①c:配置文件(config file)
②d:普通文档(documentation)
③g:“鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包 包含;
④L:授权文件(license file)
⑤r:描述文件(read me)
二、RPM包中文件提取:
rpm2cpio 包全名 cpio -idv .文件绝对路径
①-rpm2cpip //将rpm包转换为cpio格式的命令;
②-cpip //是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件;
cpio 选项 < [文件设备]
①-i:copy-in模式,还原;
②-d:还原时自动新建目录;
③-v:显示还原过程;
Yum在线安装:yum源文件
1、yum的优点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。(rpm缺点:安装过程中,rpm包依赖性太强)
2、redhat的yum在线安装需要付费,centOS不需要。
3、在【/etc/yum.repos.d/】目录中,默认有4个yum源文件,其中【CentOS-Base.repo】是基本yum源文件,如果我们能上网,那它是默认生效的,而其他的都是默认不生效的。
4、[base]:名字可以随便起。
5、name:名字也是随便起。
6、mirrorlist和baseurl一个是主站点,一个是辅助站点,这两个有一个就行。可以找一个163或清华大学的yum源更换。
7、enabled:默认最后一个容器不生效,其他容器都生效。
8、gpgcheck:一般都要开启,开启后安装时会验证rpm包是否是官方的,以保证系统安全。
9、gpgkey:默认系统安装后,在目录【/etc/pki/rpm-gpg】下都会存在数字证书。注:前面的【file://】表示文件协议,后面的【/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6】是数字证书的位置。
[root@CentOS6 ~]# cd /etc/pki/rpm-gpg
[root@CentOS6 rpm-gpg]# ll
总用量 16
-rw-r--r--. 1 root root 1706 11月 27 2013 RPM-GPG-KEY-CentOS-6
-rw-r--r--. 1 root root 1730 11月 27 2013 RPM-GPG-KEY-CentOS-Debug-6
-rw-r--r--. 1 root root 1730 11月 27 2013 RPM-GPG-KEY-CentOS-Security-6
-rw-r--r--. 1 root root 1734 11月 27 2013 RPM-GPG-KEY-CentOS-Testing-6
[root@CentOS6 rpm-gpg]#
常用yum命令:
1.查询
>yun list --查询所有可用软件包列表
>yum search 关键字 --搜索服务器上所有和关键字相关的包
2.安装
>yum -y install 包名 (-y 自动回答yes)
yum安装只写包名即可! eg:yum -y install gcc --c语言编译器
光盘yum源搭建:
1、挂载光盘
mkdir /media或mnt/cdrom:建立挂载点;
mount /dev/cdrom /media或mnt/cdrom:挂载光盘;
2、使网络yum源失效:
cd/etc/yum.repos.d/:进入yum源目录;
mv CentOS-Base.repo CentOS-Base.repo.bak:修改Yum源文件后缀名,使其失效;(判断yum源是根据后缀名repo来实现的,修改后缀名则可以使该yum源失效)
3、使光盘yum源生效:
vim CentOS-Media.repo
baseurl=file:///mnt或media/cdrom:地址为光盘挂载地址,如果有多余的光盘挂载点,需要注释掉不存在或不需要使用的光盘挂在地址;
enabled=1:把enabled=0改为enabled=1,使该yum源配置生效;
4、命令:yum list:该命令可验证目前使用的yum源有哪些可用的rpm包;
首个gcc只可以使用rpm包安装
Yum在线安装:2、yum软件组管理命令
【yum grouplist】列出当前已安装的和可安装的所有组,例如:
[root@CentOS6 sysconfig]# yum grouplist
...省略部分内容...
Available Groups:
...省略部分内容...
Java 平台
【yum groupinstall 软件组名】用于安装指定的软件组(注意:【软件组名】最好用双引号括起来,不能是中文。PS:经在CentOS6.5上测试,中文也可以正常安装)。
例如,我们想安装【Java 平台】组,由于组名不能是中文,所以我们需要知道该组名对应的英文组名才能安装。有两种方式可以获得英文组名:
a、因为本机是英文语系,所以可直接在本机通过【yum grouplist】命令查看组名;
b、若是远程连接的话,通常都是中文语系,需要使用【LANG=en_US】命令临时将当前系统下的语系修改为英文,然后通过【yum grouplist】命令查看组名。例如:
[root@CentOS6 sysconfig]# LANG=en_US
[root@CentOS6 sysconfig]# yum grouplist
Installed Groups:
...省略部分内容...
Available Groups:
...省略部分内容...
Java Platform
通过上面查询,可以知道【Java 平台】对应的英文名是【Java Platform】,下面是执行安装操作的命令:
[root@CentOS6 sysconfig]# yum groupinstall "Java Platform"
...省略部分内容...
Installed:
java-1.6.0-openjdk.i686 1:1.6.0.0-1.66.1.13.0.el6 java-1.7.0-openjdk.i686 1:1.7.0.45-2.4.3.3.el6
...省略部分内容...
Complete!
注:【LANG=zh_CN.utf8】是临时将当前系统下运行的语系改为中文的命令(若需要永久修改,则在【/etc/sysconfig/i18n】文件中修改。)
yum命令
1、常用yum命令:
查询:
①yum list:查询目前使用的yum源中所有可用软件包列表;
②yum search 关键字:搜索服务器上所有和关键字相关的包;
安装:
①yum -y install 包名
⑴-install:安装;
⑵-y:自动回答yes;
②例如:yum -y install httpd
升级:
①yum -y update 包名
⑴-update:升级;
⑵-y:自动回答yes;
卸载:
②yum -y remove 包名
⑴-remove:卸载;
⑵-y:自动回答yes;
!!!服务器使用最小化安装,用什么软件安装什么,尽量不要卸载!!!
2、yum软件组管理命令
yum grouplist:列出所有可用的软件列表;
yum groupinstall 软件组名:安装指定软件组,组名可以由grouplist查询出来;
yum gourpremove 软件组名:卸载指定软件组;
①LANG=en_US:切换至英文;(临时生效)①
②LANG=zh_CN.utf8:切换至中文;(临时生效)②
源码包安装过程:<br>
一、<br>
1.安装C语言编译器“gcc”;<br>
2.下载源码包;<br>
http://mirror.bit.edu.cn/apache/httpd/<br>
二、<br>
1.源码包保存位置:/usr/local/src/<br>
2.软件安装位置:/usr/local/<br>
3.如何确定安装过程报错:<br>
安装过程停止;<br>
并出现:error、warning或no的提示;<br>
<br>
<br>
下载源码包解压缩下载的源码包进入解压缩目录;<br>
<br>
./configure:软件配置与检查<br>
1.定义需要的功能选项;<br>
2.检测系统环境是否符合安装要求;<br>
3.把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑;<br>
<br>
make:编译<br>
如果报错,可执行“make clean” :清除编译缓存文件;<br>
make install:编译安装
源码包的卸载无需卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件;
脚本安装包:准备工作
1、本节以安装LNMP1.0(http://lnmp.org/download.html)为例,所以需要先停止之前安装的apache和mysql服务(最好也将源码包安装的apache【/usr/local/apache2】删除)
2、保证yum源正常:可以使用【yum list】命令测试。(若是光盘yum源,记得挂载光盘)
3、关闭SELinux和防火墙:
a、永久关闭SELinux的方法:编辑文件【/etc/selinux/config】,将【SELINUX=enforcing】改为【SELINUX=disabled】,然后重启系统即可。
b、永久关闭防火墙的方法:【chkconfig iptables off】,开启为:【chkconfig iptables on】;临时关闭防火墙的方法:【service iptables stop】,开启为:【service iptables start】。
4、脚本安装过程中,会将系统中已有的apache、mysql、php等卸载掉。下面是安装脚本【centOS.sh】的部分内容:
......部分内容省略......
yum install -y ntp
ntpdate -u pool.ntp.org
date
rpm -qa|grep httpd
rpm -e httpd
rpm -qa|grep mysql
rpm -e mysql
rpm -qa|grep php
rpm -e php
yum -y remove httpd*
yum -y remove php*
yum -y remove mysql-server mysql
yum -y remove php-mysql
......部分内容省略......
注:安装后,如果安装卡在了【php-fpm】那里,通常表示已安装成功,只是【php-fpm】那里卡住了(物理机少见,但虚拟机比较常见),解决的方法就是:使用命令【pkill -9 php-fpm】杀掉【php-fpm】进程,然后重新启动该进程【/etc/rc.d/init.d/php-fpm start】即可。