本文环境
本文基于 Ubuntu 15.04 64-bit 与 Fedora 22 64-bit 两个 Linux 发行版进行演示。
安装目标
wget 是一款轻量、自由且高效的网络下载工具,常用于从远程服务器获取文件资源。在后续操作中,我们将演示如何通过不同方式安装它。
相关概念
源(软件源):程序的来源仓库,可以是远程服务器或本地存储库,系统从这里获取可用软件包。
包管理器:用于管理软件包的工具,支持从仓库中安装、更新或卸载程序,大幅简化运维操作。不同发行版采用不同的包管理器:Ubuntu 系列通常使用 apt-get,而 Fedora 22 则采用 dnf。
源码:未经编译的原始程序代码。通过自行编译源码,用户可以生成可执行文件,适用于定制化安装需求。
图形界面的软件中心
Ubuntu 软件中心
在图形用户界面(GUI)环境下,Ubuntu 提供了“Ubuntu 软件中心”,用户只需点击几次按钮即可完成安装,操作方式与 Windows 类似。打开后左侧为分类导航区,右侧展示推荐软件包。

点击“已安装”可查看本机已装程序,并对其进行管理。例如,选中 Firefox 后点击卸载,输入密码即可轻松移除。

在搜索框中输入 wget,找到对应条目后点击安装,输入密码即可完成部署。
Fedora 软件中心
点击桌面下方图标,即可启动 Fedora 的软件中心。

其界面布局如下,底部设有分类选项。

以安装扫雷游戏为例,打开该应用详情页,点击安装按钮,等待进度条完成即可。

进入“已安装”列表,可找到刚刚装好的扫雷,点击移除即可将其删除。

若遇到密码验证提示,按指引输入管理员密码即可继续操作。

从源码编译安装
当所需软件不在软件仓库中,或没有预编译的二进制包时,用户可通过编译源码的方式进行安装。本文仍以 wget 为例,演示完整编译流程与常见问题解决。
以下操作基于 Ubuntu 15.04 环境。
$ mkdir buildwget #创建构建目录
$ cd buildwget
$ wget https://ftp.gnu.org/gnu/wget/wget-1.16.tar.xz #下载源码包
$ sudo apt-get remove wget #为后续测试,先卸载已安装的 wget
$ xz -d wget-1.16.tar.xz #解压 xz 压缩文件
$ tar -xvf wget-1.16.tar #解档 tar 归档文件
$ cd wget-1.16
$ ls #查看当前目录文件列表
ABOUT-NLS ChangeLog.README GNUmakefile maint.mk po util
aclocal.m4 configure INSTALL Makefile.am README
AUTHORS configure.ac lib Makefile.in src
build-aux COPYING m4 msdos testenv
ChangeLog doc MAILING-LIST NEWS tests
上述内容即为源码文件。其中,INSTALL 文件值得特别关注。建议养成先阅读 INSTALL 的习惯,里面会说明编译步骤及相关注意事项。本次编译过程相对简单,INSTALL 中未提及特殊要求。
依照 INSTALL 的指引,首先执行 ./configure 命令进行配置。
$ ./configure
若遇到以下错误:
configure: error: --with-ssl=gnutls was given, but GNUTLS is not a vailable.
该提示表明配置时指定了 gnutls 作为 SSL 库,但系统中缺少该组件。解决办法是安装 openssl 并将其作为替代。
$ sudo apt-get install openssl
$ sudo apt-get install libssl-dev
$ ./configure --with-ssl=openssl
若配置无异常,终端会输出类似以下的编译选项摘要:
configure: Summary of build options:
Version: 1.16
Host OS: linux-gnu
Install prefix: /usr/local
Compiler: gcc
CFlags: -g -O2
LDFlags:
Libs: -lssl -lcrypto -ldl -lz
SSL: openssl
Zlib: yes
PSL: no
Digest: yes
NTLM: yes
OPIE: yes
Debugging: yes
接下来执行编译:
$ make
编译过程中会输出大量日志信息,只要最终没有报错中止,即表示编译成功。随后进行安装:
$ sudo make install
安装完成后,尝试运行 wget 命令,验证是否已恢复可用状态。源码编译过程中遇到问题时,建议多进行搜索、提问并动手实践,依据错误信息调整编译参数,按需安装缺失的依赖库,通常都能顺利解决。
