本文环境
Ubuntu 15.04 64-bit
Fedora 22 64-bit
安装目标
wget 它是一个用于从网络上下载文件的简单自由软件,在下文我们也会用到 wget 进行下载某些文件。
相关概念
源 :我们安装程序可以从 远程仓库 或 本地仓库 获取,这个 仓库 就是我们程序的来源,因此可以称为 源 。
包管理器 :顾名思义 包管理器 是用来管理软件包的,用这个工具我们可以轻松的从仓库中安装、卸载程序。不同的发行版有不同的包管理器,Ubuntu 使用 apt-get 而 Fedora 22使用 dnf。
源码 : 程序的原始代码,未经过编译,通过编译源码也可以生成程序。
图形界面的软件中心
Ubuntu 软件中心
当我们处于图形界面( GUI :Graphical User Interface) 时,Ubuntu 为我们提供了一个图形界面的安装工具,称为 Ubuntu 软件中心,通过这个软件中心,我们可以像 Windows 一样通过点击几个按钮,轻松实现软件包安装。下图为打开软件中心之后的图,左边是一些分类,下面则是一些推荐的软件包。
点击已安装可以查看安装在本机的软件包,并且可以在此管理它们,如图选中 Firefox 并点击卸载,此时会提示你输入密码,输入完成且正确就会卸载你所选的程序。
接下来在搜索框搜索 wget 你可以看到如图所示的东西,并且只需点击安装并正确输入密码即可。
Fedora 软件中心
点开如图所示的图标就可以打开 Fedora 的软件中心。
打开后界面如图,分类在最下面
点开上图的扫雷,显示如下,点击 安装 ,静候即可
现在转到 已安装 ,我们可以看到刚刚安装的扫雷,点击 移除 ,就可以删除了。
如果你遇到下图,只需要输入你的密码即可。
从源码编译安装
有些时候我们会发现有的软件包并没有包含在软件仓库中,也没有可用的二进制包,这时候我们可以尝试从源码编译安装,我在此处仍以wget 为例,示范如何编译,并解决编译遇到的问题
以下环境为 Ubuntu 15.04
复制代码代码如下:
$ mkdir buildwget #构建目录
$ cd buildwget
$ wget http://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 available.
错误提示说,给定的 SSL 是 gnutls 但是却不可用(因为没有安装),因此我们安装并指定 openssl 为 wget 的 SSL 。
复制代码代码如下:
$ 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 命令又出来了?源码安装遇到问题,我们要善于搜索,提问和解决,根据报错内容进行相应的编译调整,缺少的依赖装上,一般就可以成功。