Linux下软件安装

来源:互联网 发布:忠臣不事二主 知乎 编辑:程序博客网 时间:2024/05/22 07:52
Linux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
Linux 下软件安装
实验介绍
介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用。
一、Linux 上的软件安装
通常 Linux 上的软件安装主要有三种方式:
在线安装
从磁盘安装deb软件包
从二进制软件包安装
从源代码编译安装
这几种安装方式各有优劣,而大多数软件包会采用多种方式发布软
件,所以我们常常需要全部掌握这几种软件安装方式,以便适应各种
环境。下面将介绍前三种安装方式,从源码编译安装你将在 Linux 程
序设计中学习到。
二、在线安装
试想一下,平时我们在使用 Windows 的时候,想要安装一个软件,我
们需要在网上去下载对应软件的安装包,接着安装的时候就是不断的
去点击下一步,这些流程想必大家已经经历的无数回了,但是在 Linux
下,一个命令加回车,等待一下,软件就安装好了,这就是方便的在
线安装软件的方式。在学习这种安装方式之前有一点需要说明的是,
在不同的linux发行版上面在线安装方式会有一些差异包括使用的命令
及它们的包管理工具,因为我们的开发环境是基于ubuntu的,所以这
里我们涉及的在线安装方式将只适用于ubuntu发行版,或其它基于
ubuntu的发行版如国内的ubuntukylin(优麒麟),ubuntu又是基于
debian的发行版,它使用的是debian的包管理工具dpkg,所以一些
操作也适用与debian。而在其它一些采用其它包管理工具的发行版如
redhat,centos,fedora等将不适用(redhat和centos使用rpm)。
1. 先体验一下
比如我们想安装一个软件,名字叫做 w3m (w3m是一个命令行的简易
网页浏览器),那么输入如下命令:
$ sudo apt- get install w3m
1 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
这样的操作你应该在前面的章节中看到过很多次了,它就表示将会安
装一个软件包名为 w3m 的软件
我们来看看命令执行后的效果:
$ w3m www.shiyanlou.com/faq
注意:如果你在安装一个软件之后,无法立即使用 Tab 键补全这可命
令,你可以尝试先执行 source ~/.zshrc ,然后你就可以使用补全操
作。
2. apt 包管理工具介绍
2 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
APT是Advance Packaging Tool(高级包装工具)的缩写,是
Debian及其派生发行版的软件包管理器,APT可以自动下载,
配置,安装二进制或者源代码格式的软件包,因此简化了Unix
系统上管理软件的过程。APT最早被设计成dpkg的前端,用来
处理deb格式的软件包。现在经过APT-RPM组织修改,APT已
经可以安装在支持RPM的系统管理RPM包。这个包管理器包含
以 apt- 开头的的多个工具,如 apt-get apt-cache
apt-cdrom 等,在Debian系列的发行版中使用。
当你在执行安装操作时,首先 apt-get 工具会在本地的一个数据库中
搜索关于 w3m 软件的相关信息,并根据这些信息在相关的服务器上下
载软件安装,这里大家可能会一个疑问:既然是在线安装软件,为啥
会在本地的数据库中搜索?要解释这个问题就得提到几个名词了:
软件源镜像服务器
软件源
我们需要定期从服务器上下载一个软件包列表,使用 sudo apt-get
update 命令来保持本地的软件包列表是最新的(有时你也需要手动执
行这个操作,比如更换了软件源),而这个表里会有软件依赖信息的
记录,对于软件依赖,我举个例子:我们安装 w3m 软件的时候,而这
个软件需要 libgc1c2 这个软件包才能正常工作,这个时候
apt-get 在安装软件的时候会一并替我们安装了,以保证 w3m 能正
常的工作。
3.apt-get
apt-get 使用各用于处理 apt 包的公用程序集,我们可以用它来在线
安装、卸载和升级软件包等,下面列出一些 apt-get 包含的常用的一
些工具:
工具
install
update
upgrade
说明
其后加上软件包名,用于安装一个软件包
从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表
升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常
会在更新之前执行一次 update
dist-upgrade 解决依赖关系并升级(存在一定危险性)
remove
autoremove
purge
clean
autoclean
移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但
不包含软件包的配置文件
移除之前被其他软件包依赖,但现在不再被使用的软件包
与remove相同,但会完全移除软件包,包含其配置文件
移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt
/archives/
移除已安装的软件的旧版本软件包
下面是一些 apt-get 常用的参数:
参数
3 of 10
说明
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
参数
-y
-s
-q
说明
自动回应是否安装软件包的选项,在一些自动化安装脚本中使用这
个参数将十分有用
模拟安装
静默安装方式,指定多个 q 或者 -q=# ,#表示数字,用于设定静默
-f 级别,这在你不想要在安装软件包时屏幕输出过多时很有用
修复损坏的依赖关系
-d 只下载不安装
--reinstall 重新安装已经安装但可能存在问题的软件包
--install-
suggests
同时安装APT给出的建议安装的软件包
4.安装软件包
关于安装,如前面演示的一样你只需要执行 apt-get install <软件
包名> 即可,除了这一点,你还应该掌握的是如何重新安装软件包。
很多时候我们需要重新安装一个软件包,比如你的系统被破坏,或者
一些错误的配置导致软件无法正常工作。
你可以使用如下方式重新安装:
$ sudo apt- get --reinstall install w3m
另一个你需要掌握的是,如何在不知道软件包完整名的时候进行安
装。通常我们是使用 Tab 键补全软件包名,后面会介绍更好的方法来
搜索软件包。有时候你需要同时安装多个软件包,你还可以使用正则
表达式匹配软件包名进行批量安装。
5.软件升级
# 更新软件源
$ sudo apt- get update
# 升级没有依赖问题的软件包
$ sudo apt- get upgrade
# 升级并解决依赖关系
$ sudo apt- get dist-upgrade
6.卸载软件
如果你现在觉得 w3m 这个软件不合自己的胃口,或者是找到了更好
的,你需要卸载它,那么简单!同样是一个命令加回车 sudo
apt-get remove w3m ,系统会有一个确认的操作,之后这个软件便
“滚蛋了”。
4 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
或者,你可以执行
# 不保留配置文件的移除
$ sudo apt- get purge w3m
# 或者 sudo apt-get --purge remove
# 移除不再需要的被依赖的软件包
$ sudo apt- get autoremove
7.软件搜索
当自己刚知道了一个软件,想下载使用,需要确认软件仓库里面有没
有,就需要用到搜索功能了,命令如下:
sudo apt-cache search softname1 softname2 softname3
......
apt-cache 命令则是针对本地数据进行相关操作的工具, search 顾
名思义在本地的数据库中寻找有关 softname1 softname2 ...... 相
关软件的信息。现在我们试试搜索一下之前我们安装的软件 w3m ,如
图:
结果显示了4个 w3m 相关的软件,并且有相关软件的简介。
关于在线安装的的内容我们就介绍这么多,想了解更多关于APT的内
容,你可以参考:
APT HowTo (http://www.debian.org/doc/manuals/apt-howto
/index.zh-cn.html#contents)
三、使用 dpkg 从本地磁盘安装
5 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
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 安装
6 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
$ cp /var/cache/apt/archives/emacs24_24 .3 + 1 - 4u buntu
1_amd64.deb ~
# 安装之前参看deb包的信息
$ sudo dpkg -I emacs24_24 .3 + 1 - 4u buntu1_amd64.deb
如你所见,这个包还额外依赖了一些软件包,这意味着,如果主机目
前没有这些被依赖的软件包,直接使用dpkg安装可能会存在一些问
题,因为 dpkg 并不能为你解决依赖关系。
# 使用dpkg安装
$ sudo dpkg -i emacs24_24 .3 + 1 - 4u buntu1_amd64.deb
跟前面预料的一样,这里你可能出现了一些错误:
我们将如何解决这个错误了,这就要用到 apt-get 了,使用它的 -f
参数了,修复依赖关系的安装
$ sudo apt-get -f install
没有任何错误,这样我们就安装成功了,然后你可以运行emacs程序
7 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
3.查看已安装软件包的安装目录
如果你依然在纠结到底linux将软件安装到了什么地方,那么很幸运你
将可以通过 dpkg 找到答案
使用 dpkg -L 查看 deb 包目录信息
$ sudo dpkg - L emacs
dpkg 还有一些其他的参数,这里将作为练习题由你自己来学习
8 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
四、从二进制包安装
二进制包的安装比较简单,我们需要做的只是将从网络上下载的二进
制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录
添加进 PATH 环境变量即可,如果你不知道该放到什么位置,请重新复
习第四节关于 Linux 目录结构的内容。
作业
这一节是本课程的最后一节,所以这里我们给大家介绍一个很有趣的
命令。
安装:
$ sudo apt- get install bb
动手做实验,轻松学IT。
实验楼-通过动手实践的方式学会IT技术。
公司简介 (/aboutus) 联系我们 (/contact) 常见问题 (/faq#howtostart) 加入我们 (/hire) 隐私协议 (/privacy)
会员条款 (/terms)
站长统计 (http://www.cnzz.com/stat/website.php?web_id=5902315)
蜀ICP备13019762号 (http://www.miibeian.gov.cn/)
(http://www.anquan.org/authenticate/cert/?site=www.shiyanlou.com&at=realname)
9 of 10
08/17/2015 07:47 PMLinux下软件安装 - 实验楼
https://www.shiyanlou.com/courses/document/356
QQ群
微信
微博
(http://weibo.com/shiyanlou2013)
10 of 10
08/17/2015 07:47 PM
0 0