|
自由软件的蓬勃发展,各大 distribution 出现了,但是有一个很头疼的问题就是软件的管理,当软件有漏洞时,如何修补?使用 tarball 方式来管理?又常常不晓得我们安装过哪些程序,因此开始思考 Linux 的软件管理方式
Linux 开发商在固定的硬件平台与操作系统平台上面将需要安装或升级的软件编译好,然后将整个软件的所有相关文件打包为一个特殊格式的文件,在这个软件文件内还包含了预先检测系统与相依软件的脚本,并提供记载该软件提供的所有文件信息等。最终将该文件释出。客户端取得这个文件后,只要通过特定的指令来安装,那么该软件文件就会依照内部的脚本检测相依的前驱软件是否存在,若安装的环境符合需求,那就开始安装,安装完成后,还会将该软件的信息写入软件管理机制中,以达成未来可以进行升级、移除等动作
目前在 Linux 界软件安装方式最长久的有两种:
dpkg
最早由 Debian Linux 社群开发出来的,通过 dpkg 的机制,Debian 提供的软件就能够简单的安装起来。只要是衍生与 Debian 的其他 Linux distribution 大多使用 dpkg 这个机制来管理软件,包括 B2D、Ubuntu 等
RPM
最早由 Red Hat 公司开发出来的,后来实在很好用,因此很多 distribution 就使用该机制作为软件安装的管理方式。
不论 dpkg、rpm 这些机制都会涉及到软件相依的问题,每个软件文件都有提供相依属性的检查,如果将相依属性的数据做成列表,等到实际软件安装时,若有发生相依属性的软件状况时,管理机制自动去获取想依赖的软件同时安装
distribution 代表 软件管理机制 使用指令 在线升级机制
Red Hat/Fedora RPM rpm、rpmbuild YUM(yum)
Debian/Ubuntu DPKG dpkg APT (apt-get)
|
|