第六章Linux软件安装(源码包与RPM包区别与安装)-(yum
软件包管理简介
软件包分类
1.源码包,是开源的,可以直接看到源码,如:脚本安装包
2.二进制包(RPM包、系统默认包):是源代码包经过编译的01的文件
可以加快安装速度,但是不能看到源代码了
RPM包管理-rpm命令管理
1.RPM包命名规则
2.RPM包依赖性
树形依赖:a->b->c 安装顺序:cba 卸载顺序:abc
环形依赖:a->b->c->a 解决办法:用一条命令把abc三个包都安装了
模块依赖: 模块依赖查询网站:www.rpmfind.net
像这种 .so.2,以数字结尾的包都是库依赖包,不是单独独立的包,它是某个软件包中的文件
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
RPM包管理-安装升级与卸载
1.包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径(要在Packages目录下执行安装)。一般是安装和升级的时候需要用到。
包都在 /mnt/cdrom/Packages中
2.包名:操作已经安装的软件包时,使用包名。
是搜索/var/lib/rpm/中的数据库。如查询、卸载。
注意:包名和包全名是严格区分的
1.RPM安装(要在Packages目录下执行)
rpm -ivh 包全名
选项:
-i(install):安装
-v(verbose):显示详细信息
-h(hash):显示进度
--nodeps:不检测依赖性(一般不用这个选项)
如:rpm -ivh httpd-
然后按下tab键,就可以看到所有以httpd-开头的安装包,一般先安装主包再安装副包
注意:按 tab键,就可以列出所有相关的文件。
2.RPM包升级
rpm -Uvh 包全名
-U(upgrade) 升级
3.卸载(不需要在包路径下执行,因为它搜索的是后台数据库,任何位置都能找到)
rpm -e 包名
-e(erase): 卸载
--nodeps:不检查依赖性(一般不用这个选项)
RPM命令管理-查询(不一定要在packages路径)
1.查询是否安装
rpm -q 包名
选项:-q(query):查询,必选
如: rpm -q httpd
查询httpd-是否有安装,如果安装就会出现安装的版本信息
-a (all): 所有
如:rpm -qa
查询所有已经安装的rpm包
如:rpm -qa | grep httpd
列出所有和httpd相关的包
2.查询软件包详细信息
rpm -qi 包名
选项:-i (information) 查询软件信息
-p(package) 查询未安装包信息(后面跟的是包全名)
如:rpm -qi httpd
查询httpd包的信息
如:rpm -qip zip(之后按tab键进行补齐全名,,注意路径)
3.查询包中文件的安装位置
rpm -ql 包名
选项:-l(list):列表
-p(package):查询未安装包信息(后面跟的是包全名)
如:rpm -ql httpd
查询(已安装包)httpd安装位置
rpm -qpl zip(之后按tab键进行补齐全名,,注意路径)
查询(未安装包)zip的位置
4.查询文件系统属于哪个RPM包(要在系统文件所在目录下)
rpm -qf 系统文件名
选项:-f (file):查询系统文件属于哪个软件包
如:rpm -qf var/www/icons/up.gif
结果就会告诉我们这个系统文件包是httpd安装的
rpm -qf yum.conf
(要在 /etc目录下,输入上面的命令)
5.查询软件包的依赖性
rpm -qR 包名
选项:-R:查询软件包的依赖性(requires)
-p: 查询未安装包信息(后面跟的是包全名)(package)
如:rpm -qR httpd
查询httpd包的依赖性
rpm -qRp zip(之后按tab键进行补齐全名,注意路径)
注:注意路径 是指要在对应的包的目录下,再进行查询
RPM命令管理-校验和文件提取
1.RPM包校验
[root@localhost~]#rpm -V 已安装的包名
选项:-V(大写)校验指定RPM包中的文件( verify)
如:rpm -V httpd
如果没有提示信息,说明安装的httpd包就是我们初始安装的,没有做过任何修改
如提示信息如下:验证的内容 文件类型 修改的文件名
S.5....T. c /etc/httpd/conf/httpd.conf
如果有提示,一般是8个字符,表示信息如下:
如果没有改变就用 “.”表示
验证内容中的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)
2.RPM包中文件提取(一般多用于恢复被修改、破坏的系统文件)
[root@localhost~]#rpm2cpio 包全名 | \
cpio -idv . 文件绝对路径
这条命令表示:要把安全包rpm转换为cpio,然后再从cpio中提取所要的文件。“\”这个符号表示命令太长,要换行。“.”表示把指定的文件提取到当前路径,当前路径一般是当前要工作的目录
如:rpm2cpio
#将rpm包转换为pio格式的命令
cpio
#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
如:1.whereis ls :查询ls在哪里
2.rpm -qf /bin/ls :查询ls命令属于哪个软件包
3.mv /bin/ls /tmp :造成ls命令误删的假象
4. rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-47.el6.x86_64.rpm | cpio -idv ./bin/ls :提取rpm包中ls命令到当前目录的/bin/ls下
5.cp /root/bin/ls /bin/ :把ls命令复制回/bin/目录,修复文件丢失
注意:dir 可以查看当前路径下的目录
RPM包管理-yum在线管理
yum在线管理-IP地址配置和网络yum源
1.IP地址配置(可永久生效)
1)setup #使用setup工具
setup:配置网络,只有root用户可以使用,永久生效
用法:setup
选择 网络配置,然后回车,-> 设备配置(回车)->
在DHCP中输入 * 是自动获取IP地址,如果没有 DHCP SERVER就不要写这个,因为无法自动获取
自己手动输入IP地址,子网掩码,网关
然后保存并退出,最后别忘了用命令:service network resatrt
重启网络服务
注意:setup命令是红帽系列专有的
2)vi /etc/sysconfig/network-scripts/ifcfg-eth0 #启动网卡。如果有多个网卡,后面跟的就是eth1,eth2等
3)service network restart #重启网络服务
2.网络yum源
root[@localhost yum.repos.d]# vi/etc/yum.repos.d/ CentoS-Base.repo
注意:后缀是 .repo都是合法的yum源
◆[base] 容器名称,一定要放在[]中
◆name 容器说明,可以自己随便写
◆ mirrorlist 镜像站点,这个可以注释掉
◆ baseurl 我们的yum源服务器的地址。默认是 Centos官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址
◆ enabled 此容器是否生效,如果不写或写成 enable=1都是生效,写成enable=0就是不生效
◆ gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
◆ gpgkey 数字证书的公钥文件保存位置。不用修改
yum在线管理-yum命令(全部使用包名)
1)查询:yum list
#查询所有可用软件包列表
yum search 关键字
#搜索服务器上所有和关键字相关的包
如:yum search httpd
搜索所有和httpd相关的包,以及安装httpd所需要的的包
2)安装
yum -y install 包名
选项:-y 自动回答yes
install 安装
如:yum -y install httpd
安装httpd包
yum -y install gcc
安装gcc,是C语言编译器。之后可用(rpm -q gcc)命令查询相关信息
3)升级
yum -y update 包名
选项:-y 自动回答yes
update 升级
如:yum -y update httpd
表示升级httpd包
4)卸载
yum -y remove 包名
选项:-y 自动回答yes
remove 卸载
如:yum -y remove httpd
注意:在安装软件,需要多少安装多少,采用最少安装。尽量不要卸载,尤其是使用yum下载时要注意。因为软件包之间存在依赖性,卸载这个包,可能会导致系统其它软件包也被卸载了,不能使用。要安装a,其依赖性有可能是 a->b->c,这样安装的顺序就是:c,b,a
卸载刚好相反是:a,b,c
5)YUM软件组管理命令
yum grouplist
#列出所有可用的软件组列表
yum groupinstall 软件组名
[root@localhost ~]# yum grouplist
列出所有可用的软件组列表
[root@localhost ~]#yum groupinstall 软件组名
安装指定软件组,组名可以由grouplist查询出来
[root@localhost ~]#yum groupremove 软件组名
卸载指定软件组
注意:如果软件组名中有空格 如zulu Support,就要用双引号,如“zulu Support”这样,才能被识别为一个软件组
yum在线管理-光盘yum源搭建
光盘yum源搭建步骤
可以先 cd /etc/yum.repo.d/ 下看看有有哪些yum源,默认是CentOS-Base.repo 生效。其他三个人别是: CentOS-Debuginfo.repo,CentOS-Vault.repo,CentOS-Media.repo(这个代表光盘yum)
1)挂载光盘
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
2)让网络yum源文件失效(通过改名的方式)
[root@localhost ~]# cd /etc/yum.epos.d/
[root@localhost yum.epos.d]#mv CentOS-Base.repo \
CentOS-Base.repo.bak
[root@localhost yum.epos.d]#mv CentOS-Debuginfo.repo \
CentODS-Debuginfo.repo.bak
[root@localhost yum.epos.d]#mv CentOS-Vault.repo \
CentOS-Vault.repo.bak
3)修改光盘yum源
[root@localhost yum.epos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为你自已的光盘挂载地址.///最后一个/表示根目录
# file:///media/cdrom/
# file:///media/cdrecorder/
#注释这两个不存在的地址
gpgcheck =1
enabled=1
#把 enabled=0改为 enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
4)yum list
可以看到后面的yum源变成 c6-media
源码包与RPM包的区别
1、区别
◆安装之前的区别:概念上的区别
◆安装之后的区别:安装位置不同
2、RPM包安装位置
◆是安装在默认位置中
RPM包默认安装路径如下:
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装且录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
3、源码包安装位置
■安装在指定位置当中,一般是/usr/local/软件名/
4、安装位置不同带来的影响
◆RPM包安装的服务可以使用系统服务管理命令( service)来管理,例如RPM包安装的 apache的启动方法是:
/etc/rc.d/init.d/httpd start
通过绝对路径加上软件名来启动。(cd /etc/rc.d/init.d/ 可以看到rpm包的执行文件)
或者 service httpd start(红帽专有,service可以找到绝对路径)
cd /var/www/html 在这个目录下可以看到httpd下的网页
写一个网页:vi index.html
在网页中输入192.168.1.17,就能看到网页信息(要记得关掉防火墙:service iptables stop)
◆而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如/usr/local/apache2/bin/apachectl start
源码包管理-源码包的安装过程
1、安装准备
◆安装C语言编译器
◆下载源码包http://mirror.bit.edu.cn/apache/httpd
2、安装注意事项
◆源代码保存位置:usr/local/src
(系统已经给我们准备了安装源码包的位置,其中usr是linux系统资源目录,local是本地的意思,src是源代码的位置)
◆软件安装位置:/usr/local
◆如何确定安装过程报错:
安装过程停止
并出现error、 warning或no的提示
3、源码包安装过程
◆下载源码包 如:httpd-2.4.43.tar.gz
◆解压缩下载的源码包 如:tar -zxvf httpd-2.4.43.tar.gz
◆进入解压缩目录 如:cd /root/httpd-2.4.43
注意:du -sh httpd-2.4.43 通过这条命令可以看到这个源码包有多大
4. ./configure 软件配置与检查(执行完会产生Makefile)
定义需要的功能选项
命令: ./configure --prefix=/usr/local/apache2
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写入 Makefile文件,用于后续的编辑。
5.make #编译(把源码包翻译为机器语言)
make clean #清空编译产生的临时文件,没有报错不要执行
make install #编译安装,才会向目录真正写入文件
6.由yum安装的httpd,启用的httpd占用的端口也是80,所以要先停掉
service httpd stop
7.安装完成后,进行启动
命令:/usr/local/apache2/bin/apachectl start
8.在网页中输入 192.168.1.17
就可以发现首页是启动的是源码包的apache
9.源码包的卸载(一个服务器中,只能有一个httpd)
◆不需要卸载命令,直接删除安装目录即可。
不会遗留任何垃圾文件
如:rm -rf /usr/local/apache2/
注意:1.通过 ./configure --help 可以看到其支持的编译功能选项
2.通过 more INSTALL 可以看安装的过程
3.httpd如果是2.4以上的版本,要先安装ARP
步骤如下:都是在根目录下执行,也就是要先 cd /root下。
[root@localhost ~]#这个状态下
1)下载所需工具包:
wget http://archive.apache.org/dist/apr/apr-1.5.0.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.5.3.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.34/pcre-8.34.tar.gz
2)将以前的删除:yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
分别进行便于安装:
3)
tar -zxvf apr-1.5.0.tar.gz
cd apr-1.5.0
./configure --prefix=/usr/local/apr && make && make install
tar -zxvf apr-util-1.5.3.tar.gz
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config && make && make install
tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure --prefix=/usr/local/pcre && make && make install
4)最后一步安装httpd
wget http://apache.org/dist/httpd/httpd-2.4.9.tar.gz (如果之前没下载,就可以用这个命令进行下载)
tar -zxvf httpd-2.4.43.tar.gz
cd /root/httpd-2.4.43
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--with-pcre=/usr/local/pcre
make && make install
脚本安装包
1、脚本安装包
◆脚本安装包并不是独立的软件包类型,常见安装的是源码包。
◆是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
◆非常类似于 Windows下软件的安装方式。
2、 Webmin的作用
◆ Webmin是一个基于Web的 Linux系统管理界面。您就可以通过图形化的方式设置用户帐号、 Apache、DNS、文件共享等服务
3、 Webmin安装过程
◆下载软件
>http://sourceforge.net/projects/webadmin/files/webmin/
◆解压缩,并进入加压缩目录
tar -zvxf webmin-1.61..tar.gz
du -sh webmin-1.610(查看大小的命令)
cd webmin-1.610
◆执行安装脚本
./setup.sh
以回车作为默认
最后可以修改用户名和密码。这里设置用户名:admin 密码:123456
使用的是本机的10000端口号
◆在网页中:192.168.1.17:10000即可,然后输入用户名和密码