如何在一个不能连公网的Ubuntu服务器上安装一个软件
前言
在Ubuntu服务器中,很多人习惯使用 apt-get 命令安装各种工具或者依赖,但是如果遇到一个不能连公网的服务器,那该怎么办呢?
apt-get 工具下载dep包
先找一台可以联网的Ubuntu服务器,使用下面命令下载某个dep包,其中 xxxx 是只你要要下载的包名
apt-get download xxxx
然后将 dep 包拷贝到 不能联网的 Ubuntun 服务器中。
使用 dpkg 工具安装 dep 包
dpkg工具是Ubuntu系统自带的。可以使用它安装 .dep 包
我们直接使用下面命令安装dep包。其中 xxxx.dep 是我们拷贝的dep包
dpkg -i xxxx.dep
在安装过程中,可能会因为依赖缺失,导致安装失败,安装失败的打印中会提示那些依赖缺失,我们通过相同的方式先安装依赖。这个过程可能会比较繁琐,因为缺失的依赖依然可能会有依赖。需要一些耐心。
当然也可以把所有依赖一次下载完成,然后全部拷贝到目标服务器上,然后缺哪个直接安装哪个就可以,这样就不用在一次一次的下载拷贝了,稍微能增加一点效率
查看某个包的所有依赖
可以使用 apt-rdepends
工具查看某个包的所有依赖, apt-rdepends
需要手动安装,安装命令如下:
# 安装 apt-rdepends
sudo apt-get update
sudo apt-get install apt-rdepends
查看所有依赖
# xxx是你要安装的包名(不是dep包名, 通过 apt-get install xxx 时,xxx就是这里的包名)
apt-rdepends xxx | grep -v "^ "
这会列出所有的依赖。我们可以通过 apt-get download xxx xxx2 xxx3
一次性下载当前环境中未安装的依赖。
后记
dpkg 详细命令教程如下:
1)安装软件
命令行:dpkg -i <.deb file name>
示例:dpkg -i avg71flm_r28-1_i386.deb
2)安装一个目录下面所有的软件包
命令行:dpkg -R
示例:dpkg -R /usr/local/src
3)释放软件包,但是不进行配置
命令行:dpkg –unpack package_file 如果和-R一起使用,参数可以是一个目录
示例:dpkg –unpack avg71flm_r28-1_i386.deb
4)重新配置和释放软件包
命令行:dpkg –configure package_file
如果和-a一起使用,将配置所有没有配置的软件包
示例:dpkg –configure avg71flm_r28-1_i386.deb
5)删除软件包(保留其配置信息)
命令行:dpkg -r
示例:dpkg -r avg71flm
6)替代软件包的信息
命令行:dpkg –update-avail <Packages-file>
7)合并软件包信息
dpkg –merge-avail <Packages-file>
8)从软件包里面读取软件的信息
命令行:dpkg -A package_file
9)删除一个包(包括配置信息)
命令行:dpkg -P
10)丢失所有的Uninstall的软件包信息
命令行:dpkg –forget-old-unavail
11)删除软件包的Avaliable信息
命令行:dpkg –clear-avail
12)查找只有部分安装的软件包信息
命令行:dpkg -C
13)比较同一个包的不同版本之间的差别
命令行:dpkg –compare-versions ver1 op ver2
14)显示帮助信息
命令行:dpkg –help
15)显示dpkg的Licence
命令行:dpkg –licence (or) dpkg –license
16)显示dpkg的版本号
命令行:dpkg –version
17)建立一个deb文件
命令行:dpkg -b direc×y [filename]
18)显示一个Deb文件的目录
命令行:dpkg -c filename
19)显示一个Deb的说明
命令行:dpkg -I filename [control-file]
20)搜索Deb包
命令行:dpkg -l package-name-pattern
示例:dpkg -I vim
21)显示所有已经安装的Deb包,同时显示版本号以及简短说明
命令行:dpkg -l
22)报告指定包的状态信息
命令行:dpkg -s package-name
示例:dpkg -s ssh
23)显示一个包安装到系统里面的文件目录信息
命令行:dpkg -L package-Name
示例:dpkg -L apache2
24)搜索指定包里面的文件(模糊查询)
命令行:dpkg -S filename-search-pattern
25)显示包的具体信息
命令行:dpkg -p package-name
示例:dpkg -p cacti
博客中所涉及到的图片都有版权,请谨慎使用