如何離線安裝所有依賴包

當我們在一個沒有公網的環境下去部署一些東西的時候往往是讓人很頭疼的一件事,因爲可能會需要各種依賴包,依賴包本身也還有很多依賴關係。如果沒有一次性把全部的依賴包打包下載好,我們下載的過程就能體會到什麼叫俄羅斯套娃。。

一、os依賴包

1、準備一臺與生產部署環境內核版本基本一致的鏡像,安裝mini install版作爲本地環境

# cat /proc/version
Linux version 3.10.0-693.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017

2、配置好本地環境的yum源、保證可通公網,一般都可以配置阿里的yum源即可

# cd /etc/yum.repos.d/
# mkdir bak
# mv ./*repo bak
# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache

3、通過yum將所需要的依賴包全部下載至本地目錄

# yum install --downloadonly --downloaddir= <target_dir> <package-name>

備註:爲保證生產部署環境可以部署自己的本地yum源,我們需要額外的去下載好 createrepo

# yum install --downloadonly --downloaddir=/myrpm createrepo

4、打包以上所有需要的依賴包到生產部署環境,搭建本地yum源

1)通過rpm手動安裝createrepo

根據提示安裝所需依賴包即可
# rpm -ihv createrepo-0.9.9-28.el7.noarch.rpm

2)搭建本地yum源

#創建本地rpm包repodata的索引目錄
# createrepo /myrpm/
Spawning worker 0 with 197 pkgs
Spawning worker 1 with 197 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

#若後續有更新其他依賴包,不需要重建,只需要update一下索引目錄就好
# createrepo --update /myrpm/
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

#配置yum源配置文件
# cd /etc/yum.repos.d/
# mkdir bak
# mv ./*repo bak
# cat local_yum.repo
[local_yum]
name=local_yum
baseurl=file:///myrpm
gpgcheck=0
enabled=1
priority=1

#清除yum緩存
yum clean all

5、通過本地yum源部署安裝

yum install <package-name>

二、python庫安裝

1、下載python依賴包要關注兩者環境的python、pip版本一致

# /app/python/bin/virtualenv /clean_env
New python executable in /clean_env/bin/python2.7
Not overwriting existing python script /clean_env/bin/python (you must use /clean_env/bin/python2.7)
Installing setuptools, pip, wheel...done.

# source /clean_env/bin/activate
(clean_env) # python --version
Python 2.7.9
(clean_env) # pip --version
pip 20.2b1 from /clean_env/lib/python2.7/site-packages/pip (python 2.7)

2、本地環境下載所需要的庫及其依賴包

#requirements.txt文件下是我們需要安裝的所有庫
(clean_env) # pip download -d <target-dir>  --trusted-host mirrors.aliyun.com -r requirements.txt
or
(clean_env) # pip download -d <target-dir>  --trusted-host mirrors.aliyun.com <package-name>

3、將所有python包打包上傳至生產部署環境

4、生產環境指定package目錄安裝庫

# pip install --no-index --find-links=/root/python20/opsinsight/ -r requirements.txt
or
# pip install --no-index --find-links=/root/python20/opsinsight/ <package-name>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章