文章目录
前言
在主机中安装了Linux操作系统之后,就具备了提供软件服务,网络服务等功能的基础。然而随着操作系统一起安装的软件包毕竟只有少数,实现的功能也比较有限,当需要为主机提供更多功能时,安装新的应用程序就成为必然要面对的工作。
一、Linux应用程序基础
1.1应用程序与系统命令的关系
角色 | 系统命令 | 应用程序 |
---|---|---|
文件位置 | 一般在/bin和/sbin目录中,称为Shell内部指令 | 通常在/usr/local目录中 |
主要用途 | 完成对系统的基本管理工作,如IP配置工具(ipconfig) | 完成相对独立的其他辅助任务,如网页浏览器 |
适用环境 | 一般只在字符操作界面中运行 | 根据实际需要,有些程序可以在图形界面中运行 |
运行格式 | 一般包括命令字,命令选项和命令参数 | 通常没有固定的执行格式 |
1.2典型应用程序的目录结构
文件类型 | 保存目录 |
---|---|
普通执行程序文件 | /usr/bin(管理员和其他用户都可以使用) |
服务器执行程序文件和管理程序文件 | /usr/sbin(仅管理员使用) |
应用程序配置文件 | /etc(应用程序配置文件默认路径) |
日志文件 | /var/log(可变长文件存放位置) |
应用程序文档文件 | /usr/share/doc(一般都是一些说明文档在此) |
应用程序手册页文件 | /usr/share/man(man手册可以查看命令帮助信息和程序帮助信息) |
1.3常见的软件包封装类型
文件类型 | 保存目录 |
---|---|
rpm软件包 | 一键安装,扩展名为“.rpm”只能在使用RPM(RPM Package Manager,RPM软件包管理器)机制的Linux操作系统中安装,如RHEL,Fedora,CentOS等 |
deb软件 | 扩展名为“.deb”只能在使用DPKG(Debian Package,Debian包管理器)机制的Linux操作系统中进行安装,如Debian,Ubuntu等 |
源代码软件包 | 一般为“.tar.gz”,“.tar.bz2”等格式的压缩包,这种软件包是程序员开发完成的原始代码,因多数使用tar命令打包而成,所以经常被称为“TarBall”。安装源码软件包需要使用相应的编译工具,如Linux中的C语言编译器gcc |
绿色免安装的软件包 | 在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用。免安装,硬盘版,直接用 |
二、RPM软件包管理工具
2.1简单介绍
RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
它是一种用于互联网下载包的打包及安装工具,它生成具有.RPM扩展名的文件。建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,自动分析软件包依赖关系。
软件素材参考: http://www.rpm.org
RPM软件包一般命名格式:
2.2rpm命令的格式
- rpm命令能够实现几乎所有对RPM软件包的管理功能
- 执行"man rpm"命令可以获得关了Frpm命令的详细帮助信息
概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。
语法格式:rpm [参数] [软件包]
常用参数
-a | 查询所有的软件包 |
---|---|
-b或-t | 设置包装套件的完成阶段,并指定套件档的文件名称 |
-c | 只列出组态配置文件,本参数需配合”-l”参数使用 |
-d | 只列出文本文件,本参数需配合”-l”参数使用 |
-e或–erase | 卸载软件包 |
-f | 查询文件或命令属于哪个软件包 |
-h或–hash | 安装软件包时列出标记 |
-i | 显示软件包的相关信息 |
–install | 安装软件包 |
-l | 显示软件包的文件列表 |
-p | 查询指定的rpm软件包 |
-q | 查询软件包 |
-R | 显示软件包的依赖关系 |
-s | 显示文件状态,本参数需配合”-l”参数使用 |
-U或–upgrade | 升级软件包 |
-v | 显示命令执行过程 |
-vv | 详细显示指令执行过程 |
参考示例
#########查询 bash########
[root@localhost opt]# rpm -q bash
bash-4.2.46-28.el7.x86_64
或者
[root@localhost opt]# rpm -qa |grep bash
bash-4.2.46-28.el7.x86_64
bash-completion-2.1-6.el7.noarch
#####查询文件或目录属于哪个RPM软件####
[root@localhost opt]# which vim
/usr/bin/vim
######查看ethtool软件详细信息###名称 版本 作者等
[root@localhost Packages]# rpm -qpi ethtool-4.8-1.el7.x86_64.rpm
########安装后显示文件列表####
[root@localhost Packages]# rpm -qpl ethtool-4.8-1.el7.x86_64.rpm
####安装lynx软件包####
root@localhost Packages]# rpm -ivh /mnt/Packages/lynx-2.8.8-0.3.dev15.el7.x86_64.rpm
#####卸载lynx软件包####
[root@localhost Packages]# rpm -e lynx
在日常使用中可能会碰到RPM数据库损坏的情况,我们可以重建rpm数据库
rpm --rebuilddb
或
rpm --initdb
三、源代码编译安装
3.1源代码编译安装概述
- Linux操作系统之所以能够在十余年的时间里发展壮大以至于风靡全球,其开放源代码的特性是很重要的原因之一,及Linux操作系统中包括内核在内的所有软件都可以获得源代码,并且可以经过定制修改后编译安装。
- 虽然现代的Linux发行版本大部分采用包管理机制对软件进行打包安装,可以省去软件的编译安装过程,但是还有些情况需要使用源代码编译的方式为系统安装新的应用程序。
安装较新版本的应用程序时
大多数的Linux发行版都提供了相当丰富的应用程序,而这些应用程序的版本往往滞后于该软件的最新源代码版本,所以下载应用程序的最新源代码包并编译安装,可以在程序功能,安全补丁等方面得到及时更新
当前安装的程序无法满足应用需求时
对于RPM格式封装的应用程序,一般只包含了该软件所能实现的一小部分功能,而难以由用户自行修改,定制。通过对程序的源代码进行编译安装后,可以定制更灵活,更丰富的功能。许多Linux服务器程序都采用源代码编译的方式进行安装,以获得更适合于企业实际应用需求的服务
为应用添加新的功能时
当需要利用现有的程序源代码进行适当的修改,以便增加新的功能时,必须释放出该软件的源代码,修改后再重新编译安装
使用源代码安装软件的优点
获得最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能
编译源代码需要有相应的开发环境,对于自由软件来说,gcc和make是最佳的编译工具。Linux系统采用默认安装后没有安装gcc,我们可以使用rpm命令来安装gcc,所需的软件包在镜像文件中就有提供。