Linux软件安装管理的三种方式——源码安装/deb/rpm/yum/apt

Linux软件安装管理的三种方Linux软件安装管理的三种方式

Linux下常规的安装方式有三种,源码安装,二进制安装,在线使用yum和apt工具安装,三种方式各有优劣。下面逐步讲解Debian和RedHat系列的三种安装方式。

一、源码安装

源码,即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包)。源代码分发提供了软件所有程序源代码,需要用户自己编译成可执行的二进制代码并进行安装,根据应用环境的不同进行编译安装。
特点:

  • 可以获取最新代码,及时修复bug
  • 配置灵活,可以随意去掉或保留某些功能/模块
  • 适应多种硬件/操作系统平台及编译环境
  • 难度较大

1. *.tar.gz/*.tgz、*.bz2形式的源代码软件包

命令步骤:

不指定前缀,安装后

  • 可执行文件默认放在/usr/local/bin
  • 库文件默认放在/usr/local/lib
  • 配置文件默认放在/usr/local/etc
  • 其它的资源文件放在/usr/local/share

卸载:

注意事项:

  • 建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置
  • 为了便于删除移植,建议,指定软件将要安装到目标路径,这样最后删除或者移动目录名,即可操作便捷干净

2. *.src.rpm形式的源代码软件包

需要先将源代码编译生成rpm二进制包,再以rpm二进制包的形式安装(参二2)
:编译源文件,并在
卸载方式参考rpm二进制安装

注意事项:

  • 如果缺少编译软件,则可以通过在线安装
  • 安装的同时,一定要想好如何卸载干净

计算机编译的原理

2. rpm使用手册

1)软件安装(install)

rpm参数说明(后面括 内为英文说明):

  • -i:install的意思,安装
  • -v:查看更详细的安装信息画面(provide more detailed output)
  • -h:以安装信息栏显示安装进度
    如果想安装多个用空格间隔然后接上要安装的rpm包即可,同时也支持通过 址的资源来安装。
2)软件升级

参数说明(后面括 内为英文说明):

  • -U:upgrade的意思,更新软件,若系统中没有该软件则进行安装(upgrade package(s))
  • -F:freshen的意思,更新系统已安装的某个软件(upgrade package(s) if already instaalled)
3)查询

RPM在查询的时候,其实查询的地方是/var/lib/rpm/这个目录下的数据库文件。
另外,RPM也可以查询未安装的RPM文件内的信息。

注意:在查询的部分,所有的参数之前都要加上-q才是所谓的查询
常用参数说明(后面括 内为英文说明):

  • -a:all,列出已经安装在本机的所有软件(Query all instaled packages.)
  • -p:package,查询一个RPM文件的信息(Query an (uninstalled) package. )
  • -f:file,由后面接的文件名称找出该文件属于哪狐假虎威已安装的软件(Query package owning file.)
  • -i:information,列出该软件的详细信息,包含开发商、版本与说明等(Display package information, including name, version, and description.)
  • -l:list,列出该软件所有的文件与目录所在完整文件名(List file in package)
  • -c:configuration,列出该软件的所有设置文件(找出在/etc/下面的文件名而已)(List only configuration files)
  • -d:documentation,列出该软件所有的帮助文档(List only documentation files)
  • -R:required,列出与该软件有关的依赖软件所含的文件(List capabilities on which this depends.)

使用场景
a. 查询你的Linux是否有安装某个软件:
b. 查询属于该软件所提供的所有目录与文件:

  • 仅列出该软件的所有设置文件:
  • 仅列出该软件的所有帮助文档:

c. 列出gcc这个软件的相关数据说明:
d. 找出/bin/sh是由哪个软件提供的:
e. 假设我有下载一个RPM文件,包名为wget-1.19.1-3.fc27.aarc64.rpm,想要知道该文件的需求文件

4)卸载

使用rpm的卸载过程一定要由最上层往下卸载,不过很常发生软件属性依赖导致无法使用某些软件的问题。

3. deb和dpkg

简介

dpkg – package manager for Debian (debian系统的包管理工具)。
dpkg是Debian的一个底层包管理工具,主要用于对已下载到本地和已安装的软件包进行管理。

dpkg这个机制最早由Debian Linux 区所开发出来的,通过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时能提供安装后的软件信息,实在非常不错。只要派生于Debian的其它Linux distributions大多使用dpkg这个机制来管理,包括B2D,Ubuntu等。

优缺点

deb包的含义

格式为:

如:

  • 软件包名称(Package Name): nano
  • 版本(Version Number):1.3.10
  • 修订 (Build Number):2
  • 平台(Architecture):i386

dpkg软件包相关文件介绍

dpkg包管理软件的配置文件
dpkg包管理软件的日志文件
存放系统所有安装过的软件包信息
存放系统现在所有安装软件的状态信息
记安装软件包控制目录的控制信息文件

dpkg数据库

  • 在 status 文件中存储软件状态和控制信息。
  • 在 info/ 目录下备份控制文件
    • 在info/.list 文件中记录安装文件清单
    • 在info/.mdasums 保存文件的 MD5 编码。

例:查询dpkg数据库(显示所有已安装的Deb包)

YUM的配置文件

1)容器说明

yum从系统站点镜像拉取软件相关信息,一般来说这个源是就近配置,越近越快。就像是 购,国内购的速度总比海购要快得多。

系统站点镜像的配置说明:

CentOS的镜像站点(http://ftp.twaren.net/Linux/C…)后,就会发现里面有一堆链接,那些链接就是这个yum服务器所提供的容器了,包括centosplus、extras、fasttrack、os、updates等容器,最好认的就是os(系统默认的软件)与updates(软件升级版本)。

在yum服务器的容器里面,最重要的一个目录就是那个“repodata”,该目录是分析RPM软件后所产生的软件依赖数据放置处。因此,当你找到容器所在 址时,最重要的就是该 址下面一定要有一个名为“repodata”的目录存在,那就是容器的 址了。

下面都是以我的主机为例:CentOS 7.4.1708

2)容器查询

![yum repolist all]](https://img-blog.csdnimg.cn/20210224183222481.png” />

只有当最右边的status为enabled该容器才算激活

/etc/yum.repos.d/里面会有多个配置文件(文件名以.repo结尾),yum会从里面逐个查找,所以里面的容器名称不能有重复。

3)配置文件修改

apt相关文件

文件的内容是软件包的描述信息, 该软件包括当前系统所使用的Debian 装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.
记录软件源的地址(当你执行 时,Ubuntu 就去这些站点下载软件包到本地并执行安装)
已经下载到的软件包都放在这里(用 安装软件时,软件包的临时存放路径)
使用apt-get update命令会从中下载软件列表,并保存到该目录

配置源

![/etc/apt/sources.list]](https://img-blog.csdnimg.cn/20210224183325193.png)
文件里面都是一些 址信息,这每一条 址就是一个源,这个地址指向的数据标识着这台源服务器上有哪些软件可以安装使用。

镜像服务器的存放位置如:


参考:
Linux软件安装管理之——源码安装详解
Linux软件安装管理之——dpkg与apt-*详解
Linux软件安装管理之——RPM与YUM详解
Ubuntu下安装软件的三种方式
Ubuntu : apt 命令

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月21日
下一篇 2021年1月21日

相关推荐