通常linux上的软件安装方装方式:
- 在线安装
- 从磁盘安装deb软件包
- 从二进制软件包安装
- 从源代码编译安装
这几种方法各有优劣,下面介绍前三种。
一、在线安装
平时我们使用windows安装软件时,需要从网上下载安装包,然后一直下一步... 现在我们来到了Linux的世界中,感受一下geek的思维方式——一个命令加回车,等待一 下,软件就安装好了,这就是方便的在线安装软件的方式。有一点需要提前说明的是,由于linux发行版本不同,所以在线安装方式存在一些差异(包括包管理工具和命令),这里涉及的方式只适用于ubuntu发行版本,或基于ubuntu的发行版如ubuntukylin(优麒麟),ubuntu又是基于debian的发行版,它使用的是debian的包管理工具dpkg,所以一些操作也适用于debian。而采用其它包管理工具的发行版不适用。
(一).apt包管理工具及命令介绍
APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化 了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装 在支持RPM的系统管理RPM包。这个包管理器包含以 apt- 开头的的多个工具,如 apt-get apt-cache apt-cdrom 等,在Debian系列的发行版中使用。
先来看几个名词:
软件源:上传下载软件的服务器
软件源镜像服务器:和软件源内容一样(更新有延迟)的服务器
软件包列表:这个表里会有软件依赖信息的记录,对于软件依赖,举个例子:我们安装 A
软件的时候,而这个软件需要 B
这个软件包才能正常工作,这个时候 apt-get 在安装软件的时候会一并替我们安装了,以保证 A
能正常的工作。我们需要定期从服务器上下载一个软件包列表,使用 sudo apt-get update 命令来保持本地的软件包列表是最新的(有时你也需要手动执行这个操作,比如更换了软件源)
1.apt-get
格式:apt-get <工具> <参数> <软件包名>
apt-get 使用各用于处理apt
包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的常用的一些工具:
工具 说明
install 其后加上软件包名,用户安装一个软件包
update 从软件源镜像服务器下载/更新本地软件源的软件包列表
upgrade 升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update
dist-upgrade 解决依赖关系并升级(存在一定危险性)
remove 移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件
autoremove 移除之前被其他软件包依赖,但现在不再被使用的软件包
purge 与remove相同,但会完全移除软件包,包含其配置文件
clean 移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/
autoclean 移除已安装的软件的旧版本软件包
下面是一些 apt-get 常用的参数:
参数 说明
-y 自动回应是否安装软件包的选项,在一些自动化安装脚本中使用这个参数将十分有
-s 模拟安装
-q 静默安装方式,指定多个q
或者-q=#
,#表示数字,用于设定静默级别,这在你不想要在安装软件包时屏幕输出过多时很有用
-f 修复损坏的依赖关系
-d 只下载不安装
--reinstall 重新安装已经安装但可能存在问题的软件包
--install-suggests 同时安装APT给出的建议安装的软件包
2.软件搜索
当自己刚知道了一个软件,想下载使用,需要确认软件仓库里面有没有,就需要用到搜索功能了,命令如下:
sudo apt-cache search softname1 softname2 softname3……
3.软件安装
apt-get install <软件包名>
注:如何在不知道软件包完整名的时候进行安装。通常我们是使用Tab
键补全软件包名,后面会介绍更好的方法来搜索软件包。有时候你需要同时安装多个软件包,你还可以使用正则表达式匹配软件包名进行批量安装。
4.软件升级
# 更新软件源 $ sudo apt-get update # 升级没有依赖问题的软件包 $ sudo apt-get upgrade # 升级并解决依赖关系 $ sudo apt-get dist-upgrade
5.卸载软件
sudo apt-get remove <软件名>
二、使用dpkg从本地磁盘安装deb软件包
1.dpkg介绍
dpkg是Debian软件包管理器的基础,它被伊恩·默多克创建于1993年。dpkg与RPM十分相似,同样被用于安装、卸载和供给和.deb软件包相关的信息。
dpkg本身是一个底层的工具。上层的工具,像是APT,被用于从远程获取软件包以及处理复杂的软件包关系。"dpkg"是"Debian Package"的简写。
我们经常可以在网络上简单以deb
形式打包的软件包,就需要使用dpkg
命令来安装
dpkg
常用参数介绍
参数 | 说明 |
---|---|
-i |
安装指定deb包 |
-R |
后面加上目录名,用于安装该目录下的所有deb安装包 |
-r |
remove,移除某个已安装的软件包 |
-I |
显示deb 包文件的信息 |
-s |
显示已安装软件的信息 |
-S |
搜索已安装的软件包 |
-L |
显示已安装软件包的目录信息 |
2.使用dpkg安装deb软件包
我们先使用 apt-get 加上 -d 参数只下载不安装,下载emacs编辑器的deb包,下载完成后,我们可以查看/var/cache/apt/archives/目录下的内容,如下图:
然后我们将第一个deb
拷贝到home目录下,并使用dpkg
安装
$ cp /var/cache/apt/archives/emacs24_24.3+1-4ubuntu1_amd64.deb ~
# 安装之前参看deb包的信息
$ sudo dpkg -I emacs24_24.3+1-4ubuntu1_amd64.deb
如你所见,这个包还额外依赖了一些软件包,这意味着,如果主机目前没有这些被依赖的软件包,直接使用dpkg安装可能会存在一些问题,因为dpkg
并不能为你解决依赖关系
# 使用dpkg安装
$ sudo dpkg -i emacs24_24.3+1-4ubuntu1_amd64.deb
跟前面预料的一样,这里你可能出现了一些错误:
我们将如何解决这个错误了,这就要用到apt-get
了,使用它的-f
参数了,修复依赖关系的安装
$ sudo apt-get -f install
没有任何错误,这样我们就安装成功了,然后你可以运行emacs程序
3.查看已安装软件包的安装目录
如果你依然在纠结到底linux将软件安装到了什么地方,那么很幸运你将可以通过dpkg
找到答案
使用dpkg -L
查看deb
包目录信息
sudo dpkg -L emacs
三、从二进制包安装
二进制包的安装比较简单,我们需要做的只是将从网络上下载的二进制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录添加进PATH
环境变量即可。