谨遵BOSS指令,本周学习包管理工具。选择从apt
、yum
入手。
下面从常见命令,环境(Ubuntu 16.04
、CentOS 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下源配置文件分为两部分
- 全局配置文件
/etc/yum.conf
,其中的[main]部分定义了全局配置选项。 - 各个源/服务器的具体配置,可以有一到多个. 常位于
/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
命令大法(英文也得忍着痛看,不过想看中文版需另外下包安装)