Linux 安装和管理程序

导图

 

 

1.linux应用程序基础

linux源码包:

源码包实际上就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的

linux二进制包:

二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同 Windows下安装软件速度相当),且安装过程报错几率大大减小。

源码包和rpm二进制包

源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,Linux 中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为 Tarball。

使用源码包安装软件得好处:

  • 开源。如果你有足够的能力,则可以修改源代码。

  • 可以自由选择所需的功能。

  • 因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。

  • 卸载方便。

使用源码包安装软件的不足:

  • 安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。

  • 编译时间较长,所以安装时间比二进制安装要长。

  • 因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决

 rpm二进制包:

  • 考虑到用户安装软件的难度

  • 厂商直接 将包做成二进制方便使用

2.应用程序和系统命令的关系

比较不同 系统命令 应用程序
位置 linux内一切皆文件,内部和外部 应用程序位置
用途 命令主要处理系统的基本操作(复制,配置) 可以完成独立的任务浏览器访问网页
使用环境 字符界面 字符和桌面
格式 命令 [选项]  参数 无固定程序

 

3.典型应用程序的目录结构

文件类型保存目录
普通执行程序文件 /usr/bin
服务器执行程序文件和管理程序文件 /usr/sbin
应用程序配置文件 /etc
日志文件 /var/log
应用程序参考文档文件 /usr/share/doc

4.常见的软件包封装类型

文件类型保存目录
RPM软件包 扩展名为“.rpm”
DEB软件包 扩展名为“.deb”
源代码软件包 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码
绿色免安装的软件包 软件包的扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用

 

  • RPM包 : RPM Package Manager的缩写 是红帽公司自主研发的一款工具,实用性强。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在相互依赖的情况。

  • DEB包:在Linux系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。此外,deb广泛应用于越狱后iOS软件及MeeGo(含Maemo软件)中。Debian包是将包的文件信息以及包内容,经过gzip和tar打包而成。

  • 源代码软件包 :是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。

  • 绿色免安装的软件包 :顾名思义,比如Windows的截图软件

5.RPM包管理工具

Red-Hat Package Manager

由Red Hat公司提出,被众多Linux发行版所采用

建立统一的数据库文件(一张对应表将信息写入)

详细记录软件包安装、卸载等变化信息

自动分析软件包依赖关系

RPM软件包 软件素材参考:http://www.rpm.org

5.1一般命名格式

bash-4.1.2-15.el6_4.x86_64.rpm

bash shell环境      版本信息 4.1.2 15发布次数     x86_64硬件(为“i386”或“i686”等)

5.2拆包后的分类

 

 

 

5.3程序包管理器相关文件

1.包文件组成 (每个包独有)

  • 包内的文件

  • 元数据,如:包的名称,版本,依赖性,描述等

  • 可能会有包安装或卸载时运行的脚本

 

2.数据库(公共):/var/lib/rpm (安装好后会将一些公共的数据放入数据库中)

 

  • 程序包名称及版本

  • 依赖关系

  • 功能说明

  • 包安装后生成的各文件路径及校验码信息

包数据库(安装卸载都需要)
[root@localhost /]# ll /var/lib/rpm
总用量 85752
-rw-r--r--. 1 root root  3792896 9月  27 18:40 Basenames
-rw-r--r--. 1 root root    16384 9月  25 17:29 Conflictname
-rw-r--r--. 1 root root   286720 9月  27 18:40 __db.001
-rw-r--r--. 1 root root    90112 9月  27 18:40 __db.002
-rw-r--r--. 1 root root  1318912 9月  27 18:40 __db.003
-rw-r--r--. 1 root root  1118208 9月  27 18:40 Dirnames
-rw-r--r--. 1 root root    32768 9月  27 18:40 Group
-rw-r--r--. 1 root root    20480 9月  27 18:40 Installtid
-rw-r--r--. 1 root root    69632 9月  27 18:40 Name
-rw-r--r--. 1 root root    32768 9月  27 18:40 Obsoletename
-rw-r--r--. 1 root root 78053376 9月  27 18:40 Packages
-rw-r--r--. 1 root root  2396160 9月  27 18:40 Providename
-rw-r--r--. 1 root root   499712 9月  27 18:40 Requirename
-rw-r--r--. 1 root root   131072 9月  27 18:40 Sha1header
-rw-r--r--. 1 root root    73728 9月  27 18:40 Sigmd5
-rw-r--r--. 1 root root     8192 9月  27 18:40 Triggername

软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包

安装软件包时,会因为缺少依赖的包,而导致安装包失败。

5.4 获取途径

红帽官方,第三方,软件项目官方站点,自己制作。

6.rpm命令格式

RPM软件可以实现几乎所有的功能,新增,删除,更新等

6.1查询

格式:

rpm   [选项]   软件名

选项:

选项功能效果
rpm -qa(all) 显示当前系统中以 RPM 方式安装的所有软件列表
rpm -q 软件名 查询指定软件是否已安装
rpm -qi 软件名 查看指定软件包的名称、版本、许可协议、用途描述等详细信息
rpm -ql(list) 软件名 显示指定的软件包在当前系统中安装的所有目录、文件列表
rpm -qc (configfiles ) 软件名 列出已安装的指定软件的配置文件
rpm -qd(docfiles) 软件名 列出已安装的指定软件的软件包文档所在位置
rpm -qR (requires) 软件名 列出已安装的指定软件的依赖的软件包及文件
rpm -qf(file) 软件名 查看指定的文件或目录是由哪个软件包所安装的
rpm-qpd 查询未安装指定软件包的文档位置
rpm -qpi 查询未安装指定软件包的完整名称详细信息
rpm -qpl 查询未安装指定软件包的文件列表
rpm -qpc 查询未安装指定软件包的配置文件位置

 

6.2挂载

格式:

mount      挂载的设备       挂载的文件夹路径   (已存在的空文件夹,非空文件夹原来的文件会被隐藏)   

挂载的规则:

  • 一个挂载点同一时间只能挂载一个设备
  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个挂载设备的数据,其它设备上的数据将被隐藏
  • 一个设备可以同时挂载到多个挂载点
  • 通常挂载点一般是已存在空的目录

6.3安装升级卸载

格式:

rpm    [选项]    rpm软件包

选项:

选项效果
-i 安装一个新的RPM软件包
-U 升级某个软件包,若未安装过则进行安装
-F 升级某个软件包,若未安装过则直接结束
-h 在安装或升级过程中已#号显示读条
-v 显示安装过程的详细信息
--force 强制安装某个软件包
-e 软件名 卸载指定的软件
--nodeps 在安装或升级、卸载一个软件包时,不检查与其他包的依赖关系

 

安装的路径:

安装路径含 义
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置

 

6.4维护RPM 数据库

1.重建RPM数据库

当RPM 数据库发生损坏,可通过 重建RPM 数据库 修复

rpm --rebuild 或者 rpm --initdb

2.导入验证公钥

在没有导入用于数字签名验证的公钥之前,安装光盘中的一部分RPM 包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件。

7.编译安装

大部分是c语言开发的,更方便的使用

  1. 软件版本比较新,新功能,修复bug

  2. 可以自行定义配置文件的路径

  3. 源码可能有100个功能,红帽认为你可能不需要会自行处理砍掉,自行定制50

程序包编译安装:

源代码-->预处理-->编译-->汇编-->链接-->执行

多文件:文件中的代码之间,很可能存在跨文件依赖关系

编译安装小脚本

 

8.yum安装

YUM(Yellow dog Updater,Modified)

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间

yum   install   命令      -y      //下载命令   
yum   install   软件名    -y  //下载软件,自动解决依赖关系

 

 

posted @ 2022-10-04 13:11  索罗大魔王  阅读(72)  评论(0编辑  收藏  举报