新进入 Linux 世界的朋友们,也许你已经下载好了 Linux 的安装 ISO,并且安装好了你的 Linux ,那么接下来,你也许希望安装一些 Linux 上用的软件。开始你可能会使用图形界面的软件中心来安装,有时候也需要使用命令行来安装,或者甚至需要自己去编译一个二进制出来——这是多么神奇的一件事啊。
那么我们今天就讲一讲如何在 Linux 上安装软件包。
本文将从 GUI 软件中心、包管理器、在线仓库安装,本地安装,源码安装 一一为你讲解有关安装软件包需要注意的事项。
Linux系统入门学习:教你在VirtualBox 安装 Fedora 22 http://www.linuxidc.com/Linux/2015-08/121808.htm
Linux系统入门学习:教你在VirtualBox 安装 Ubuntu 15.04 http://www.linuxidc.com/Linux/2015-08/121807.htm
Windows 7下硬盘安装Ubuntu 14.10图文教程 http://www.linuxidc.com/Linux/2014-10/108430.htm
U盘安装Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108402.htm
Ubuntu 14.10 正式发布下载 http://www.linuxidc.com/Linux/2014-10/108363.htm
Ubuntu 14.04 LTS 如何升级到 Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108381.htm
本文环境
- Ubuntu 15.04 64-bit
- Fedora 22 64-bit
安装目标
- wget 它是一个用于从网络上下载文件的简单自由软件,在下文我们也会用到 wget 进行下载某些文件。
相关概念
- 源 :我们安装程序可以从 远程仓库 或 本地仓库 获取,这个 仓库 就是我们程序的来源,因此可以称为 源 。
- 包管理器 :顾名思义 包管理器 是用来管理软件包的,用这个工具我们可以轻松的从仓库中安装、卸载程序。不同的发行版有不同的包管理器,Ubuntu 使用
apt-get
而 Fedora 22使用 dnf
。
- 源码 : 程序的原始代码,未经过编译,通过编译源码也可以生成程序。
图形界面的软件中心
Ubuntu 软件中心
- wget 它是一个用于从网络上下载文件的简单自由软件,在下文我们也会用到 wget 进行下载某些文件。
相关概念
- 源 :我们安装程序可以从 远程仓库 或 本地仓库 获取,这个 仓库 就是我们程序的来源,因此可以称为 源 。
- 包管理器 :顾名思义 包管理器 是用来管理软件包的,用这个工具我们可以轻松的从仓库中安装、卸载程序。不同的发行版有不同的包管理器,Ubuntu 使用
apt-get
而 Fedora 22使用 dnf
。
- 源码 : 程序的原始代码,未经过编译,通过编译源码也可以生成程序。
图形界面的软件中心
Ubuntu 软件中心
apt-get
而 Fedora 22使用 dnf
。Ubuntu 软件中心
当我们处于图形界面( GUI :Graphical User Interface) 时,Ubuntu 为我们提供了一个图形界面的安装工具,称为 Ubuntu 软件中心,通过这个软件中心,我们可以像 Windows 一样通过点击几个按钮,轻松实现软件包安装。下图为打开软件中心之后的图,左边是一些分类,下面则是一些推荐的软件包。
Ubunutu 软件中心
点击已安装可以查看安装在本机的软件包,并且可以在此管理它们,如图选中 Firefox 并点击卸载,此时会提示你输入密码,输入完成且正确就会卸载你所选的程序。
已安装
接下来在搜索框搜索 wget
你可以看到如图所示的东西,并且只需点击安装并正确输入密码即可。
安装新程序
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-08/121810p2.htm
Fedora 软件中心
点开如图所示的图标就可以打开 Fedora 的软件中心。
Fedora 软件中心
打开后界面如图,分类在最下面
软件中心
点开上图的扫雷,显示如下,点击 安装 ,静候即可
安装新程序
现在转到 已安装 ,我们可以看到刚刚安装的扫雷,点击 移除 ,就可以删除了。
移除程序
如果你遇到下图,只需要输入你的密码即可。
认证
使用包管理器安装
Ubuntu 使用 apt-get 从软件仓库中安装
这里使用的是上次虚拟机安装的环境,因此很干净什么都没有,我们先看看 apt-get
命令
$ apt-get--help
apt 1.0.9.7ubuntu4,用于 amd64 构架,编译于Apr7201514:42:59
用法: apt-get[选项]命令
apt-get[选项] install|remove 软件包1[软件包2...]
apt-get[选项] source 软件包1[软件包2...]
apt-get是一个用于下载和安装软件包的简易命令行界面。
最常用命令是 update 和 install。
命令:
update -取回更新的软件包列表信息
upgrade -进行一次升级
install -安装新的软件包(注:软件包名称是 libc6 而非 libc6.deb)
remove -卸载软件包
autoremove -卸载所有自动安装且不再使用的软件包
purge -卸载并清除软件包的配置
source -下载源码包文件
build-dep -为源码包配置所需的编译依赖关系
dist-upgrade -发布版升级,见 apt-get(8)
dselect-upgrade -根据 dselect 的选择来进行升级
clean -删除所有已下载的包文件
autoclean -删除已下载的旧包文件
check -核对以确认系统的依赖关系的完整性
changelog -下载指定软件包,并显示其changelog
download -下载指定的二进制包到当前目录
在对 apt-get
命令有了基本的了解后,我们接下来要换源,将源换成国内的,有 阿里云 以及 网易 的镜像站。
- 阿里云镜像配置请参考这里
- 网易镜像配置请参考这里
一般来说我们只需将 /etc/apt/sources.list
里面的 xxx.xxx.com
换成 mirrors.aliyun.com
或 mirrors.163.com
即可,其余无需改动。
改动源后,我们先更新源
$ sudo apt-get update
升级所有软件包
$ sudo apt-get upgrade
安装命令
$ sudo apt-get install packagename
卸载命令
$ sudo apt-get remove packagename
接下来安装 wget
$ sudo apt-get install wget
顺利安装后应该会出现如下提示
$ sudo apt-get install wget
正在读取软件包列表...完成
正在分析软件包的依赖关系树
正在读取状态信息...完成
下列【新】软件包将被安装:
wget
升级了0个软件包,新安装了1个软件包,要卸载0个软件包,有196个软件包未被升级。
需要下载282 kB 的软件包。
解压缩后会消耗掉700 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu/ vivid/main wget amd64 1.16.1-1ubuntu1 [282 kB]
下载282 kB,耗时0秒(517 kB/s)
正在选中未选择的软件包 wget。
(正在读取数据库...系统当前共安装有174852个文件和目录。)
正准备解包.../wget_1.16.1-1ubuntu1_amd64.deb ...
正在解包 wget (1.16.1-1ubuntu1)...
正在处理用于 install-info (5.2.0.dfsg.1-6)的触发器...
正在处理用于 man-db (2.7.0.2-5)的触发器...
正在设置 wget (1.16.1-1ubuntu1)...
linuxcn@linuxcn-VirtualBox:~$
接下来要卸载 wget
$ sudo apt-get remove wget
Fedora 使用 dnf 从软件仓库中安装
配置源,将源换成国内的提升下载速度。
备份
$ cd /etc/repo
$ sudo mv /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.backup
$ sudo mv /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates.repo.backup
下载网易源配置文件(网易与阿里云二者选一即可)
$ sudo wget http://mirrors.163.com/.help/fedora-163.repo
$ sudo wget http://mirrors.163.com/.help/fedora-updates-163.repo
下载阿里云源配置文件(网易与阿里云二者选一即可)
$ sudo wget -O /etc/yum.repos.d/fedora.repo http://mirrors.aliyun.com/repo/fedora.repo
$ sudo wget -O /etc/yum.repos.d/fedora-updates.repo http://mirrors.aliyun.com/repo/fedora-updates.repo
清除旧缓存并生成新缓存
$ sudo dnf clean
$ sudo dnf makecache
获取 dnf
帮助
$ dnf -h
安装包
$ sudo dnf install packagename
卸载包
$ sudo dnf remove packagename
安装 wget
$ sudo dnf install wget
卸载 wget
$ sudo dnf remove wget
安装本地二进制包
Ubuntu 使用 dpkg 安装本地 deb 包
有时我们会从网上下载到 filename.deb
这种二进制包,并且这种包一般只允许 Debian 系的系统安装,这样的包我们可以通过 dpkg
命令来安装。
先了解一下 dpkg
命令
$ dpkg --help
用法:dpkg [<选项>...]<命令>
命令:
-i|--install <.deb 文件名>...|-R|--recursive <目录>...
--unpack <.deb 文件名>...|-R|--recursive <目录>...
-A|--record-avail <.deb 文件名>...|-R|--recursive <目录>...
--configure <软件包名>...|-a|--pending
--triggers-only <软件包名>...|-a|--pending
-r|--remove <软件包名>...|-a|--pending
-P|--purge <软件包名>...|-a|--pending
-V|--verify <软件包名>...检查包的完整性。
-?,--help 显示本帮助信息。
--version 显示版本信息。
安装命令
$ sudo dpkg -i filename.deb
卸载命令
$ sudo dpkg -r packagename
此处仍以 wget
为例,先用 apt-get download wget
下载一个 deb
包到当前目录,笔者下载的为 wget_1.16.1-1ubuntu1_amd64.deb
用 dpkg
安装 wget
$ sudo dpkg -i ./wget_1.16.1-1ubuntu1_amd64.deb
正在选中未选择的软件包 wget。
(正在读取数据库...系统当前共安装有174852个文件和目录。)
正准备解包.../wget_1.16.1-1ubuntu1_amd64.deb ...
正在解包 wget (1.16.1-1ubuntu1)...
正在设置 wget (1.16.1-1ubuntu1)...
正在处理用于 install-info (5.2.0.dfsg.1-6)的触发器...
正在处理用于 man-db (2.7.0.2-5)的触发器...
注意:上面的参数 -i
表明安装,后接要安装的 deb 包。
Tips:用 Tab
键可以进行命令和文件名的补全。
卸载可以用 apt-get
$ sudo apt-get remove packagename
Fedora 使用 rpm 安装本地 rpm 包
同样地,我们也可能下载到 filename.rpm
这样的二进制软件包,此时我们可以用 rpm
命令安装。
获取帮助
$ rpm --help
此处笔者就下一个 wget
的 rpm 包作示例
$ dnf download wget # 得到名为 wget-1.16.3-1.fcxx.x86_64.rpm 的二进制软件包
rpm
安装命令
$ sudo rpm -i filename.rpm # -i 为安装参数
$ sudo rpm -i ./wget-1.16.3-1.fcxx.x86_64.rpm
从源码编译安装
有些时候我们会发现有的软件包并没有包含在软件仓库中,也没有可用的二进制包,这时候我们可以尝试从源码编译安装,我在此处仍以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 isnot 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
命令又出来了?源码安装遇到问题,我们要善于搜索,提问和解决,根据报错内容进行相应的编译调整,缺少的依赖装上,一般就可以成功。
总结
本文主要为新手讲解了 Ubuntu 和 Fedora 安装软件包的一些方法, Ubuntu 部分较详细,限于篇幅原因 Fedora 只列举了相应的 安装 与卸载 命令,但可通过 man
, dnf -h
或 rpm --help
获取帮助,此处不再赘述。而从源码编译安装,则展示了一个遇到问题,解决问题的过程,由于编译 wget
较简单,此处也未遇到特别难处理的问题,但这清晰的展示了一个编译安装的过程,遇到错误,我们不要害怕,而要认真阅读给出的错误信息,借此搜索,提问,寻求解答。另外 Linux 下遇到问题首先要自己善于去搜索,提问,解决问题得到答案并归纳总结,不然是很难学到知识的。
原文:http://locez.com/Linux/install-program-on-ubuntu-fedora/ 作者: LOCEZ
译文:LCTT https://linux.cn/article-6042-1.html
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/121810.htm