课程大纲:
一、软件包管理简介
常识:Linux和Windows中的软件包一般不能通用,比如wpsy
1、软件包分类:
源码包:源代码直接开放提供给用户的包,多数源码包都是c语言,也有部分是c++写的源码包。特点:安全稳定、开源、可定
制、不方便安装、耗时间。
> 脚本安装包:一般厂商为了方便自家软件推广,方便用户安装使用,源码基础上,添加了脚本(简化安装过程)。即相当于
源码+安装脚本。
二进制包(RPM包、系统默认包):当前Linux上最常见的安装的软件都是二进制包,二进制包是对源码进行编译处理之后的01
的机器语言包。特点:方便 安装、无法看到源码、不方便再做定制处理(反编译比较困难,一般都做了代码混淆安全处理——防
止反编译),安装快,节约时间;
Red Hat系列的Linux和daibing 和Ubuntu系列之间的一个最大的区别是二进制包的类型不一样,所以包的管理方式不一样,其他基本上差距不大
Red Hat系列的软件包,编译处理后的包是RPM格式的包;
Ubuntu系列和其他的软件包,编译处理后的包是deb包;
扩展:Windows中的软件安装包都是编译处理之后的,看不到源码,格式为exe.
Linux安装光盘,解压之后,一般会在package目录下,存在大量以rpm为后缀的软件包。
.so.数字 格式 结尾的包,一般是库依赖包,欲安装该库依赖包,需要先安装该库依赖包所在的软件包。
总结:
源码包:
1、开源,如果有足够的能力,可以修改源代码;
2、可以自由选择所需的功能;
3、软件是编译安装,所以更适合自己的系统,更加稳定,效率也更高;
4、卸载方便(指的是和Windows相比,Linux卸载时,可以直接把该软件安装的文件夹删掉就好了,不会有垃圾残留。)
缺点:
安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
编译过程时间较长,安装比二进制安装时间长;
因为是编译安装,安装过程中一旦报错新手很难解决。
扩展:当前zhentu linux仍然在使用源码包安装,安装时间需要三天。
二进制包:
优点:
包管理系统简单,只通过几个命令就可以实现软件包的安装、升级、查询和卸载;
安装速度比源码包安装快的多;
缺点:
经过编译,不再可以看到源代码;
功能选择不如源码包灵活;
依赖性:如果安装时,安装a时,需要先安装b,安装b时需要先安装c,则卸载时顺序相反,卸载时要先卸载a,再卸载b,最后卸载c
二、RPM包管理——rpm命令管理
rpm包有两种安装管理方式,一个是手动命令安装,另一个是yum在线管理。这两种方式种,后者更智能,自动进行,避免了安装包依赖寻找的麻烦。
1、RPM包命名原则
httpd-2.2.15-15.el6.centos.1.i686.rpm 软件包全名(只有在命令包管理方式安装和升级时,才会使用包全名,其他地方一般都是用简单的软件包名)
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
el6.centos 适合的Linux平台
i686 适合的硬件平台 指的是686的微机平台上,但是如果这里是x64,则只能安装在64位的机器上使用
rpm rpm包扩展名,Linux没有扩展名之说,但是一般习惯,方便包管理,有助于管理员识别。
2、RPM包依赖性:安装一个软件包,该包依赖很多其他包,需要先成功安装完其依赖包,才能成功安装目标软件包
1)树形依赖 :a——》b——》c
2)环形依赖:a——》b——》c——》a
3)模块依赖:模块依赖查询网站:www.rpmfind.net
RPM命令管理——安装升级与卸载
3 包全名与包名:
包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径;
包名: 操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm中的数据库;
4、RPM安装:
rpm -ivh 包全名 :一般安装软件时,都会使用这三个选项
选项:
-i (install) 安装
-v (verbose)显示详细信息
-h (hash) 显示进度
-- nodeps 不检测依赖性 (注意该选项在安装时绝对不要使用,因为如果除去对依赖的检测,即使软件包成功安装,一旦缺少依赖包,则仍然不能正常使用,所以该选项仅仅限于学习时的实验环境下,自行了解使用)
先解压光盘,进入packages目录中,可以看到所有的rpm包,在package目录中打开命令终端窗口,或者安装时要保证系统能进入该目录,才能执行安装、升级和卸载操作
安装过程:
1)先挂载光盘
2)确认光盘是否挂载。直接 mount命令+回车;
3)进入packages目录。cd ***/packages/ 如果不进入package目录,后续需要使用绝对路径到该目录下才可
4)执行安装命令: rpm -ivh httpd- 在此按下Tab键自动补全
到此,自行体验了一把,具体过程附图到此
-rw-r--r--. 1 root root 30736 6月 20 19:43 yum-plugin-tmprepo-1.1.30-41.el6.noarch.rpm
-rw-r--r--. 1 root root 35640 6月 20 19:43 yum-plugin-verify-1.1.30-41.el6.noarch.rpm
-rw-r--r--. 1 root root 33248 6月 20 19:43 yum-plugin-versionlock-1.1.30-41.el6.noarch.rpm
-rw-r--r--. 1 root root 32336 7月 3 2011 yum-presto-0.6.2-1.el6.noarch.rpm
-rw-r--r--. 1 root root 116112 6月 20 19:43 yum-utils-1.1.30-41.el6.noarch.rpm
-rw-r--r--. 1 root root 22792 7月 3 2011 zd1211-firmware-1.4-4.el6.noarch.rpm
-rw-r--r--. 1 root root 2767424 7月 3 2011 zenity-2.28.0-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 264988 11月 10 2015 zip-3.0-1.el6_7.1.x86_64.rpm
-rw-r--r--. 1 root root 74568 2月 24 2013 zlib-1.2.3-29.el6.x86_64.rpm
-rw-r--r--. 1 root root 44984 2月 24 2013 zlib-devel-1.2.3-29.el6.x86_64.rpm
-rw-r--r--. 1 root root 2345144 6月 20 19:43 zsh-4.3.11-8.el6.centos.x86_64.rpm
[root@localhost Packages]# rpm -ivh httpd-
httpd-2.2.15-69.el6.centos.x86_64.rpm httpd-manual-2.2.15-69.el6.centos.noarch.rpm
httpd-devel-2.2.15-69.el6.centos.x86_64.rpm httpd-tools-2.2.15-69.el6.centos.x86_64.rpm
[root@localhost Packages]# rpm -ivh httpd-2.2.15-69.el6.centos.x86_64.rpm
warning: httpd-2.2.15-69.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
package httpd-2.2.15-69.el6.centos.x86_64 is already installed
[root@localhost Packages]# rpm -ivh ht
htdig-3.2.0-0.10.b6.el6.x86_64.rpm httpd-manual-2.2.15-69.el6.centos.noarch.rpm
httpd-2.2.15-69.el6.centos.x86_64.rpm httpd-tools-2.2.15-69.el6.centos.x86_64.rpm
httpd-devel-2.2.15-69.el6.centos.x86_64.rpm
[root@localhost Packages]# rpm -ivh httpd-manual-2.2.15-69.el6.centos.noarch.rpm
warning: httpd-manual-2.2.15-69.el6.centos.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:httpd-manual ########################################### [100%]
[root@localhost Packages]# rpm -ivh httpd-devel-2.2.15-69.el6.centos.x86_64.rpm
warning: httpd-devel-2.2.15-69.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
apr-devel is needed by httpd-devel-2.2.15-69.el6.centos.x86_64
apr-util-devel is needed by httpd-devel-2.2.15-69.el6.centos.x86_64
[root@localhost Packages]# rpm -ivh apr-devel-1.3.9-5.el6_9.1.x86_64.rpm
warning: apr-devel-1.3.9-5.el6_9.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:apr-devel ########################################### [100%]
[root@localhost Packages]# rpm -ivh apr-util-devel-1.3.9-3.el6_0.1.x86_64.rpm
warning: apr-util-devel-1.3.9-3.el6_0.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
expat-devel is needed by apr-util-devel-1.3.9-3.el6_0.1.x86_64
openldap-devel is needed by apr-util-devel-1.3.9-3.el6_0.1.x86_64
[root@localhost Packages]# rpm -ivh ex
exempi-2.1.0-5.el6.x86_64.rpm expat-devel-2.0.1-13.el6_8.x86_64.rpm
exiv2-libs-0.18.2-2.1.el6.x86_64.rpm expect-5.44.1.15-5.el6_4.x86_64.rpm
expat-2.0.1-13.el6_8.x86_64.rpm
[root@localhost Packages]# rpm -ivh expat-devel-2.0.1-13.el6_8.x86_64.rpm
warning: expat-devel-2.0.1-13.el6_8.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:expat-devel ########################################### [100%]
[root@localhost Packages]# rpm -ivh openldap-devel-2.4.40-16.el6.x86_64.rpm
warning: openldap-devel-2.4.40-16.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
cyrus-sasl-devel >= 2.1 is needed by openldap-devel-2.4.40-16.el6.x86_64
[root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64.rpm
warning: cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:cyrus-sasl-devel ########################################### [100%]
[root@localhost Packages]# rpm -ivh openldap-devel-2.4.40-16.el6.x86_64.rpm
warning: openldap-devel-2.4.40-16.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:openldap-devel ########################################### [100%]
[root@localho