バックグラウンド
プロジェクトがデプロイされている場合、パブリックネットワークは使用できません。また、apt/pipパッケージを事前にオフラインでキャッシュする必要があります。次に、ノートブックはapt/pipソースサーバーとしてデプロイメントサイトに接続されます。
ソフトウェアの準備
apt-mirror
:オンサイトシステムのマイナーバージョン番号がわからないため、aptパッケージを同期します。ここでは、約230GBのUbuntuBioncライブラリを直接プルダウンします。
pip2pi
:syncpypiパッケージ
手順
apt-mirror
インストール
sudo apt update
sudo apt install -y apt-mirror
复制代码
構成、設定
メジャーリビジョン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
复制代码
ピット
- Postgresqlのようなライブラリはそれ自体でキーを追加する必要があります。apt-mirrorはキー情報を同期しません
- Timescaledbは、ミラーライブラリを設定し、事前にGPGを追加します。それ以外の場合は、リリースファイルがありません。
参照:packagecloud.io/timescale/t…
同期して使用する
sudo apt-mirror
# 同步花了一上午。。而且强烈建议在tmux里执行,ssh会不会自己断?这事很玄学
sudo apt install nginx
复制代码
/ etc / nginx / sites-enableの下にあるデフォルトのページのソフトリンクを削除して、ポート80が占有されないようにし
ます。conf.dディレクトリで、新しいxx.confを作成します。構成の内容は次のとおりです。
server {
listen 80;
listen [::]:80;
server_name mirror.xxx.cn;
location / {
alias /var/www/shared/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}
复制代码
わかりました、次に/var/www/shared/
、コマンドを実行してソフト接続を作成します(別のミラーを追加するのは簡単ですここでは相対パスを使用して
いることに注意してください。パスの関係を自分で決定するだけです/var/www/shared/
sudo ln -s ../html/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu ubuntu
复制代码
nginxサービスを再起動します
sudo service nginx restart
复制代码
すべてがうまくいけば、次のようなページ
イントラネットホスト構成ソース
ヒント:最初に/ etc / hostsを変更し、DNS解決ルールをカスタマイズできます。これは、内部ソースIP環境で頻繁に変更される場合に適しています。
source.listは次のように設定できます。
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
复制代码
ピットポイント
apt-mirrorは、デフォルトでネイティブアーキテクチャと整合性のあるパッケージをダウンロードします。たとえば、ここに追加されていない場合[arch=amd64]
、apt updateは、i386パッケージ情報が見つからないというエラーを報告し、インデックス作成作業を完了できません。これはamd64パッケージのインストールに影響します。
上記の作業が完了すると、aptオフラインソースが設定されます。i386ソースがないことに注意してください。
pip2pi
インストールと構成
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文件的好处就显现出来了,一次配置,整体使用
坑点
你可能遇到以下情况
其他包可以正常安装,而且确定已经为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…