上章节是用源代码来编译完成;
发商编译好之后直接把可执行文件发布给用户来安装也是一种方法,类似于windows下的安装;
客户端取得这个文件后,只要通过特定的指令来安装, 那么该软件文件就会依照内部的脚本来检测相依的前驱软件是否存在,若安装的环境符合需求,那就会开始安装;
dbkg与 RPM
- dpkg:
这个机制最早是由 Debian Linux 社群所开发出来的,通过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息,实在非常不错。 只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等。
- RPM:RedHat Package Manager
这个机制最早是由 Red Hat 这家公司开发出来的,后来实在很好用,因此很多 distributions 就使用这个机制来作为软件安装的管理方式。 包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这咚咚。 - ----
Centos是使用用RPM机制来进行安装的,本章着重讲这种;
RPM
优点:
1 RPM 内含已经编译过的程式与设定档等资料,可以让使用者免除重新编译的困扰;
2 RPM 在被安装之前,会先检查系统的硬碟容量、作业系统版本等,可避免档案被错误安装;
3 RPM 档案本身提供软体版本资讯、相依属性软体名称、软体用途说明、软体所含档案等资讯,便于瞭解软体;
4 RPM 管理的方式使用资料库记录 RPM 档案的相关参数,便于升级、移除、查询与验证。
注意:
- 软件档案安装的环境必须与打包时的环境需求一致或相当;
- 需要满足软件的相依属性需求;
- 反安装时需要特别小心,最底层的软件不可先移除,否则可能造成整个系统的问题!
-
文件格式代表着-
xxxxxxxxx.rpm <==RPM 的格式,已经经过编译且包装完成的 rpm 档案;
xxxxx.src.rpm <==SRPM的格式,包含未编译的原始码资讯。
如:rp-pppoe-3.11-5.el7.x86_64.rpm
--
rp-pppoe - 3.11 - 5 .el7.x86_64 .rpm
軟體名稱 軟體的版本資訊 釋出的次數 適合的硬體平台 副檔名
软件相互依赖问题
通过YUM服务器获取软件清单,安装时一一比较;
当客户端有升级、安装的需求时, yum 会向软件库要求列表的更新,等到清单更新到本机的 /var/cache/yum 里面后, 等一下更新时就会用这个本机清单与本机的 RPM 数据库进行比较,这样就知道该下载什么软件。 接下来 yum 会跑到软件库服务器 (yum server) 下载所需要的软件 (因为有记录软件所在的网址),然后再通过 RPM 的机制开始安装软件
删除清单缓存
/var/cache/yum
当本地清单列表与YUM服务器内容不一致时,可能出现差错;
[root@study ~]# yum clean [packages|headers|all]
選項與參數:
packages:將已下載的軟體檔案刪除
headers :將下載的軟體檔頭刪除
all :將所有軟體庫資料都刪除!
软件文件信息存放问题
该软件相关的信息就会被写入 /var/lib/rpm/ 目录下的数据库文件中了
软件内的文件存放到:
rpm命令*
安装:
[root@study ~]# rpm -ivh package_name
選項與參數:
-i :install 的意思
-v :察看更細部的安裝資訊畫面
-h :以安裝資訊列顯示安裝進度
另外,如果我们在安装的过程当中发现问题,或者已经知道会发生的问题, 而还是'执意'要安装这个软件时,