Linux系统配置(应用程序)


前言

     在Linux中的应用程序被视为将软件包安装到系统中后产生的各种文档,其中包括可执行文件、配置文件、用户手册等内容,这些文档被组织为一个有机的整体,为用户提供特定的功能,因此对于“安装软件包”与“安装应用程序”这两种说法,并不做严格的区分

一、应用程序概述

1、命令与程序的关系

     在Linux操作系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看可以通过以下描述来对两者进行区别

  • 应用程序命令的执行文件大多比较小,通常放置在/bin和/sbin目录中,对于内部命令常集成在Bash程序内,而不是独立地执行文件,命令文件一般在安装操作系统时一起安装,用于辅助操作系统本身的管理,命令行大多适用于“命令字 选项 参数”形式的一般格式,命令只在字符操作界面中运行
  • 应用程序的执行文件通常放在/usr/bin、/usr/sbin和/usr/local/bin、/usr/local/sbin中,应用程序一般需要在操作系统之外另行安装,提供相对独立于操作系统的功能,有时候等同于“软件”的概念,应用程序一般没有固定的执行格式,运行方式由程序开发者自行定义,应用程序可能会用到图形界面,形式多样,有些应用程序提供的执行文件,能够使用像Linux命令一样的运行格式,所以也经常被称为程序命令

2、程序的组成

     安装完一个软件包以后,可能会向系统中复制大量的数据文件,并进行相关设置,在Linux操作系统中,典型的应用程序通常由以下几部分组成

  • 普通的可执行程序文件:一般保存在/usr/bin目录中,普通用户即可执行
  • 服务器程序、管理程序文件:一般保存在/usr/sbin目录中,只有管理员能执行
  • 配置文件:一般保存在/etc目录中,配置文件较多时会建立相应的子目录
  • 日志文件:一般保存在/var/log目录中
  • 关于应用程序的参考文档等数据:一般保存在/usr/share/doc/目录中
  • 执行文件及配置文件的man手册页:一般保存在/usr/share/man/目录中

3、软件包封装类型

     对于各种应用程序的软件包,在封装时可以采用各种不同的类型,不同类型的软件包其安装方法也各不相同,常见的软件包封装类型如下

  • RPM软件包:这种软件包文件的扩展名为“.rpm”,只能在使用RPM(RPM Package Manager, RPM软件包管理器)机制的Linux操作系统中安装,如RHEL、Fedora、CentOS等,RPM软件包一般针对特定版本的操作系统量身定制,因此依赖性较强,安装RPM软件包可使用操作系统中的rpm命令
  • DEB软件包:这种软件包文件的扩展名为“.deb”,只能在使用DPKG(Debian Package,Debian包管理器)机制的Linux操作系统中进行安装,如Debian、Ubuntu等,安装DEB软件包可使用操作系统中的dpkg命令
  • 源代码软件包:这种软件包是程序员开发完成的原始代码,一般被制作成“.tar.gz”或“.tar.bz2”等格式的压缩包文件,因多数使用tar命令打包而成,所以经常被称为“TarBall”,安装源代码软件包需要使用相应的编译工具,如Linux中的C语言编译器gcc,因此,在安装操作系统的时候尽量勾选“开发工具”一项来安装基本的编译环境
  • 附带安装程序的软件包:这种软件包的扩展名不一,但仍以TarBall格式的居多,软件包中会提供用于安装的可执行程序或脚本文件,如install、 sh、 setup等,有时候会以“.bin”格式的单个安装文件形式出现,安装时只需运行安装文件就可以根据向导程序的提示完成安装操作

     开放源代码的*软件绝大多数选择以TarBall的形式发布,而RPM软件包、DEB软件包等则使了二进制的文件格式,代码相对比较封闭

二、RPM

1、RPM概述

     RPM软件包管理机制最早由Red Hat公司提出,后来随着版本的升级逐渐融入更多的优秀特性,成为众多Linux发行版中公认的软件包管理标准,使用RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用 “软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm” 的文件名形式

2、RPM用法

rpm 选项
rpm -qa 显示系统中以rpm方式安装的所有软件列表
rpm -q 软件包名称 查看某个安装包是否安装
rpm -qi 软件包名称 查看指定软件包详细信息
rpm -ql 软件包名称 显示软件包安装后所在的目录及文件列表
rpm -qf 文件或目录名 查看文件或目录是由哪个软件包安装的
rpm -ivh 软件包名称 以rpm方式安装软件(不推荐,还要装依赖包,推荐使用yum)
rpm -qp 查询未安装软件
rpm -e 软件包名称 卸载安装包
rpm -U 软件包名称 升级安装或新安装
rpm -F 软件包名称 升级安装,未安装则不安装
rpm -h 软件包名 显示安装进度
rpm -v 软件包名 显示安装过程详细信息
rpm --force 软件包名 强制安装,旧版本安装
rpm --nosignature 安装时不检查密钥

三、编译安装

     以安装httpd为例

1、解包

解压依赖包sj.tar.gz
yum install 依赖包内软件包名称
yum install gcc gcc-c++ make pcre-devel expat-devel perl pcre-devel.x86_64 apr-util-devel.x86_64
解压httpd包
tar zxf httpd.tar.gz -C /usr


2、配置

httpd包解压到usr目录下后会有解压后的httpd目录,进入解压后的该目录进行后续配置
cd /usr/httpd
./configure --prefix=/指定安装参数文件位置

3、编译

make

4、安装

make install

5、启用httpd服务

cd /参数安装位置/bin
./apachectl

结语

     大多数的Linux发行版都提供了相当丰富的应用程序,而这些程序的版本往往滞后于该软件的最新源代码版本,因为大多数的开源软件总是以源代码的形式最先发布,之后才会逐渐出现.rpm、.deb等二进制封装的版本,下载应用程序的最新源代码包并编译安装,可以在程序功能、安全补丁等方面得到及时更新

上一篇:基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题


下一篇:中高级前端应该必会,js实现事件委托代理、切换样式、元素获取相对于文档位置等