第八讲:Linux怎样安装软件

admin 提交于 周二, 10/20/2020 - 10:29

1. 查看已安装软件

按SUPER+a,然后输入要搜索应用软件的英文关键词。例如输入set可以找到设置相关的应用软件。注意:Ubuntu 20.04的搜索框不支持输入中文。通过键盘方向键可以浏览全部或搜索的应用。

2. 更新到最快的软件源

Ubuntu的默认软件源有时可能因为用户过多,导致下载软件很慢,此时我们可能需要更新一个更快的镜像。办法是,按SUPER+a,输入soft,通过右方向键找到“软件和更新”应用,回车。在应用里找到“下载自”选项,选择“从其他站点”。这时会弹出一个窗口,然后“选择最佳服务器”。之后会执行大概一分钟左右的网络测试,寻找最快的软件更新镜像。找到后按提示选择即可。

3. 浏览可下载安装的软件

打开软件中心,我们可以浏览到Ubuntu下所有的软件,基本上都是可以免费下载的。在这个软件中心里可以了解Ubuntu的强大功能,安装里面任何一款软件都只是点击几下的事情。(不过笔者在测试的时候遇到过网络问题,软件进入分类后会显示空白内容)

4. 命令行下安装软件

Linux下常见的二进制安装包格式是RPM和DEB,通常这种安装包只能安装在特定的Linux版本里。比如说,我们在网上找到一个针对Fedora Linux 12的RPM安装包,它通常不能在OpenSUSE Linux上安装,也不一定能在Fedora Linux 14上安装。这是因为这些软件包通常会依赖系统的动态链接库,而不同Linux版本的系统动态链接库版本不同。一些通用的安装包会尽量不依赖于系统动态链接库,把所有库都打包起来,这样会令安装包变得很大。RPM包是在RedHat、Fedora、SUSE等Linux发行版中使用,而DEB在Debian、Ubuntu等中使用,不过它们也有支持安装另外格式的软件包的机制。不同Linux发行版会在安装包上再建设一套软件依赖数据库,说明装某一个软件之前必须先安装哪些软件,并且可以自动安装相关软件。在Fedora中使用yum,在OpenSUSE中使用zypper,在Ubuntu中使用apt。这个数据库是经过Linux发行版开发商测试的,保证了软件的稳定性。如果我们脱离了这套软件依赖数据库,从源代码去安装一些版本不合适的系统软件,可能会对系统稳定性造成致命的打击。在软件包管理还不完善的年代,我从源代码安装一个软件需要先安装几个依赖的软件,而那几个依赖的软件本身都要再安装几个依赖的软件,这很有可能会演变成一场灾难。这些都是手动一个一个下载编译安装的,最后整个系统的基础软件都被我换了一遍,系统变得非常不稳定。因为软件安装机制的完善,现在的Linux系统已经相当好用了。

好了,背景知识就介绍完了,下面讲一下Ubuntu下使用apt查找和安装软件的办法。

首先,我们需要更新系统的软件信息,这个动作基本上是几个月才做一次的。

sudo apt update

然后,我们通过apt-cache search命令查找软件,例如我们想查一下系统有什么游戏,可以输入

apt-cache search game | less

命令里使用了管道操作,把结果输出到less命令分页显示。我们还可以使用常用的grep命令对结果进行过滤,例如,我们可以通过下面命令去查找在控制台玩的游戏:

apt-cache search game | grep console

通过上面命令,我们找到了一个貌似是五指棋的游戏pente,于是我们通过下面apt-get去安装:

sudo apt-get install pente

如何使用一个陌生的软件

作为新手,通常安装完软件之后就不知道可以怎么做了。这时,我们可以查看软件的说明文档,比如`man pente`、`info pente`或`pente -help`。通常命令行的命令会提供-h或-help的参数给出命令的简短说明。从`pente -help`中可以看到`pente -text`可以进入游戏的终端模式,然后我们就可以开始玩了。

有时候,软件的可执行文件不一定和软件包得名称一致。我们需要通过apt-file命令去查找。用法如下:

sudo apt-get install apt-file # 安装apt-file软件
sudo apt-file update # 更新apt-file数据库,可能需要等待几分钟才能完成
apt-file list pente # 显示pente软件包的所有文件列表,从中可以找到bin目录下得可执行文件
apt-file search pente # 搜索一个文件是属于哪个软件包的

 

Windows下提供的软件都是编译好的可执行文件,有些可执行文件只能在特定平台下运行。比如说Windows 7下可执行文件可能无法在Windows XP下运行。Linux的发行版多如牛毛,可执行文件很难在多个平台下运行。幸好Linux下的大部分软件都是自由软件,自由软件都提供源代码。因此,Linux下由用户自行从源代码编译软件是一件常见的事情。

为了演示从源代码安装软件的过程,我们先要获取一个软件的源代码,以Web服务器Nginx为例,我们先获取其源代码并解压:

wget http://nginx.org/download/nginx-1.7.1.tar.gz
tar zxf nginx-1.7.1.tar.gz

*.tar.gz是Linux下常见的归档格式,用tar命令来解压,zxf是参数,z表示解压gz文件,x表示解压,f表示后面跟文件名。有些归档文件是以.tar.bz2结尾的,对于这种文件应该使用`tar xjf`解压。有些归档文件以.tar.xz结尾,应该使用`tar xJf`解压。不同的后缀代表不同的压缩算法。解压后,我们就可以为编译做准备:

sudo apt-get install -y build-essential
cd nginx-1.7.1
./configure

上面第一条命令是安装编译软件集,包括gcc、make等软件。configure的作用是检查系统架构、基础软件、系统库等,如果现有系统的软件不满足安装该软件的依赖关系,configure会报错。configure还可以提供参数启用或关闭软件的功能,可使用的参数可以通过`configure --help`查看。比如说,我们想把软件安装到指定目录可以使用`configure --prefix`参数。configure配置完成的下一步是编译:

make

最后一步是把软件安装到系统目录:

sudo make install

Linux下的软件通常会有README、INSTALL等文件,里面记录了软件的安装使用说明,可以用vim命令查看。

上一讲    返回目录    下一讲

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
请输入"汉语"