Linux 软件安装

一 Linux 界的两大主流: RPM 与 DPKG

DPKG: 这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息。只要是衍生于Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等

RPM: 这个机制最早是由 Red Hat 这家公司开发出来的,后来实在很好用,因此很多 distributions 就使用这个机制来作为软件安装的管理方式。包括Fedora,CentOS,SuSE等知名的开发商都是用它

distribution代表
软件管理机制
使用指令
在线升级机制(指令)
Red Hat/Fedora
RPM
rpm,rpmbuild
YUM(yum)
Debian/Ubuntu
DPKG
dpkg
APT(apt-get)

本文主要学习RMP相关知识。

二 RPM 与SRPM

RPM 全名是 RedHat Package Manager(红帽软件管理工具),简称则为 RPM。RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制;

SRPM 是什么呢?

顾名思义,它是 Source RPM 的意思,也就是这个 RPM 档案里面含有原始码!特别注意的是,这个 SRPM 所提供的软件内容并没有经过编译,它提供的是原始码

文件格式
文档格式
是否可以直接安装
内含程序类型
是否可修改参数并编译
RPM
xxx.rpm
已编译
SRPM
xxx.src.rpm
未编译之原始码

RPM的优点:

  1. RPM 内含已经编译过的程序与配置文件等数据,可以让用户免除重新编译的困扰;
  2. RPM 在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免档案被错误安装;
  3. RPM 档案本身提供软件版本信息、相依属性软件名称、软件用途说明、软件所含档案等信息,便于了解软件;
  4. RPM 管理的方式使用数据库记录 RPM 档案的相关参数,便于升级、移除、查询不验证。

三 RPM 详细信息

3.1 rpm的文件名5部分含义

第1部分是name,表示这个rpm软件包的名称;

第2部分是version,表示这个rpm软件包的版本编号;

第3部分是release,表示这个rpm软件包的版本发布次数(修正号码);

第4部分是architectures,表示这个rpm软件包适用于哪些平台;

最后一部分是rpm,表示这个rpm软件包的文件扩展名。

3.2 rpm软件安装与移除

命令
含义
-i
安装(Install)软件
-U
升级(Upgrade)旧版本的软件。后面接的软件即使没有安装过,则系统将予以直接安装; 若后面接的软件有安装过旧版,则系统自动更新至新版
-F
升级。如果后面接的软件并未安装到你的 Linux 系统上,则该软件不会被安装;即只有已安装至你 Linux 系统内的软件会被升级
-e
移除/删除(Erase)软件
-v
显示详细的处理信息
-h
显示安装进度。卸载不能用

3.3 查看RPM软件包中的信息

掌握常用的查询已安装的软件包信息的命令。RPM 在查询的时候,其实查询的地方是在 /var/lib/rpm/ 这个目录下的数据库档案!另外, RPM 也可以查询未安装的 RPM 档案内的信息。

命令
含义
-q
仅查询(query),后面接的软件名称是否有安装
-qa
列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi
列出该软件的详绅信息 (information),包括开发商、版本不说明等
-ql
列出该软件所有的档案与目录所在完整文件名 (list);
-qc
列出该软件的所有配置文件 (找出在 /etc/ 底下的檔名而已)
-qd
列出该软件的所有说明文件 (找出与 man 有关的档案而已)
-qR
列出不该软件有关的相依软件所含的档案 (Required 的意思)
-qf
由后面接的文件名,找出该档案属于哪一个已安装的软件

3.4 RPM包的属性依赖性问题

掌握RPM软件包的属性依赖性问题的定义:所谓的RPM软件包的属性依赖性问题,即这个软件包的安装依赖于其他软件包的安装。

四 yum

yum是Yellow dog Updater, Modified的缩写,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装、升级等等工作。

客户端有升级、安装的需求时, yum 会向容器要求清单的更新,等到清单更新到本机的 /var/cache/yum 里面后, 等一下更新时就会用这个本机清单与本机的 RPM 数据库进行比较,这样就知道该下载什么软件。接下来 yum 会跑到容器服务器 (yum server) 下载所需要的软件,然后再透过 RPM 机制开始安装软件,这就是整个流程!

4.1 yum 语法

yum [options] [command] [package ...]
  • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等
  • command:要进行的操作
  • package:操作的对象

4.2 yum常用命令

  1. 列出所有可更新的软件清单命令:yum check-update
  2. 更新所有软件命令:yum update
  3. 仅安装指定的软件命令:yum install <package_name>
  4. 仅更新指定的软件命令:yum update <package_name>
  5. 列出所有可安裝的软件清单命令:yum list
  6. 删除软件包命令:yum remove <package_name>
  7. 查找软件包命令:yum search <keyword>
  8. 清除缓存命令:
    • yum clean packages:清除缓存目录下的软件包
    • yum clean headers:清除缓存目录下的 headers
    • yum clean oldheaders:清除缓存目录下旧的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

4.3 国内 yum 源

网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。

将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。

安装步骤

首先备份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo CentOS-Base.repo

运行以下命令生成缓存

yum clean all
yum makecache
posted @ 2020-03-17 16:03  Joe1991  阅读(144)  评论(0)    收藏  举报