一、Linux应用程序基础 1、应用程序与系统命的关系 (1)文件位置 系统命令:一般在/bin和/sbin目录中,或为 Shell内部指令 应用程序:通常在/usr/bin和/usr/sbin目录中 (2)主要用途 系统命令:完成对系统的基本管理工作,例如P配置工具 应用程序:完成相对独立的其他辅助任务,例如网页浏览器 (3)适用环境 系统命令:一般只在字符操作界面中运行 应用程序:根据实际需要,有些程序可在图形界面中运行 (4)运行格式 系统命令:一般包括命令字、命令选项和命令参数 应用程序:通常没有固定的执行格式 2、典型应用程序的目录结构 (1)普通的可执行程序文件。一般保存在“/usr/in”目录中,普通用户即可执行。 (2)服务器程序、管理程序文件。一般保存在“/usr/sbin”目录中,只有管理员能执行。 (3)配置文件。一般保存在“/etc”目录中,配置文件较多时会建立相应的子目录。 (4)日志文件。一般保存在“/var/log”目录中 (5)关于应用程序的参考文档等数据。一般保存在“/usrr/share/doc/”目录中。 (6)执行文件及配置文件的man手册页。一般保存在/usr/share/man/”目录中。 3、常见的软件包封装类型 二、RPM包管理工具 RPM Package Manager 由Red Hat公司提出,被众多 Linux发行版所采用 建立统一的数据库文件 详细记录软件包安装、卸载等变化信息 自动分析软件包依赖关系 RPM软件包 软件素材参考 : http://www.rpm.org 一般命名格式:bash-4.1.2-15.el64.x86_64.rpm 三、查询RPM软件包信息 1、查询已安装的RPM软件信息 常见的几个子选项: (1)-qa:显示当前系统中以RPM方式安装的所有软件列表 如图我们执行“rpm -qa | head-5”命令去查看软件列表的前五行。 (2)-qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息(--info) 如图我们在之前软件查看软件列表的基础上执行“rpm -qi +任意一个软件包名称”的命令去查看它的详细信息。 (3)-q1:显示指定的软件包在当前系统中安装的所有目录、文件列表(--list) 如图我们执行“rpm -ql +软件包的名称”的命令来显示该软件包在当前系统中安装的使用目录信息。 (4)-qf:查看指定的文件或目录是由哪个软件包所安装的(--file) 如图我们执行“rpm -qf /usr/bin/vim”的命令去查看vim目录所有那个软件包安装的。 (5)-qc:查看出软件包的配置文件 如图我们执行“rpm -qc +软件包的名称”的命令去查看此软件包的配置文件。 (6)-qd:查看软件包文档手册 如图我们执行“rpm -qd +软件包的名称”的命令去查看此软件包文档手册。 2、查询未安装的RPM软件包文件信息 常用的几个字选项:“-qpi、-qpl、-qpc、-qpd”,这些子选项的使用方法与上述的方法一样操作。 四、安装、升级卸载RPM软件包 1、安装或升级RPM软件包 (1)-i:在当前系统中安装(Install)一个新的RPM软件包。 (2)-e:卸载指定名称的软件包。 (3)-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项。 (4)-F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装。还有几个相关的命令选项,可以用于辅助安装、卸载软件包的过程。 (5)-- force:强制安装某个软件包,当需要替换现已安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项。 (6)--nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。 (7)-h:在安装或升级软件包的过程中,以“#”号显示安装进度。 (8)-v:显示软件安装过程中的详细信息。 五、维护RPM数据库 1、重建RPM数据库 用于记录在 Linux系统中安装、卸载、升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件、非法关机、病毒破坏等导致),且 Linux系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包。这时可以使用rpm命令的“--rebuilddb或“-initdb-”功能对RPM数据库进行重建。 2、导入验证公钥 六、解决软件包依赖关系方法 1、安装有依赖关系的多个软件时 被依赖的软件包需要先安装 可同时指定多个rpm包文件进行安装 2、卸载有依赖关系的多个软件时 依赖其他程序的软件包需要先卸载 可同时指定多个软件名进行卸载 3、忽略依赖关系 结合nodeps”选项,但可能导致软件异常 七、源代码编译 使用源代码安装软件的优点 获得最新的软件版本,及时修复bug 根据用户需要,灵活定制软件功能 应用场合举例 安装较新版本的应用程序时 当前安装的程序无法满足需要时 需要为应用程序添加新的功能时 八、编译安装源代码包 九、编译安装过程 后期会出一些手工编译的文档,届时请来捧场噢,谢谢!