我们知道,在 Ubuntu 系统上安装软件很方便,使用 ​​sudo apt-get install xxx​​​ 即可,但是如果在不能连接互联网的情况下,如何安装或升级软件呢?这里给大家介绍一种使用 dpkg 工具完成软件安装或升级的方法。
  首先,第一步,你得知道你想安装软件的名字,然后根据相应平台下载相应版本的 deb 包。可以在 ​​http://packages.ubuntu.com/​​​ 或者 ​​http://archive.ubuntu.com/ubuntu/pool/main/​​​ 中找到你所需要的 deb 包,并下载。
  以查找 4.6 版本 C 编译器为例,查找页面可能如下:
  [ ​​​http://packages.ubuntu.com/precise/g++​​ ]


Ubuntu 如何离线安装软件包_deb



  [

​http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.6/​​ ]



Ubuntu 如何离线安装软件包_安装软件_02



  然后,

第二步,如果你很清楚你即将安装的 deb 包所需的依赖,可以顺便把依赖的 deb 包下载下来。不用担心,上述网站会把每个 deb 包所需的依赖列出来,但是也不必把所有依赖 down 下来,因为 ubuntu系统本来就安装好了大部分基础的库和工具。


  最后,

第三步,使用

​sudo dpkg -i <package.deb>​​ 命令安装相应的软件包。如果安装过程中提示“未安装软件包 xxx”之类的错误,可以重复上述操作,直至安装成功。


注意事项:
1、查找的 deb 包一定要准确,不仅仅是指文件名,还有平台和版本。
2、上述网站查找 deb 包时,可能只会列出下一级依赖或并未列出所有依赖,所以安装过程可能需要一点耐心。
3、安装结束,如果你想确定是否安装成功,或者安装的版本不对,你想卸载 deb 包,请参考下面命令。

【 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

另外,关于 dpkg 的用法,可以查看 ​​http://man.linuxde.net/dpkg​