本地源制作

本文详细介绍了如何在Ubuntu18.04LTS和CentOS7.x上创建本地软件源,包括使用官方镜像(CD/DVD和ISO文件),使用软件包以及使用网络源的方法。对于官方镜像,涉及挂载和添加到源列表的步骤;对于软件包,强调了签名和生成Release文件的重要性;而对于网络源,提到了复制网络结构和下载相关文件。
摘要由CSDN通过智能技术生成

根据软件的来源,制作本地源大致可分为3情况:

1.使用操作系统的官方镜像;

2.使用软件包;

3.使用网络源;

下面依次介绍三种情况:

一、使用官方镜像

ubuntu 18.04 LTS

此处又可以细分为两种方式:

使用CD/DVD

①新建本地目录,并挂载镜像到本地目录

# mkdir /media/cdrom
# mount /dev/cdrom /media/cdrom

②添加本地目录到软件源

# cp /etc/apt/source.list /etc/apt/source.list.bak //备份/etc/apt/source.list
# >  /etc/apt/source.list  //清空原内容
# apt-cdrom   ident  //扫描光盘信息
# apt-cdrom add -m -d=/media/cdrom   //将/media/cdrom写入到/etc/apt/source.list
# cat /etc/apt/source.list //确认/media/cdrom已在/etc/apt/source.list
# apt-get -y update      //更新apt信息

apt-cdrom 参数说明:

使用apt-cdrom 命令将CD添加到源文件中。

ident 命令是一个调试工具,可以报告当前光盘和存储的文件名的信息

add命令可以向source.list中添加一个新的光盘源文件。

-d : 挂载点。挂载点必需在 /etc/fstab文件中并且正确配置。

-m:禁止挂载; 防止apt-cdrom挂载和卸载挂载点。

③修改/etc/fstab,增加如下行:

# vim /etc/fstab
.....
/dev/cdrom     /media/cdrom     iso9660 defaults        0       0
使用ISO文件

①新建本地目录,挂载ISO文件到本地目录(假设ISO文件位于/opt目录)

# mkdir /media/cdrom
# mount /opt/iso_name /media/cdrom

②添加本地目录到软件源

# cp /etc/apt/source.list /etc/apt/source.list.bak //备份/etc/apt/source.list
# >  /etc/apt/source.list  //清空原内容
# vim /etc/apt/source.list //增加/media/cdrom已在/etc/apt/source.list
....
deb file:///media/cdrom/  bionic main restricted
# apt -y update      //更新apt信息

③修改/etc/fstab,增加如下行:

# vim /etc/fstab
.....
/opt/iso_name     /media/cdrom     iso9660 defaults        0       0

CentOS 7.x

重命名网络源repo

# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
使用CD/DVD

①新建本地目录,并挂载镜像到本地目录

# mkdir /media/CentOS
# mount /dev/cdrom /media/CentOS

②修改CentOS-Media.repo文件,将enable=0修改为enable=1

# vim /etc/yum.repos.d/CentOS-Media.repo
....
enabled=1

③更新仓库源

# yum -y update

④修改/etc/fstab,增加如下行:

# vim /etc/fstab
.....
/dev/cdrom     /media/CentOS     iso9660 defaults        0       0
使用ISO文件

①新建本地目录,并挂载ISO到本地目录(假设ISO文件位于/opt目录)

# mkdir /media/CentOS
# mount /opt/iso_name /media/CentOS

②修改CentOS-Media.repo文件

# vim /etc/yum.repos.d/CentOS-Media.repo
....
enabled=1
gpgcheck=0 

③更新仓库源

# yum -y update

④修改/etc/fstab,增加如下行:

# vim /etc/fstab
.....
/opt/iso_name     /media/CentOS     iso9660 defaults        0       0

二、使用软件包

ubuntu 18.04 LTS

Ubuntu 18.04中的apt版本为1.6.11,必需进行签名。

前期准备

创建目录,将所需的deb文件拷贝到目录

# mkdir /opt/debs
# cp /debs-path/*.deb /opt/debs

进入目录生成索引文件及Release文件

# cd /opt/debs 
# apt-ftparchive packages . > Packages 
# apt-ftparchive release . > Release
生成key

注:只需生成一次key,若已经生成过key,则无需再次生成

# gpg --full-generate-key
gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 2048
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: caohf
Email address: caohf@toyou.com.cn
Comment: cc
You selected this USER-ID:
    "caohf (cc) <caohf@toyou.com.cn>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key CB7EF49AC8328682 marked as ultimately trusted
gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/7DD009174499615E734CEBAECB7EF49AC8328682.rev'
public and secret key created and signed.

pub   rsa2048 2020-01-08 [SC]
       C4AD7615BCCA35C042E64799317274E4C974C4D5
uid                      caohf (ubuntu 18.04.3 gpg sign) <caohf@toyou.com.cn>
sub   rsa2048 2020-01-08 [E]

如果生成签名卡住(原因详见:https://www.cnblogs.com/styshoo/p/6415939.html),执行如下命令:

# apt install rng-tools
# rng -r /dev/urandom  

查看key信息

# gpg --list-keys
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
/root/.gnupg/pubring.kbx
------------------------
pub   rsa2048 2020-01-12 [SC]
      C4AD7615BCCA35C042E64799317274E4C974C4D5
uid           [ultimate] caohf (cc) <caohf@toyou.com.cn>
sub   rsa2048 2020-01-12 [E]

​ 导出公钥并添加至apt key

#  gpg -a --export pub_id | apt-key add -    
#  gpg -a --export C4AD7615BCCA35C042E64799317274E4C974C4D5 | apt-key add - 
生成签名

以下操作在/opt/debs目录下进行

# gpg --clearsign -o InRelease Release
# gpg -abs -o Release.gpg Release

修改电脑上的source.list文件

# cp /etc/apt/source.list /etc/apt/source.list.bal
# vim /etc/apt/source.list
...
deb file:///opt/debs/ /
# apt -y update

CentOS7.x

创建目录,将所需的rpm文件拷贝到目录

# mkdir /opt/rpms
# cp /rpms-path/*.rpm /opt/rpms

安装createrepo命令

# yum -y install createrepo

生成符合要求的yum仓库

# yum clean all
# createrepo /opt/rpms

/opt/rpms中新增一个repodata的仓库数据文件,说明创建仓库成功。

# ll -t /opt/rpms

repodata是软件仓库,其目录下有四个必要文件:

filelists.xml.[gz],other.xml.[gz],primary.xml.[gz]和repomd.xml(md代表 metadata),

其中最主要的是repomd.xml文件。

一般出现找不到repodata目录或文件的错误,原因通常有三个:

①路径问题;

②无repodata目录;

③*.repo配置文件冲突。

添加或者删除rpm包后,不需要再次重新create,只需使用–update

# createrepo --update /opt/rpms

更新缓存文件

# yum clean all
# yum makecache 

三、使用网络源

此种方式比较简单。

在本地创建与网络源相同的目录结构,下载网络源的有关文件,并放置到相关位置;

要在Ubuntu制作apt本地,请按照以下步骤进行操作: 1.安装apt-mirror工具 ```bash sudo apt-get update sudo apt-get install apt-mirror ``` 2.创建一个目录来存储本地文件 ```bash sudo mkdir /var/spool/apt-mirror ``` 3.编辑apt-mirror的配置文件 ```bash sudo nano /etc/apt/mirror.list ``` 在文件中添加以下内容: ```bash ############# config ################## # # set base_path /var/spool/apt-mirror # # set mirror_path $base_path/mirror # set skel_path $base_path/skel # set var_path $base_path/var # set cleanscript $var_path/clean.sh # set defaultarch <running host architecture> # set postmirror_script $var_path/postmirror.sh # set run_postmirror 0 set nthreads 20 set _tilde 0 # ############# end config ############## deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse deb-src http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse # Clean up clean http://archive.ubuntu.com/ubuntu clean http://security.ubuntu.com/ubuntu ``` 在这个文件中,你可以指定你要下载的Ubuntu版本和你的Ubuntu的URL。 4.运行apt-mirror工具 ```bash sudo apt-mirror ``` 该命令将下载所有指定的软件包和依赖项,并将它们存储在/var/spool/apt-mirror目录下。 5.设置本地 ```bash sudo nano /etc/apt/sources.list ``` 在文件中添加以下行: ```bash deb file:/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse deb-src file:/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse deb file:/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb-src file:/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse deb file:/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src file:/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb file:/var/spool/apt-mirror/mirror/security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb-src file:/var/spool/apt-mirror/mirror/security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse ``` 6.更新本地 ```bash sudo apt-get update ``` 现在你已经成功地在Ubuntu制作了apt本地。你可以在不需要连接到互联网的情况下使用这些本地来安装软件包和更新系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值