CentOS(以及红帽系列)都有yum软件源的概念,即在终端通过命令可以直接从软件源下载软件并安装。除了网络上的软件源(如网易、搜狐、中科大镜像)外,我们也可以使用下载好的CentOS镜像来作为软件源。它包含了大部分常用软件,而在我们安装CentOS系统的时候,很多时候是选择性安装的,所以并没有把所有的软件安装到系统中。
因为很多人是在虚拟机里配置Linux的,所以这里介绍一些如何在virtualbox中配置CentOS本地磁盘镜像作为其软件源。学会了这个,即使不是虚拟机,就是在实体机上安装的CentOS,你也会配置你光驱里的磁盘作为yum软件源了。
准备工作
- 下载VirtualBox软件和CentOS的磁盘镜像(.iso文件)
- 在VirtualBox虚拟机中安装好CentOS,安装步骤不叙述。
开始配置
操作1 打开虚拟机设置
- 打开你的VirtualBox软件(主要先不要打开CentOS系统)。选中你的虚拟机后,点击上面的“设置”
- 点击左侧的“存储”
操作2 添加磁盘镜像iso
可以看到这里的存储树。有两类控制器IDE和SATA,这是模拟的主板上的两种接口。在SATA的控制器的centos.vdi就是虚拟的硬盘,我们安装好的系统就在它上面。理论上来说我们的磁盘镜像iso文件可以添加到任何一种接口上,但是因为我们已经安装好了系统,如果我们把iso文件添加到控制器IDE下面,那么当我们再次打开centos系统的时候,将会变成重新安装系统。因为这里的存储盘片的顺序也是虚拟机启动存储设备的顺序(镜像iso在硬盘centos.vdi之前),就好比我们用U盘给实体机装系统的时候,要设置U盘启动一样。所以我们要把iso文件添加到centos.vdi之后
- 点击控制器SATA后面的添加虚拟光驱图标
- 在打开的文件管理器对话框中选择你的iso文件
操作3 启动CentOS虚拟机
打开之后,登录进去。再打开终端。这里不赘述。我安装的centos是没安装图形界面的,所以我直接操作。
操作4 开始配置软件源
1. 用lsblk命令查看一下,光驱的位置
可以看到那个3.9G的就是我们的磁盘iso文件。所以它对应的sr1就是磁盘所在光驱的位置(/dev/sr1)
在实体机中配置的时候,很多时候我们不去查看lsblk的结果。就认作是/dev/cdrom,虚拟机中则会有问题。我们来用命令ll /dev/cdrom来看一下
可以看到/dev/cdrom实际上是sr0的符号链接。而我们虚拟中光驱的位置是sr1
2. 创建挂载点目录
我们要使用光驱里的镜像文件,需要被它挂载到当前系统上。这个挂载位置称为挂载点,通常是在 /mnt/ 或者 /media/ 目录下,创建一个子目录
mkdir /mnt/cdrom #在/mnt下创建目录cdrom
3. 设置开机自动挂载
通常情况下,我们用mount命令来手动挂载光驱到/mnt/cdrom目录下,但是这样每次重新开机后,都要敲命令是比较麻烦的。我们可以编辑fstab文件来设置开机自动挂载。
用vi(或其他你顺手的编辑器)来编辑吧:vi /etc/fstab/
在最下面来加上这样一句:`/dev/sr1
/mnt/cdrom iso9660 default 0 2
设备位置 | 挂载点 | 文件系统 | 挂载选项 | 是否备份 | 检查文件系统的顺序 |
---|---|---|---|---|---|
/dev/sr1 | /mnt/cdrom | iso9660 | default | 0 | 2 |
文件系统的检查顺序这个字段是不固定的,依据你当前fstab文件中已有的条目,依次递增这个字段(我的硬盘设备的该字段为1)。如果不想检查则设为0
4. 编辑yum软件源配置文件
确切的说yum的软件源叫做repository server(仓库 服务器)。其配置文件在 /etc/yum.repos.d/目录下。
我们在这个目录下,新建一个.repo文件,打开并编辑,可以用命令:vi /etc/yum.repos.d/CentOS-Local.repo (文件名可以任意,但是后缀名一定要是repo)。
我贴出该文件内容供参考。
repo文件的格式由多个字段组成,可以使用的字段不止图中这几个,还有其他的。这里介绍这几个字段的含义
字段 | 解释 |
---|---|
[ ] | 方括号包裹的是仓库服务器的id,名称随意,但要保证不和已有的仓库id名重复 |
name | 是仓库的名字,也任意 |
baseurl | 基础路径。它支持三种协议http、ftp、file。图中的file:///mnt/cdrom分成两段来理解:file://(协议名) , /mnt/cdrom(挂载点)。若有多个baseurl则依次写出 |
gpgcheck | gpg密钥检查字段,值1为则检查gpg密钥,0为不检查 |
gpgkey | gpg密钥所在路径。最后的文件名可能不同centos版本不同。提前检查一下你的/etc/pki/rpm-gpg目录中的文件 |
enable | 是否启用该仓库服务器,值为1则启用,0为不启用 |
5. 检查并重启
用yum repolist all命令来检查一下:
重启的目的是为了让系统在开机的时候自动挂载。在重启之后,你可以用yum命令安装几个常用软件试试
yum install xinetd
yum install openssh-server
如果能正确安装就证明你成功了
常见问题
Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY...
在用yum安装软件的时候可能会报Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY...这样类似的错误,就是说不能打开gpg密钥。解决办法有两个:
- 关闭gpg密钥检查。即编辑刚才的.repo文件,将其gpgcheck字段的值设置为0
- 导入gpg密钥。使用命令:rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 注意不同的系统版本最后密钥名称不同,请检查你的/etc/pki/rpm-gpg/目录