Cree fuentes locales apt y pip

antecedentes

La red pública no se puede usar cuando se implementa el proyecto, y el paquete apt/pip debe almacenarse en caché sin conexión por adelantado. Luego, el portátil se conecta al sitio de implementación como un servidor de origen apt/pip.

preparación de software

apt-mirror: Sincronice el paquete apt, porque no sé el número de versión menor del sistema en el sitio, aquí desplego directamente la biblioteca Ubuntu Bionc, que tiene aproximadamente 230 GB.
pip2pi:sincronizar paquete pypi

Pasos

apt-espejo

Instalar en pc
sudo apt update
sudo apt install -y apt-mirror
复制代码
configurar

Revisiones importantes base_path, run_postmirror,同步源

############# config ##################
#
set base_path    /var/www/html
#
# 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  amd64
# set postmirror_script $var_path/postmirror.sh
# 设置是否执行下载后的脚本操作,默认是1(但是默认没有postmirror.sh脚本,所以报错)
set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# clean http://mirrors.tuna.tsinghua.edu.cn/ubuntu

# postgresql
deb http://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/apt/ bionic-pgdg main
deb https://packagecloud.io/timescale/timescaledb/ubuntu/ bionic main

复制代码

fosa

  1. Las bibliotecas similares a Postgresql necesitan agregar claves por sí mismas, apt-mirror no sincronizará la información clave
  2. Timescaledb configura la biblioteca espejo y agrega GPG por adelantado; de lo contrario, falta el archivo Release

Ver: packagecloud.io/timescale/t…

Sincroniza y usa

sudo apt-mirror
# 同步花了一上午。。而且强烈建议在tmux里执行,ssh会不会自己断?这事很玄学
sudo apt install nginx
复制代码

Elimine el enlace de la página predeterminada en /etc/nginx/sites-enable para evitar que se ocupe el puerto 80.
En el directorio conf.d, cree un nuevo xx.conf, el contenido de la configuración es el siguiente

server {
        listen      80;
        listen [::]:80;
        server_name mirror.xxx.cn;
        location / {
            alias  /var/www/shared/;
            autoindex on;
            autoindex_exact_size off;
            autoindex_localtime on;
        }
}

复制代码

ok, a continuación /var/www/shared/, ejecute el comando para crear una conexión suave (fácil de agregar diferentes espejos
Tenga en cuenta que estoy /var/www/shared/usando una ruta relativa aquí, solo determine la relación de la ruta usted mismo

sudo ln -s ../html/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu ubuntu
复制代码

Reinicie el servicio nginx

sudo service nginx restart
复制代码

Si todo está bien, una página como

image.png

Fuente de configuración de host de intranet

Sugerencias: puede modificar /etc/hosts primero y personalizar una regla de resolución de DNS, que es adecuada para cambios frecuentes en el entorno de IP de origen interno

source.list se puede configurar de la siguiente manera:

deb [arch=amd64] http://mirror.xxx.cn/ubuntu/ bionic main restricted universe multiverse
deb [arch=amd64] http://mirror.xxx.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb [arch=amd64] http://mirror.xxx.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb [arch=amd64] http://mirror.xxx.cn/ubuntu/ bionic-security main restricted universe multiverse

复制代码

Pit point
apt-mirror descarga paquetes que son consistentes con la arquitectura nativa de forma predeterminada. Por ejemplo, si no se agrega aquí [arch=amd64], apt update informará un error que indica que no se puede encontrar la información del paquete i386 y que el trabajo de indexación no se puede completar. lo que afectará la instalación del paquete amd64.
Después de completar el trabajo anterior, se configura la fuente fuera de línea apt. Cabe señalar que no hay una fuente i386.

pip2pi

instalacion y configuracion

sudo apt update
sudo apt install python3
sudo apt install python3-pip
# 更新pip,旧版本在操作中有奇怪Bug
pip3 install pip --upgrade
# 安装
pip install pip2pi
复制代码

安装后其实有三个执行文件
pip2pi : 之后两个命令的结合体
pip2tgz: 下载pypi包
dir2pi: 为pypi包建立索引
因为我需要建立多个requirements.txt组成的环境,所以先一个个下载,再统一建立索引

pip2tgz /var/www/html/pypi/packages -r requirements.txt 
...多个文件
dir2pi  /var/www/html/pypi/packages
复制代码

之后步骤与搭建apt一致,在/var/www/shared/目录下建立软连接,重启Nginx服务

使用

修改内网主机的~/.pip/pip.conf,把新搭建的主机当作pypi源

[global]
index-url = http://mirror.xxx.cn/simple
trusted-host = mirror.xxx.cn
复制代码

这时候,自定义hosts文件的好处就显现出来了,一次配置,整体使用

坑点
你可能遇到以下情况

image.png 其他包可以正常安装,而且确定已经为gevent包建立索引
解决方案:升级内网主机的pip版本

python -m pip install  pip --upgrade
复制代码

pip包是可以找到的,不用担心。
暂不知道bug触发的条件,玄学、、

参考来源

segmentfault.com/a/119000002…
juejin.cn/post/705850…
blog.csdn.net/zhifangyou7…
blog.csdn.net/xianjie0318…

Supongo que te gusta

Origin juejin.im/post/7079237533237788686
Recomendado
Clasificación