背景
安装软件经常用到RPM,默认的源里面内容非常有限,在安装一些特殊软件的时候,需要自己制定源,例如Gitlab-ce,Gogs等。
然而,源是个什么鬼,我从没搞明白过。借助安装Gogs的机会学习下。
安装Gogs必须执行下面的指令:
sudo rpm --import https://rpm.packager.io/key
echo "[gogs]
name=Repository for pkgr/gogs application.
baseurl=https://rpm.packager.io/gh/pkgr/gogs/centos7/pkgr
enabled=1" | sudo tee /etc/yum.repos.d/gogs.repo
sudo yum install gogs
执行成功,yum就安装到你的电脑中啦~
基本概念
RPM
全称:Red Hat Package Manager,后来不止Red Hat使用,修改为递归定义:RPM Package Manager。
- RPM文件,本质类似zip文件,就是把一堆相关的内容聚合到一起,便于分发。
- RPM工具,能够识别RPM文件格式,具备安装、卸载、升级和管理软件的能力,可以把它理解成【软件程序+数据仓库】的集合。
YUM
全称 Yellow-dog Updater, Modified,RPM包管理器外围工具,服务于SUSE、Fedoral、CentOS、RedHat的平台。主要特点:
- 它基于RPM包管理器
- 能够自动下载依赖包
- 可以指定多个RPM仓库
RPM仓库
看三个仓库的例子,一个是为了下载gitlab、一个是为了下载gogs、一个是系统自带的DVD仓库。可见,抽象地看,RPM仓库就是告诉RPM软件去哪些地方搜索下载、更新软件,可以是网络上,可以是DVD光盘上,甚至可以是本地的某个目录下,架构非常灵活。
[raywill@CloudY gogs]# cat /etc/yum.repos.d/gogs.repo
[gogs]
name=Repository for pkgr/gogs application.
baseurl=https://rpm.packager.io/gh/pkgr/gogs/centos7/pkgr
enabled=1
[raywill@CloudY gogs]# cat /etc/yum.repos.d/gitlab_gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
[raywill@CloudY gogs]# cat /etc/yum.repos.d/CentOS-Media.repo
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-6. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c6-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c6-media [command]
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
再看#背景#一节中的那段脚本:
sudo rpm --import https://rpm.packager.io/key
echo "[gogs]
name=Repository for pkgr/gogs application.
baseurl=https://rpm.packager.io/gh/pkgr/gogs/centos7/pkgr
enabled=1" | sudo tee /etc/yum.repos.d/gogs.repo
sudo yum install gogs
它实际就是创建了gogs.repo文件,然后就能用 yum 安装软件了。
应用
阿里云预装的yum仓库内容特别有限,经常各种软件搜不到。我们通过自己增加yum仓库,就能很好滴解决这个问题。这里列出了不少国内可用的仓库地址: http://www.linuxfly.org/post/586/