Linux 包管理工具学习笔录(apt、yum)

谨遵BOSS指令,本周学习包管理工具。选择从aptyum入手。

下面从常见命令,环境(Ubuntu 16.04CentOS 6.8)等来看两者的异同。

首先新手(如我)从Windows到开始跑Linux时,装东西总是照着那几个命令敲,会想(软件包是什么玩意?安装时是在哪下载资源的?)

Linux中所谓包:大多数现代的类Unix操作系统(Linux)中软件通常分布的形式。软件包通常包含编译的二进制文件和其他软件组成资源,包括安装脚本。包还包含有价值的元数据,以及它们的依赖(安装和运行它们所需的其他包的列表)。(Ubuntu下包格式为.deb CentOS下则是.rpm)

包管理工具的源:没错你通过包管理工具安装的包就是在这下载的,其实就是一个镜像服务器的链接列表。系统默认的源服务器都是国外的(如果你是买的ECS很有可能是运营商的,例如某云),国内使用可能速度比较慢,可以通过修改配置文件,将其改为国内更快的镜像服务器,例如中科大、网易的开源镜像。

我们来以配置阿里云开源镜像为例:

Ubuntu下源配置文件位置 /etc/apt/sources.list.d/(或是sources.list

deb-src http://mirrors.aliyun.com/ubuntu xenial main restricted  
deb-src http://mirrors.aliyun.com/ubuntu xenial universe  
deb-src http://mirrors.aliyun.com/ubuntu xenial multiverse  
deb-src http://mirrors.aliyun.com/ubuntu xenial-updates main restricted  
deb-src http://mirrors.aliyun.com/ubuntu xenial-updates universe  
deb-src http://mirrors.aliyun.com/ubuntu xenial-updates multiverse
deb-src http://mirrors.aliyun.com/ubuntu xenial-security main restricted  
deb-src http://mirrors.aliyun.com/ubuntu xenial-security universe  
deb-src http://mirrors.aliyun.com/ubuntu xenial-security multiverse
deb http://mirrors.aliyun.com/ubuntu xenial main restricted  
deb http://mirrors.aliyun.com/ubuntu xenial universe  
deb http://mirrors.aliyun.com/ubuntu xenial multiverse  
deb http://mirrors.aliyun.com/ubuntu xenial-updates main restricted  
deb http://mirrors.aliyun.com/ubuntu xenial-updates universe  
deb http://mirrors.aliyun.com/ubuntu xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu xenial-security main restricted  
deb http://mirrors.aliyun.com/ubuntu xenial-security universe  
deb http://mirrors.aliyun.com/ubuntu xenial-security multiverse

deb或者deb-src,分别表示直接通过.deb文件进行安装和通过源码的方式进行安装(无需编译推荐.deb)

http://mirrors.aliyun.com/ 源地址,此处用的阿里云开源镜像

xenial-版本代号,各个Ubuntu版本代号各不同(详见参考资料)

main、restricted、universe、multiverse-为软件包自由度
备份原配置文件后,修改完成并执行apt-get update将从新的服务器下载包

CentOS下源配置文件分为两部分

  1. 全局配置文件/etc/yum.conf,其中的[main]部分定义了全局配置选项。
  2. 各个源/服务器的具体配置,可以有一到多个. 常位于/etc/yum.repo.d/目录下的各文件。我们需要进行修改配置的正是其中的CentOS-Base.repo

CentOS-Base.repo 是yum网络源的配置文件

[base]
name=CentOS-$releasever - Base  
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra  
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1  
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[]中是用于区别各个不同的repository,必须有一个独一无二的名称

name-对repository 的描述,支持像$releasever $basearch这样的变量

mirrorlist - 镜像站点

baseurl -服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。后面可以跟很多url,但是只能有一个baseurl,上图默认已被注释。

gpgcheck - RPM的数字证书是否生效 ,1则是生效
gpgkey - 数字证书的公钥文件保存位置

$releasever:代表发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断.
$arch:cpu体系,如i686,athlon等
$basearch:cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha.

 
配置过程很简单,先将原配置文件备份(好习惯),再将默认的mirrorlist加#注释掉,并将baseurl去注释后域名那部分换上中科大开源镜像http://mirrors.ustc.edu.cn/ 即可。配置完成后使用命令更新操作

yum makecache
#把服务器的包信息下载到本地电脑缓存起来

 

常见命令(sudo 就不说了):

安装包:

  • apt:

    apt-get install 包名
  • yum:

    yum install 包名
  • 删除包:*

  • apt:

    apt-get remove 包名apt-get autoremove 自动删除孤立组件
  • yum:

    yum remove 包名
  • 查询包:*

  • apt:

    apt-cache search 关键字
    apt-cache show 包名
  • yum:

    yum list  包名
    yum info  显示
    yum search 关键字
  • 更新包:*

  • apt

    apt-get update 包名
    apt-get upgrade 包名 更新已安装包
  • yum

    yum update 包名yum check-update 检查可用更新

    详细还是得靠man命令大法(英文也得忍着痛看,不过想看中文版需另外下包安装)

查考资料:yum配置全解 软件包管理基础知识 source.list配置及版本代号

觉得不错不妨打赏一笔