暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux:配置本地YUM源

Nephilim 2024-08-26
78

Tips:一些记录,一些笔记



2024/08/26

MONDAY

Politeness costs nothing and gains everything.

礼貌不用花一分钱,却能赢得一切。




01

为什么要搭建本地YUM源


比如,你需要配置的YUM源对应的版本已经结束了支持:

https://mirrors.tuna.tsinghua.edu.cn/news/#retire-el7-and-buster


具体怎么配置呢?

下面的篇幅中会详细介绍。


02

挂载对应Linux发行版的ISO镜像


通过光驱挂载:

然后,在操作系统中通过命令:

    [root@localhost ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    devtmpfs 3.9G 0 3.9G 0% dev
    tmpfs 3.9G 0 3.9G 0% dev/shm
    tmpfs 3.9G 29M 3.9G 1% run
    tmpfs 3.9G 0 3.9G 0% sys/fs/cgroup
    /dev/mapper/centos-root 36G 11G 25G 31%
    /dev/sda1 1014M 172M 843M 17% boot
    /dev/mapper/centos-home 18G 38M 18G 1% home
    tmpfs 797M 12K 797M 1% run/user/42
    tmpfs 797M 0 797M 0% run/user/0
    [root@localhost ~]#
    [root@localhost ~]# mkdir mount_point
    [root@localhost ~]#
    [root@localhost ~]# ls -ltr dev/cdrom
    lrwxrwxrwx. 1 root root 3 Aug 24 22:01 dev/cdrom -> sr0
    [root@localhost ~]#
    [root@localhost ~]# mount dev/cdrom mount_point/
    mount: dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]#
    [root@localhost ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    devtmpfs 3.9G 0 3.9G 0% dev
    tmpfs 3.9G 0 3.9G 0% dev/shm
    tmpfs 3.9G 29M 3.9G 1% run
    tmpfs 3.9G 0 3.9G 0% sys/fs/cgroup
    /dev/mapper/centos-root 36G 11G 25G 31%
    /dev/sda1 1014M 172M 843M 17% boot
    /dev/mapper/centos-home 18G 38M 18G 1% home
    tmpfs 797M 12K 797M 1% run/user/42
    tmpfs 797M 0 797M 0% run/user/0
    /dev/sr0 4.4G 4.4G 0 100% mount_point
    [root@localhost ~]#
    [root@localhost ~]# cd mount_point/
    [root@localhost mount_point]# ls -ltr
    total 696
    -rw-rw-r--. 21 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
    -rw-rw-r--. 21 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
    -rw-rw-r--. 21 root root 18009 Dec 10 2015 GPL
    -rw-rw-r--. 21 root root 227 Aug 30 2017 EULA
    drwxr-xr-x. 2 root root 2048 Oct 27 2020 LiveOS
    drwxr-xr-x. 3 root root 2048 Oct 27 2020 EFI
    drwxr-xr-x. 3 root root 2048 Oct 27 2020 images
    -rw-r--r--. 3 root root 14 Oct 30 2020 CentOS_BuildTag
    drwxr-xr-x. 2 root root 2048 Nov 3 2020 isolinux
    drwxr-xr-x. 2 root root 673792 Nov 4 2020 Packages
    drwxr-xr-x. 2 root root 4096 Nov 4 2020 repodata
    -r--r--r--. 1 root root 2883 Nov 4 2020 TRANS.TBL
    [root@localhost mount_point]#


    可以看到,这样,就将我们需要的ISO镜像挂载到了本地。


    在上面的情况中,如果你不是通过光驱加载的ISO镜像,只有一个ISO文件。

    那么你可以通过下面的方式挂载:

      mount -o loop xxxx.iso mount_point


      03

      备份YUM REPO

      命令:

        [root@localhost ~]# ls -ltr  | grep backup
        drwxr-xr-x. 2 root root 254 Aug 18 23:33 backup
        [root@localhost ~]#
        [root@localhost ~]# ls -ltr etc/yum.repos.d/
        total 20
        -rw-r--r--. 1 root root 1050 Oct 3 2017 epel-testing.repo
        -rw-r--r--. 1 root root 664 Aug 4 2022 epel.repo
        -rw-r--r--. 1 root root 2523 Aug 4 2022 CentOS-Base.repo
        -rw-r--r--. 1 root root 185 Aug 19 08:24 CentOS-SCLo-scl.repo
        -rw-r--r--. 1 root root 181 Aug 19 08:24 CentOS-SCLo-scl-rh.repo
        [root@localhost ~]#
        [root@localhost ~]# mv etc/yum.repos.d/* backup/
        mv: overwrite '/backup/CentOS-Base.repo'? y
        [root@localhost ~]#
        [root@localhost ~]# ls -ltr backup/
        total 60
        -rw-r--r--. 1 root root 1050 Oct 3 2017 epel-testing.repo
        -rw-r--r--. 1 root root 1192 Mar 31 2020 CentOS-SIG-ansible-29.repo
        -rw-r--r--. 1 root root 616 Oct 23 2020 CentOS-x86_64-kernel.repo
        -rw-r--r--. 1 root root 314 Oct 23 2020 CentOS-fasttrack.repo
        -rw-r--r--. 1 root root 8515 Oct 23 2020 CentOS-Vault.repo
        -rw-r--r--. 1 root root 1331 Oct 23 2020 CentOS-Sources.repo
        -rw-r--r--. 1 root root 630 Oct 23 2020 CentOS-Media.repo
        -rw-r--r--. 1 root root 649 Oct 23 2020 CentOS-Debuginfo.repo
        -rw-r--r--. 1 root root 1309 Oct 23 2020 CentOS-CR.repo
        -rw-r--r--. 1 root root 664 Aug 4 2022 epel.repo
        -rw-r--r--. 1 root root 2523 Aug 4 2022 CentOS-Base.repo
        -rw-r--r--. 1 root root 185 Aug 19 08:24 CentOS-SCLo-scl.repo
        -rw-r--r--. 1 root root 181 Aug 19 08:24 CentOS-SCLo-scl-rh.repo
        [root@localhost ~]#


        04

        配置YUM REPO文件

        配置:

          [root@localhost ~]# cat etc/yum.repos.d/iso.repo 
          [local-iso]
          name=local-iso
          baseurl=file:///mount_point/
          enabled=1
          gpgcheck=0
          [root@localhost ~]#


          05

          YUM清理缓存并刷新

          命令:

            [root@localhost ~]# yum clean metadata
            Failed to set locale, defaulting to C
            Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager


            This system is not registered with an entitlement server. You can use subscription-manager to register.


            Cleaning repos: local-iso
            0 metadata files removed
            0 sqlite files removed
            0 metadata files removed
            [root@localhost ~]# yum clean all
            Failed to set locale, defaulting to C
            Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager


            This system is not registered with an entitlement server. You can use subscription-manager to register.


            Cleaning repos: local-iso
            Cleaning up list of fastest mirrors
            Other repos take up 1.3 G of disk space (use --verbose for details)
            [root@localhost ~]#
            [root@localhost ~]# yum makecache
            Failed to set locale, defaulting to C
            Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager


            This system is not registered with an entitlement server. You can use subscription-manager to register.


            Determining fastest mirrors
            local-iso | 3.6 kB 00:00:00
            (1/4): local-iso/group_gz | 153 kB 00:00:00
            (2/4): local-iso/filelists_db | 3.3 MB 00:00:00
            (3/4): local-iso/other_db | 1.3 MB 00:00:00
            (4/4): local-iso/primary_db | 3.3 MB 00:00:00
            Metadata Cache Created
            [root@localhost ~]#
            [root@localhost ~]# yum repolist
            Failed to set locale, defaulting to C
            Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager


            This system is not registered with an entitlement server. You can use subscription-manager to register.


            Loading mirror speeds from cached hostfile
            repo id repo name status
            local-iso local-iso 4070
            repolist: 4070
            [root@localhost ~]#


            06

            验证

            通过「yum list」来验证一下前面的配置:

              [root@localhost ~]# yum list available | tail -n 8
              Failed to set locale, defaulting to C
              ypserv.x86_64 2.31-12.el7 local-iso
              yum-plugin-aliases.noarch 1.1.31-54.el7_8 local-iso
              yum-plugin-changelog.noarch 1.1.31-54.el7_8 local-iso
              yum-plugin-tmprepo.noarch 1.1.31-54.el7_8 local-iso
              yum-plugin-verify.noarch 1.1.31-54.el7_8 local-iso
              yum-plugin-versionlock.noarch 1.1.31-54.el7_8 local-iso
              zsh.x86_64 5.0.2-34.el7_8.2 local-iso
              zziplib.x86_64 0.13.62-12.el7 local-iso
              [root@localhost ~]#


              可以看到,现在的软件包全都来自于本地的ISO挂在的local-isoYUM源了。


              07

              局域网内通过Apache分发


              安装Apache服务:

                yum install -y httpd


                在Apache的WEB服务的根目录中创建软链接:

                  [root@localhost ~]# ls -ltr /var/www/html/
                  total 0
                  [root@localhost ~]#
                  [root@localhost ~]# ln -s /mount_point/ /var/www/html/centos-7
                  [root@localhost ~]#
                  [root@localhost ~]# ls -ltr /var/www/html/
                  total 0
                  lrwxrwxrwx. 1 root root 13 Aug 24 22:26 centos-7 -> /mount_point/
                  [root@localhost ~]#


                  启动Apache服务:

                    [root@localhost ~]# systemctl enable httpd
                    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
                    [root@localhost ~]# systemctl start httpd
                    [root@localhost ~]#
                    [root@localhost ~]# systemctl status httpd
                    ● httpd.service - The Apache HTTP Server
                    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
                    Active: active (running) since Sat 2024-08-24 22:28:04 CST; 4s ago
                    Docs: man:httpd(8)
                    man:apachectl(8)
                    Main PID: 87052 (httpd)
                    Status: "Processing requests..."
                    Tasks: 6
                    CGroup: /system.slice/httpd.service
                    ├─87052 /usr/sbin/httpd -DFOREGROUND
                    ├─87055 /usr/sbin/httpd -DFOREGROUND
                    ├─87056 /usr/sbin/httpd -DFOREGROUND
                    ├─87057 /usr/sbin/httpd -DFOREGROUND
                    ├─87058 /usr/sbin/httpd -DFOREGROUND
                    └─87059 /usr/sbin/httpd -DFOREGROUND


                    Aug 24 22:28:04 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
                    Aug 24 22:28:04 localhost.localdomain httpd[87052]: AH00558: httpd: Could not reliably determine the...age
                    Aug 24 22:28:04 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
                    Hint: Some lines were ellipsized, use -l to show in full.
                    [root@localhost ~]#


                    查看监听端口:

                      [root@localhost ~]# netstat -tupln | grep httpd
                      tcp6 0 0 :::80 :::* LISTEN 87052/httpd
                      [root@localhost ~]#


                      这时候,在局域网内,都可以通过Apache HTTPD服务访问到YUM本地源了:


                      08

                      YUM源配置

                      这时候,可以将YUM源的配置文件修改为:

                        [root@localhost yum]# cat centos-7-local.repo 
                        [local-httpd-repo]
                        name=local-httpd-repo
                        baseurl=http://192.168.2.17/centos-7
                        enabled=1
                        gpgcheck=0
                        [root@localhost yum]#





                        END




                        温馨提示



                        如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。


                        文章转载自Nephilim,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论