【Ubuntu】Ubunut上搭建本地源,做離線安裝

一、實(shí)驗(yàn)背景

Ubuntu作為最優(yōu)秀的Linux發(fā)行版之一,是初學(xué)者入門的不二選擇,但Linux有個(gè)最大的問題,就是離了網(wǎng)絡(luò)就廢了。

在Windows系統(tǒng)中,安裝軟件十分方便,下載安裝程序,直接setup就可以了。

其實(shí)Linux安裝軟件也非常方便,前提是在聯(lián)網(wǎng)的情況下,但要是離線安裝,就無法享用apt的優(yōu)勢(shì)了,而直接使用dpkg安裝,各種軟件的依賴關(guān)系絕對(duì)讓你頭疼。

在某些對(duì)安全要求比較嚴(yán)的地方,是沒有上網(wǎng)環(huán)境的,如果我們要在不能聯(lián)網(wǎng)的Ubuntu上安裝特定的軟件包(比如nginx),怎么辦?

類比CentOS,聰明如果你,一定想到了將指定的軟件包及其依賴先在有網(wǎng)的機(jī)器上下載下來,然后拷貝到不能聯(lián)網(wǎng)的機(jī)器,搭建本地倉庫(源),執(zhí)行安裝。

那么問題來了:

1. 怎么在有網(wǎng)的機(jī)器上將一個(gè)特定軟件包及其依賴一次性下載下來?

2. 怎么在不能聯(lián)網(wǎng)的機(jī)器,搭建本地倉庫(源)?


二、實(shí)驗(yàn)環(huán)境

操作系統(tǒng): Ubuntu16.04?

serverA? ?192.168.1.101? ? 能聯(lián)網(wǎng)

serverB? 192.168.1.102? ? 不能聯(lián)網(wǎng)


三、在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離線機(jī)器

#? tar? -zcf? ?nginxDeps.tar.gz? ???nginxDeps



四、在serverB利用離線安裝包搭建本地源


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

注意:不能解壓在/root 目錄下,否則會(huì)報(bào)沒有讀取權(quán)限!


# 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


如上,我們實(shí)現(xiàn)了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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容