【Ubuntu】Ubunut上搭建本地源,做离线安装

一、实验背景

Ubuntu作为最优秀的Linux发行版之一,是初学者入门的不二选择,但Linux有个最大的问题,就是离了网络就废了。

在Windows系统中,安装软件十分方便,下载安装程序,直接setup就可以了。

其实Linux安装软件也非常方便,前提是在联网的情况下,但要是离线安装,就无法享用apt的优势了,而直接使用dpkg安装,各种软件的依赖关系绝对让你头疼。

在某些对安全要求比较严的地方,是没有上网环境的,如果我们要在不能联网的Ubuntu上安装特定的软件包(比如nginx),怎么办?

类比CentOS,聪明如果你,一定想到了将指定的软件包及其依赖先在有网的机器上下载下来,然后拷贝到不能联网的机器,搭建本地仓库(源),执行安装。

那么问题来了:

1. 怎么在有网的机器上将一个特定软件包及其依赖一次性下载下来?

2. 怎么在不能联网的机器,搭建本地仓库(源)?


二、实验环境

操作系统: Ubuntu16.04 

serverA   192.168.1.101    能联网

serverB  192.168.1.102    不能联网


三、在serverA上制作nginx离线安装包


1. 添加nginx官方仓库


Official Debian/Ubuntu packages

https://www.nginx.com/resources/wiki/start/topics/tutorials/install


#  vim  /etc/apt/sources.list.d/nginx.list

##############################################

deb http://nginx.org/packages/ubuntu/ xenial nginx

deb-src http://nginx.org/packages/ubuntu/ xenial nginx

##############################################


# apt-get update

# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys  ABF5BD827BD9BF62


添加仓库(源)信任的另一种方式


#  vim  /etc/apt/sources.list.d/nginx.list

##########################################################

deb       [trusted=yes]      http://nginx.org/packages/ubuntu/   xenial nginx

deb-src  [trusted=yes]     http://nginx.org/packages/ubuntu/   xenial nginx

###########################################################

# apt-get update

列出添加的nginx源中软件包


#  ll /var/lib/apt/lists/*nginx*

#  grep -E "Package:|Version:" Package /var/lib/apt/lists/nginx.org_packages_ubuntu_dists_xenial_nginx_binary-amd64_Packages

# grep  -E "Package:|Version:" Package  /var/lib/apt/lists/nginx.org_packages_ubuntu_dists_xenial_nginx_binary-amd64_Packages | awk '{print $2}'


# apt-cache madison nginx

# apt-cache policy nginx


2. 下载nginx主包及其依赖


# mkdir -p /root/nginxDeps

# cd   /root/ngixDeps

# apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances nginx=1.16.0-1~xenial | grep -v i386| grep "^\w" | sort -u

#  apt-get download  $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances nginx=1.16.0-1~xenial | grep -v i386| grep "^\w" | sort -u)


# dpkg-scanpackages . | gzip -9c > Packages.gz



3.将/root/nginxDeps目录打包,拷贝到serverB离线机器

#  tar  -zcf   nginxDeps.tar.gz     nginxDeps



四、在serverB利用离线安装包搭建本地源


# tar  -zxf    nginxDeps.tar.gz  -C  /tmp

注意:不能解压在/root 目录下,否则会报没有读取权限!


# cp /etc/apt/sources.list    /etc/apt/sources.list.bak

# echo  >  /etc/apt/sources.list 

#  vi   /etc/apt/sources.list  

#########################################

deb [trusted=yes] file:///tmp/nginxDeps/    ./

#########################################

 

# apt-get clean all

# apt-get update


# apt -y install nginx




还原仓库文件

#   cp  /etc/apt/sources.list.bak   /etc/apt/sources.list

#  rm  -rf  /tmp/nginxDeps


如上,我们实现了nginx在Ubuntu上的离线安装,其他软件的安装方法类似,触类旁通,举一反三。


六、参考

Get Docker CE for Ubuntu

https://docs.docker.com/install/linux/docker-ce/ubuntu


How To Build Local APT Repositories?

https://www.centos.bz/2017/07/apt-mirror-deploy-ubuntu-local-repositry

https://odzangba.wordpress.com/2006/10/13/how-to-build-local-apt-repositories


How To Install Softwares Offline In Ubuntu 16.04

https://www.ostechnix.com/install-softwares-offline-ubuntu-16-04

https://www.jb51.net/article/99570.htm


Is there an apt command to download a deb file from the repositories to the current directory?

https://askubuntu.com/questions/30482/is-there-an-apt-command-to-download-a-deb-file-from-the-repositories-to-the-curr


How to list/download the recursive dependencies of a debian package?

https://stackoverflow.com/questions/22008193/how-to-list-download-the-recursive-dependencies-of-a-debian-package


How to download all dependencies and packages to directory?

https://stackoverflow.com/questions/13756800/how-to-download-all-dependencies-and-packages-to-directory


How To Create A Local Debian/Ubuntu Mirror With apt-mirror?

https://www.howtoforge.com/local_debian_ubuntu_mirror


How do I download a package from apt-get without installing it?

https://stackoverflow.com/questions/4419268/how-do-i-download-a-package-from-apt-get-without-installing-it


How to Force update from unsigned repository Ubuntu 16.04 ?

https://askubuntu.com/questions/732985/force-update-from-unsigned-repository-ubuntu-16-04


How to download .deb package and all dependencies?

https://superuser.com/questions/876727/how-to-download-deb-package-and-all-dependencies


Ubuntu 16.04: Download deb package and all package dependencies

https://www.hiroom2.com/2016/08/10/ubuntu-16-04-download-deb-package-and-all-package-dependencies


How to list all packages from a repository in ubuntu / debian?

https://serverfault.com/questions/252333/list-all-packages-from-a-repository-in-ubuntu-debian

https://www.linuxuprising.com/2018/11/how-to-list-all-packages-in-repository.html

https://askubuntu.com/questions/220478/how-to-get-list-of-installable-packages-from-repositories


THE DEB AND DEB-SRC TYPES: GENERAL FORMAT

https://manpages.debian.org/testing/apt/sources.list.5.en.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343