1、什么是软件包?
软件包是指将应用程序、配置文件和管理数据打包的产物。
2、Linux下常用的基本软件包管理工具有两种:dpkg工具和RPM工具。对应于两种不同格式的软件包,即.deb格式与.rpm格式。dpkg软件包工具主要用于Debian和Ubuntu这两个发行版本。RPM工具用于绝大多数的Linux发行版本,如Red Hat、openSUSE等。
3、使用dpkg和rpm工具安装软件需要考虑软件的依赖性问题,只有应用程序所依赖的所有库和支持都已经正确安装好了,软件才能被正确安装。
4、dpkg工具的常用选项:
--install(-i):安装特定的软件包。该选项会在安装软件包之前把系统上原有的旧版本删除。
--force:强制安装软件包。系统将忽略一切依赖和兼容性问题直到软件包”安装完毕“。请谨慎使用。
-l:查看已经安装的软件包。假设需要查找当前系统中的OpenSSH版本信息时,可以使用如下命令:dpkg -l | grep openssh。
--search(-S):查看所安装的软件包究竟向系统中复制了哪些文件。以OpenSSH为例:dpkg -S openssh。
--remove(-r):卸载已经安装的软件包。卸载和安装软件均需提供软件包的名字。例如要卸载安装在系统中的Opera浏览器,首先使用dpkg -l | grep opera 查看opera浏览器的软件包信息,然后使用sudo dpkg --remove opera 删除opera浏览器。
注意:所卸载的软件包可能含有其他软件所依赖的库和数据文件,在这种情况下,卸载将可能导致不可预计的后果。因此,在卸载前请确认已经解决了所有的依赖关系或者使用更高级的软件包工具。
5、RPM工具的常用选项:
-ivh:安装软件包。注意这是三个选项的组合使用。-i用于安装一个软件包。-v用于显示rpm当前正在执行的工作。-h通过打印一系列的“#”提醒用户当前的安装进度。
--force:忽略一切依赖和兼容性问题,强行安装软件包。
--nodeps:使rpm忽略软件包相关性冲突继续安装软件包。当正在安装的软件包在其他一些软件包的支持下才能正常工作时,就会发生软件包相关性冲突。
-U:用于升级一个软件包。通常加上-v、-h一起使用(即-Uvh)。升级操作实际是卸载和安装的组合。在升级软件时,rpm首先卸载老版本的软件包,然后再安装新版本的软件包。rpm的升级操作会保留软件的配置文件。
-q:查看已安装的软件包。
-e:卸载软件包。这个命令接收软件包的名字作为参数,不带有版本信息。
--test:要求rpm模拟删除软件包的全过程,但并不真的执行删除操作。
6、高级软件包工具:APT(Advanced Package Tool)。
(1)APT可以自动检测软件依赖问题,下载和安装所有文件。不需像使用dpkg与rpm工具那样一个个的安装所依赖的组件。
(2)系统第一次启动时,需要运行apt-get update更新缓存中的软件包信息,此后,就可以使用apt-get install命令安装软件包了。推荐每次进行软件安装和更新时都运行apt-get update,以保证获得的软件包是最新的。
(3)常用选项:
apt-get:用于执行和软件包安装有关的所有操作。
apt-cache:用于查找软件包的相关信息。
apt-get install:下载并安装软件包。
apt-get upgrade:下载并安装在本系统上已有的软件包的最新版本。
apt-get remove:卸载特定的软件包。
apt-get source:下载特定的软件源代码。
apt-get clean:删除所有已下载的包文件。
apt-get -h:列出apt-get的完整用法。
apt-cache search:搜索软件包列表中特定的软件包。
apt-cache depends:列出特定软件包的依赖关系。
7、从源代码编译安装软件:
(1)从源代码编译安装软件没有绝对的流程,不同的软件有不同的编译方式,但基本思想是一致的。
(2)从源代码编译安装软件通常能让编译者获得更多的控制,例如软件安装的位置,开启和禁用软件的某些功能等。
(3)大致步骤如下:
a:从网上下载到所需安装软件的源代码。在Linux下,“.tar.bz2”和“.tar.gz”这样的压缩格式是发布源代码的标准格式。
b:利用解压缩工具解压源代码。
c:根据软件提供的安装文档README或者INSTALL,使用configure脚本对软件进行个性化配置。Linux上所有的软件都使用configure这个脚本来配置以源代码形式发布的软件。configure依据用户提供相关参数生成对应的makefile文件,然后makefile指导make命令正确地编译软件。
d:使用make工具进行编译。make是一种高级编译工具,它可以依据makefile文件中的规则调用合适的编译器编译源代码。因为大型软件总是由大量模块组合在一起,其中源代码文件的联系错综复杂,不可能逐一动手编译这些文件。使用make工具可以按照预先设定的步骤自动执行这一切。
e:运行make install根据c步骤配置安装软件。
(4)如果出现问题,不要慌乱,这是正常的,应该首先阅读安装文档,然后再互联网上查找相关信息,一步步地解决所遇到的问题。