加载中...

如何在一个不能连公网的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
posted @ 2023-05-30 16:37  水车  阅读(138)  评论(0编辑  收藏  举报