参考文献:

http://blog.csdn.net/candcplusplus/article/details/52156324

https://www.cnblogs.com/michael-xiang/p/5690746.html

一、说明

  本文主要介绍两类软件的批量离线安装方式,一类是使用sudo apt-get install安装的软件,一类是使用pip install安装的python库。

  环境:

    Ubantu 16.03

    两台主机,一台联网,一台断网

二、apt install 类软件

  在Ubantu中使用apt install 安装软件时,所需要的文件和所有的依赖文件都会在 /var/cache/apt/archives/ 目录下缓存下来,所以只需要将其复制到断网主机上,然后改一下索引位置就能批量安装所有的软件。

  具体步骤如下:

  1. 在联网主机上下载所需软件

# 清空缓存目录
sudo rm -rf /var/cache/apt/archives/* # 下载所需软件
sudo apt-get install python-pip
sudo apt-get install python-dev
sudo apt-get install python-imaging

  2. 拷贝文件

    将 /var/cache/apt/archives/ 目录下的所有文件,除了lock文件,拷贝到U盘debs目录下,下面是我的样例。

    

  3. 在离线主机上保存文件

sudo mkdir /var/debs       # 创建空目录
sudo cp -r /U盘/路径/debs/* /var/debs/ # 将文件拷贝到该目录下

  4. 生成索引

sudo touch /var/debs/Packages.gz
sudo chmod -R 777 /var/debs/ # 设置修改权限
sudo dpkg-scanpackages debs /dev/null | gzip > /var/debs/Packages.gz # 创建索引

  5. 在 /etc/apt/sources.list 中添加本地目录

sudo gedit /etc/apt/sources.list

  将原来的内容全部注释,在末尾加行代码:

deb file:/var debs/

  注意var和debs之间是空格

  6. 更新索引

sudo apt-get update

  7.安装软件

sudo apt-get install python-pip
sudo apt-get install python-dev
sudo apt-get install python-imaging

三、pip install类库

  这里先用之前的方法安装好pip。

  1. 在联网主机上找一目录,准备保存所需文件

    我直接创建了一个 /home/python 目录,然后在里面创建一个packages目录。

  2. 安装所需库

pip install scapy
pip install scapy-http
pip install py2neo
pip install numpy
pip install pandas
pip install scikit-image
pip install tensorflow

  3. 打包已安装的库

pip freeze > /home/python/requirements.txt
pip install --download /home/python/packages -r /home/python/requirements.txt

  注意,执行完第一行命令之后产生的 requirements.txt 文件需要删除一些配置,否则第二行无法正常执行。

  我的初始 requirements.txt 文件如下:

absl-py==0.1.9
adium-theme-ubuntu==0.3.4
backports.functools-lru-cache==1.4
backports.weakref==1.0.post1
bleach==1.5.0
cycler==0.10.0
decorator==4.2.1
enum34==1.1.6
funcsigs==1.0.2
futures==3.2.0
html5lib==0.9999999
Markdown==2.6.11
matplotlib==2.1.2
mock==2.0.0
networkx==2.1
numpy==1.14.0
pandas==0.22.0
pbr==3.1.1
Pillow==5.0.0
protobuf==3.5.1
py2neo==3.1.2
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.3
PyWavelets==0.5.2
scapy==2.3.3
scapy-http==1.8
scikit-image==0.13.1
scipy==1.0.0
six==1.11.0
subprocess32==3.2.7
tensorflow==1.5.0
tensorflow-tensorboard==1.5.0
unity-lens-photos==1.0
Werkzeug==0.14.1

  删除报错部分之后如下:

backports.functools-lru-cache==1.4
backports.weakref==1.0.post1
bleach==1.5.0
cycler==0.10.0
decorator==4.2.1
enum34==1.1.6
funcsigs==1.0.2
futures==3.2.0
html5lib==0.9999999
Markdown==2.6.11
matplotlib==2.1.2
mock==2.0.0
networkx==2.1
numpy==1.14.0
pandas==0.22.0
pbr==3.1.1
Pillow==5.0.0
protobuf==3.5.1
py2neo==3.1.2
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.3
PyWavelets==0.5.2
scapy==2.3.3
scapy-http==1.8
scikit-image==0.13.1
scipy==1.0.0
six==1.11.0
subprocess32==3.2.7
tensorflow==1.5.0
tensorflow-tensorboard==1.5.0
Werkzeug==0.14.1

  4. 拷贝到离线主机

    将/home/python这个拷贝到离线主机下,路径也是/home/python

  5. 离线安装所有打包好的库

pip install --no-index --find-links=/home/python/packages -r /home/python/requirements.txt

最新文章

  1. 关于$.getJson
  2. sqlite3里类似top的用法
  3. js的in运算符与instanceof运算符
  4. sql的游标使用(转)
  5. 【转】UILabel、UITextView自适应得到高度
  6. iOS UICollectionview的详细介绍
  7. Combo( 自定义下拉框) 组件
  8. LeetCode 191. Number of 1 Bits Question
  9. 转载收藏之用 - 微信公众平台开发教程(五):使用Senparc.Weixin.MP SDK
  10. PHP设计模式——策略模式
  11. 黑马程序员:Java基础总结----正则表达式
  12. Mysql 锁基础
  13. List数组和集合相互转换
  14. Shell从入门到精通进阶之四:流程控制
  15. Jenkins自定义主题
  16. Vue中 等待DOM或者数据完成 在执行 --this.$nextTick()
  17. [译]Godot系列教程六 - 简单的二维游戏
  18. scala里的模式匹配和Case Class
  19. USB驱动程序之USB设备驱动程序2鼠标用作键盘学习笔记
  20. zabbix 报警方式之 微信公众号报警(5)

热门文章

  1. ocr jdk
  2. PHP缓存锁原理及利用
  3. docker swarm英文文档学习-4-swarm模式如何运行
  4. ipv6导致的域名解析慢,nslookup,lvs,hosts.conf
  5. openresty火焰图安装
  6. Grunt-jsdoc生成JS API文档
  7. redis安装及常用命令
  8. 检测QQ在线状态脚本(20141022测试成功)
  9. 如何挂载另一个lvm硬盘
  10. kettle学习笔记(十)——数据检验、统计、分区与JS脚本