专栏首页JiekeXu之路Linux 挂载光盘镜像配置本地 yum 源安装软件

Linux 挂载光盘镜像配置本地 yum 源安装软件

Yum(全称为 Yellowdog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。CentOS 和 Redhat 版本的 Linux 一般安装软件包选择 rpm 和 yum 安装方式,这也是比较常见的方式。不过 rpm 安装时如果有其他依赖的包则需要先安装依赖包,比较麻烦, yum 则可以解决依赖关系,也可同时安装多个 rpm 包。当然 deb 软件包安装以及源码方式安装也有使用。deb 软件包一般以 .deb 后缀结尾,dpkg -i 包名即可安装。源码方式的包一般都以.tar.gz 或者 .tar.bz2 结尾,下载后校检md5值,解压后经过配置(./configure)、编译(make)、安装(make install)便可以完成。

一般传统行业的公司的生产环境均是内网环境,是没有办法上网的,故网络 yum 源就不用考虑了,大公司基本上会使用局域网内的 FTP 服务器,配置 ftp 方式的 yum 源,通过局域网安装软件,也可挂载光盘镜像。个人学习使用或小公司基本上会配置本地 yum 源,以后有时间可以说说网络 yum 源,下面就先说说配置本地 yum 源以及安装软件的方式。

本次演示使用 Oracle VM VirtualBox 下的 Redhat6.4 以及 VMware Workstation Pro 下的 CentOS 7.6 以及简略说明 linuxone 下的 suse12sp4 环境

  • Redhat6.4 下配置 yum 源

一、插入光盘镜像

图形化界面上能够看到新增光盘图标,默认自动弹出窗口显示光盘中文件

二、 查看光盘对应路径

切换到光盘目录,使用 Tab 补齐的方法进入,便可以看到很多软件包,但由于默认路径有空格,不方便配置 yum 源,故需要重新挂载光盘。

[root@JiekeXu ~]# cd /media/RHEL_6.4\ x86_64\ Disc\ 1/
[root@JiekeXu RHEL_6.4 x86_64 Disc 1]# ls

三、创建目录

光盘加载到光驱后默认挂载点(访问入口)为 /media/RHEL_6.4 x86_64 Disc 1 路径中包含空格,不方便使用。

创建目录 作为新挂载点 (访问光盘的入口)

[root@JiekeXu ~]# mkdir /mnt/dvd
[root@JiekeXu ~]# ls -ld /mnt/dvd

四、重新挂载

df -Th 查看光盘对应设备名称 /dev/sr0

挂载光盘到新建的挂载点

[root@JiekeXu ~]# mount /dev/sr0 /mnt/dvd
[root@JiekeXu ~]# df -Th

使用新挂载点即可访问光盘中文件

[root@JiekeXu ~]# ls /mnt/dvd

/mnt/dvd/Server 是配置 yum 仓库要用到的路径

五、修改配置文件配置 yum 源

[root@JiekeXu ~]# cd /etc/yum.repos.d/
[root@JiekeXu yum.repos.d]# ll
total 16K
-r--r--r--  1 root root 114 Jul  2  2015 packagekit-media.repo
-rw-r--r--. 1 root root 358 Oct 19  2017 redhat.repo
-rw-r--r--  1 root root 656 Oct 20  2017 rhel64.repo
-rw-r--r--. 1 root root 529 Jun 12  2015 rhel-source.repo
[root@JiekeXu yum.repos.d]#

配置文件目录 /etc/yum.repos.d/

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 表示公钥文件地址

编辑配置文件,在最后追加写入内容 baseurl 中 file:// 表示本地文件,第三个 / 表示 根目录

[root@JiekeXu yum.repos.d]# cp rhel-source.repo rhel-source.repo.bak
[root@JiekeXu yum.repos.d]# vi rhel-source.repo
[rhel64]
name=rhel64 repo
baseurl=file:///mnt/dvd/Server
gpgcheck=0
[root@JiekeXu yum.repos.d]# tail -5 rhel-source.repo

六、yum 基本操作

清除缓存

[root@JiekeXu yum.repos.d]# yum clean all 
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Repository rhel-source is listed more than once in the configuration
Repository rhel-source-beta is listed more than once in the configuration
Cleaning repos: InstallMedia rhel67 rhel67rpm
Cleaning up Everything

列出软件包

[root@JiekeXu yum.repos.d]# yum list
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
[root@JiekeXu yum.repos.d]# yum list | grep zsh
Repository rhel-source is listed more than once in the configuration
Repository rhel-source-beta is listed more than once in the configuration
zsh.x86_64                             4.3.11-4.el6                    @rhel64

yum 安装、查看、删除软件包

[root@JiekeXu yum.repos.d]# yum install zsh
[root@JiekeXu yum.repos.d]# yum info zsh
[root@JiekeXu yum.repos.d]# yum remove zsh

七、 yum install XXX 安装其他的包

本地镜像源内的 rpm 包便可以自由安装了,使用 -y 则不用提示直接安装。

[root@JiekeXu yum.repos.d]# yum install vim* -y
[root@JiekeXu yum.repos.d]# yum install x11*
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Repository rhel-source is listed more than once in the configuration
Repository rhel-source-beta is listed more than once in the configuration
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package xorg-x11-apps.x86_64 0:7.7-6.el6 will be installed
--> Finished Dependency Resolution
  • CentOS 7.6 下配置 yum 源

CentOS 系列的 Linux 操作系统目前市场上使用的还是比较多的,而且很多公司也都陆陆续续使用 7 系列版本,那么本次将使用 CentOS 7.6 作为演示版本。

一、关闭防火墙

  • 临时关闭防火墙 systemctl stop firewalld
  • 永久防火墙开机自关闭 systemctl disable firewalld
  • 临时打开防火墙 systemctl start firewalld
  • 防火墙开机启动 systemctl enable firewalld
  • 查看防火墙状态 systemctl status firewalld
[root@JiekeXu ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 六 2019-09-07 08:33:48 CST; 18h ago
     Docs: man:firewalld(1)
Main PID: 8220 (firewalld)
    Tasks: 2
   CGroup: /system.slice/firewalld.service
           └─8220 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

9月 07 08:33:40 JiekeXu systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 07 08:33:48 JiekeXu systemd[1]: Started firewalld - dynamic firewall daemon.
9月 07 08:33:55 JiekeXu firewalld[8220]: WARNING: /etc/sysconfig/network-scripts/ifcfg-ens32: Duplicate option definition: 'BOO...tatic"'
Hint: Some lines were ellipsized, use -l to show in full.
[root@JiekeXu ~]#
[root@JiekeXu ~]# systemctl stop firewalld
[root@JiekeXu ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 日 2019-09-08 03:19:50 CST; 3s ago
     Docs: man:firewalld(1)
  Process: 8220 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 8220 (code=exited, status=0/SUCCESS)

9月 07 08:33:40 JiekeXu systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 07 08:33:48 JiekeXu systemd[1]: Started firewalld - dynamic firewall daemon.
9月 07 08:33:55 JiekeXu firewalld[8220]: WARNING: /etc/sysconfig/network-scripts/ifcfg-ens32: Duplicate option definition: 'BOO...tatic"'
9月 08 03:19:46 JiekeXu systemd[1]: Stopping firewalld - dynamic firewall daemon...
9月 08 03:19:50 JiekeXu systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[root@JiekeXu ~]#
[root@JiekeXu ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@JiekeXu ~]#
[root@JiekeXu ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

9月 07 08:33:40 JiekeXu systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 07 08:33:48 JiekeXu systemd[1]: Started firewalld - dynamic firewall daemon.
9月 07 08:33:55 JiekeXu firewalld[8220]: WARNING: /etc/sysconfig/network-scripts/ifcfg-ens32: Duplicate option definition: 'BOO...tatic"'
9月 08 03:19:46 JiekeXu systemd[1]: Stopping firewalld - dynamic firewall daemon...
9月 08 03:19:50 JiekeXu systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.

二、关闭 SELINUX

编辑 /etc/selinux/config 文件,将其设置为 disabled,注意编辑 /etc/sysconfig/selinux 文件也可。

[root@JiekeXu sysconfig]# pwd
/etc/sysconfig
[root@JiekeXu sysconfig]# ls -l selinux
lrwxrwxrwx. 1 root root 17 7月   4 02:03 selinux -> ../selinux/config
[root@JiekeXu ~]# cat /etc/sysconfig/selinux
[root@JiekeXu ~]# more /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

四、设置域名解析

[root@JiekeXu ~]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.32.1
nameserver 192.168.32.0
nameserver 8.8.8.8
nameserver 114.114.114.114

五、挂载镜像

首先插入光盘镜像

六、建立目录,挂载镜像,将其写入开机自启动文件

mkdir /mnt/centos
mount -t iso9660 -o loop /dev/sr0 /mnt/centos
vim /etc/fstab

添加如下一行

/dev/cdrom /mnt/contos iso9660 defaults 0 0 0 0

[root@JiekeXu sysconfig]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Thu Jul  4 01:57:56 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=d40ff30e-48ce-4286-8e3f-bc9e30f3a6bb /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults,size=1024M        0 0
/dev/cdrom /mnt/centos                          iso9660 defaults        0 0               0 0

七、配置 yum 源

进入/etc/yum.repos.d 目录修改CentOS-Media.repo文件

mv CentOS-Base.repo CentOS-Base.repo_bak
vi CentOS-Media.repo
[local] //id:local 表示本地
name=CentOS-$releasever - local
baseurl=file:///mnt/centos //挂载镜像的文件夹路径
gpgcheck=0 //设置此源是否检验文件,1为校验,0为不校验
enabled=1 //启用该yum源
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7//公钥文件地址

注意:如果没有注释掉 CentOS-Base.repo 则会出现如下未知错误。

[root@JiekeXu yum.repos.d]# yum clean all;
已加载插件:fastestmirror, langpacks
正在清理软件源:base extras local updates
Cleaning up list of fastest mirrors
[root@JiekeXu yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
Loading mirror speeds from cached hostfile
Loading mirror speeds from cached hostfile
Loading mirror speeds from cached hostfile
Loading mirror speeds from cached hostfile
源标识                                                            源名称                                                              状态
base/7/x86_64                                                     CentOS-7 - Base                                                     0
extras/7/x86_64                                                   CentOS-7 - Extras                                                   0
local                                                             CentOS-7 - local                                                    0
updates/7/x86_64                                                  CentOS-7 - Updates                                                  0
repolist: 0

八、简单应用

清空缓存 yum clean all
查看可用 yum 源 yum repolist
[root@JiekeXu yum.repos.d]# yum clean all;
已加载插件:fastestmirror, langpacks
正在清理软件源:local
Cleaning up list of fastest mirrors
[root@JiekeXu yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local                                                                                                              | 3.6 kB  00:00:00     
(1/2): local/group_gz                                                                                              | 166 kB  00:00:00     
(2/2): local/primary_db                                                                                            | 3.1 MB  00:00:00     
源标识                                                       源名称                                                                  状态
local                                                        CentOS-7 - local                                                        4,021
repolist: 4,021
  • SUSE 12sp4 环境下 zypper 源配置

1. zypper 的几个重要选项:

选项

说明

repos, lr

列出库

sl

列出库(目的是与rug兼容)

addrepo, ar

添加库

sa

添加库(目的是与rug兼容)

renamerepo, nr

重命名指定的安装源

modifyrepo, mr

修改指定的安装源

refresh, ref

刷新所有安装源

clean

清除本地缓存

2. zypper 软件管理:

选项

说明

install, in

安装软件包

remove, rm

删除软件包

verify, ve

检验软件包依赖关系的完整性

update, up

更新已安装的软件包到新的版本

dist-upgrade, dup

整个系统的升级

source-install, si

安装源代码软件包和它们的编译依赖

3. zypper 的查询选项:

选项

说明

search, se

安装软件包

packages, pa

列出所有可用的软件包

patterns, pt

列出所有可用的模式

products, pd

列出所有可用的产品

what-provides, wp

列出能够提供指定功能的软件包

下面实操说明配置 zypper 源

JiekeXu2:~ # zypper clean
All repositories have been cleaned up.
JiekeXu2:~ # zypper clean all
Repository 'all' not found by its alias, number, or URI.
Use 'zypper repos' to get the list of defined repositories.
Could not clean the repositories because of errors.
JiekeXu2:~ # cat /etc/issue
Welcome to SUSE Linux Enterprise Server 12 SP4  (s390x) - Kernel \r (\l).
JiekeXu2:~ # zypper rr 1
Removing repository 'SLES12-SP4 12.4-0' ......................................................................[done]
Repository 'SLES12-SP4 12.4-0' has been removed.
JiekeXu2:~ # zypper rr 1
Repository '1' not found by alias, number or URI.
JiekeXu2:~ # zypper rr 1
Repository '1' not found by alias, number or URI.
JiekeXu2:~ # zypper ar ftp://ftp@10.18.127.222/suse/suse12sp4s390x suse
Adding repository 'suse' .....................................................................................[done]
Repository 'suse' successfully added
URI         : ftp://ftp@10.18.127.222/suse/suse12sp4s390x
Enabled     : Yes                                         
GPG Check   : Yes                                         
Autorefresh : No                                          
Priority    : 99 (default priority)                       
Repository priorities are without effect. All enabled repositories share the same priority.
JiekeXu2:~ # zypper lr
Repository priorities are without effect. All enabled repositories share the same priority.
# | Alias | Name | Enabled | GPG Check | Refresh
--+-------+------+---------+-----------+--------
1 | suse  | suse | Yes     | ( p) Yes  | No     
JiekeXu2:~ # zypper ref
Retrieving repository 'suse' metadata ---------------------------------------------------------------------------[\]
Authentication required for 'ftp://ftp@10.18.127.222/suse/suse12sp4s390x'
User Name: ftpuser
Password:
Retrieving repository 'suse' metadata ........................................................................[done]
Building repository 'suse' cache .............................................................................[done]
All repositories have been refreshed.
JiekeXu2:~ # zypper -n in libaio-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW package is going to be installed:
  libaio-devel
1 new package to install.
Overall download size: 6.5 KiB. Already cached: 0 B. After the operation, additional 9.1 KiB will be used.
m                                     | 9.43-8.1                                | s390x                       | s390   | SLES12-SP4 12.4-0 | hfsutils                                   | 3.2.6-1240.71                           | s390x  | SLES12-SP4 12.4-0 | gnome-session-lang                         | 3.20.2-19.2                             | noari  | SLES12-SP4 12.4-0 | hicolor-icon-theme                         | 0.15-4.1                                | noarch | SLES12-SP4 12.4-0 | gnome-settings-daemon                      | 3.20.1-50.5.8                           | s390   | SLES12-SP4 12.4-0 | hmaccalc                                   | 0.9.13-2.3                              | s390x  | SLES12-SP4 12.4-0 | gnome-settings-daemon-lang                 | 3.20.1-50.5.8                           | noar   | SLES12-SP4 12.4-0 | hostinfo                                   | 1.0-17.12                               | noarch | SLES12-SP4 12.4-0 | gnome-shell                                | 3.20.4-77.17.1                          | s390   | SLES12-SP4 12.4-0 | hplip                                      | 3.16.11-1.33                            | s390x  | SLES12-SP4 12.4-0 | gnome-shell-browser-plugin                 | 3.20.4-77.17.1                          | s390   | SLES12-SP4 12.4-0 | hplip-hpijs                                | 3.16.11-1.33                            | s390x  | SLES12-SP4 12.4-0 | gnome-shell-classic                        | 3.20.1-24.27.44                         | noar   | SLES12-SP4 12.4-0 | hplip-sane                                 | 3.16.11-1.33                            | s390x  | SLES12-SP4 12.4-0 | gnome-shell-extensions-common              | 3.20.1-24.27.44                         | noari  | SLES12-SP4 12.4-0 | hunspell                                   | 1.3.2-18.1                              | s390x  | SLES12-SP4 12.4-0 | gnome-shell-extensions-common-lang         | 3.20.1-24.27.44                         | noar   | SLES12-SP4 12.4-0 | hunspell-32bit                             | 1.3.2-18.1                              | s390x  | SLES12-SP4 12.4-0 | gnome-shell-lang                           | 3.20.4-77.17.1                          | noari  | SLES12-SP4 12.4-0 | hunspell-tools                             | 1.3.2-18.1                              | s390x  | SLES12-SP4 12.4-0 | gnome-shell-search-provider-gnome-terminal | 3.20.2-8.62                             | s390Continue? [y/n/...? shows all options] (y): y
Retrieving package libaio-devel-0.3.109-17.15.s390x                            (1/1),   6.5 KiB (  9.1 KiB unpacked)
Retrieving: libaio-devel-0.3.109-17.15.s390x.rpm .............................................................[done]
Checking for file conflicts: .................................................................................[done]
(1/1) Installing: libaio-devel-0.3.109-17.15.s390x ...........................................................[done]

当然,局域网也有不通的时候,那么我们只要挂载光盘镜像或者上传镜像到系统某个目录下,如下 5 步也很方便配置 zypper 源,还等什么,赶快来试试吧。

1、首先建立挂载目录

mkdir /mnt/iso

2、上传光盘镜像到 /app 目录,并挂载镜像

mount -t iso9660 /app/SLES-11-SP4-DVD-x86_64-GM-DVD1.iso /mnt/iso

3、添加库,配置本地 repo

zypper ar file:///mnt/iso ss

4、查看列出本地库

zypper lr

JiekeXu2:/app/oracle # zypper lr
Repository priorities are without effect. All enabled repositories share the same priority.
# | Alias     | Name      | Enabled | GPG Check | Refresh
--+-----------+-----------+---------+-----------+--------
1 | suse12sp4 | suse12sp4 | Yes     | (r ) Yes  | No

5、 zypper install 或者 zypper in xxx 安装包

zypper in binutils-2.19

80%

本文分享自微信公众号 - JiekeXu之路(JiekeXu_IT),作者:JiekeXu

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • openGaussDB 初体验(上)

    openGaussDB(openGauss)是华为云深度融合在数据库领域多年的经验,结合企业级场景需求,推出的新一代企业级分布式数据库,支持集中式与分布式两种部...

    JiekeXu之路
  • 教你如何快速从 Oracle 官方文档中获取需要的知识

    https://docs.oracle.com/en/database/oracle/oracle-database/index.html

    JiekeXu之路
  • 事务的 ACID 属性我总是傻傻分不清

    对于大部分程序员来说,他们的任务就是把现实世界的业务场景映射到数据库世界。比如银行为了存储人们的账户信息会建立一个account表:

    JiekeXu之路
  • 是时候构建安全服务平台了

    安全开发生命周期能够确保应用程序具备充足的安全性,而自动化是推行它的一个重要手段。不少企业的安全团队已经在这方面进行了很多努力,但也面临着新的挑战。比如重复建设...

    ThoughtWorks
  • 新款zANTI卷土重来:高级移动渗透和安全分析工具包

    zANTI是一款使用起来非常方便的移动端渗透测试工具和安全分析工具。在zANTI的帮助下,你可以模拟出现实世界最常见的网络渗透技术。不仅如此,你还可以利用zAN...

    FB客服
  • Redis技术知识总结之三——Redis数据淘汰机制

    当 Redis 内存超出物理内存限制时,为了保持高效的可用性,Redis 需要对内存中部分数据进行淘汰。Redis 早起版本使用的数据淘汰策略是 LRU (Le...

    剑影啸清寒
  • 'DataFrame' object has no attribute 'sort'

    周小董
  • RSA 亮点播报|揭秘DevSecOps真容

    安恒信息 网络安全前沿资讯、 应急响应解决方案、技术热点深度解读 美国西海岸时间2018年04月16日,是RSA大会开幕的一天,主会场的展厅都还在布置中,因此...

    安恒信息
  • 有赞零售 App 离线切换技术方案

    有赞零售客户端的用户是需要经营线下门店的商家,在商家的经营时间内,如果软件不能保证正常使用会导致经营效率下降,甚至客户流失。因此除了不断优化软件性能,降低崩溃率...

    用户1278550
  • 虹软发布免费人脸识别SDK:支持年龄、性别识别

    AlphaGo拔掉网线也强大、iPhone X没有网络依旧可解锁,在国内虹软则免费开放了其支持离线的人脸识别技术,而且除了检测、跟踪、识别功能,现在也支持对年龄...

    BestSDK

扫码关注云+社区

领取腾讯云代金券