新进入 Linux 世界的朋友们,也许你已经下载好了 Linux 的安装 ISO,并且安装好了你的 Linux,那么接下来,你也许希望安装一些 Linux 上用的软件。开始你可能会使用图形界面的软件中心来安装,有时候也需要使用命令行来安装,或者甚至需要自己去编译一个二进制出来——这是多么神奇的一件事啊。
那么我们今天就讲一讲如何在 Linux 上安装软件包。
安装目标
相关概念
apt-get
而 Fedora 22使用dnf
。图形界面的软件中心
Ubuntu 软件中心
当我们处于图形界面( GUI :Graphical User Interface) 时,Ubuntu 为我们提供了一个图形界面的安装工具,称为 Ubuntu 软件中心,通过这个软件中心,我们可以像 Windows 一样通过点击几个按钮,轻松实现软件包安装。下图为打开软件中心之后的图,左边是一些分类,下面则是一些推荐的软件包。
点击已安装可以查看安装在本机的软件包,并且可以在此管理它们,如图选中 Firefox 并点击卸载,此时会提示你输入密码,输入完成且正确就会卸载你所选的程序。
接下来在搜索框搜索 wget
你可以看到如图所示的东西,并且只需点击安装并正确输入密码即可。
Fedora 软件中心
点开如图所示的图标就可以打开 Fedora 的软件中心。
打开后界面如图,分类在最下面
点开上图的扫雷,显示如下,点击 安装,静候即可
现在转到 已安装,我们可以看到刚刚安装的扫雷,点击移除,就可以删除了。
如果你遇到下图,只需要输入你的密码即可。
使用包管理器安装
Ubuntu 使用 apt-get 从软件仓库中安装
这里使用的是上次虚拟机安装的环境,因此很干净什么都没有,我们先看看 apt-get
命令
$ apt-get --helpapt 1.0.9.7ubuntu4,用于 amd64 构架,编译于 Apr 7 2015 14: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 utilaclocal.m4 configure INSTALL Makefile.am READMEAUTHORS configure.ac lib Makefile.in srcbuild-aux COPYING m4 msdos testenvChangeLog 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
命令又出来了?源码安装遇到问题,我们要善于搜索,提问和解决,根据 错内容进行相应的编译调整,缺少的依赖装上,一般就可以成功。
总结
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!