新手指南:在 Ubuntu 和 Fedora 上安装软件包

新进入 Linux 世界的朋友们,也许你已经下载好了 Linux 的安装 ISO,并且安装好了你的 Linux,那么接下来,你也许希望安装一些 Linux 上用的软件。开始你可能会使用图形界面的软件中心来安装,有时候也需要使用命令行来安装,或者甚至需要自己去编译一个二进制出来——这是多么神奇的一件事啊。

那么我们今天就讲一讲如何在 Linux 上安装软件包。

  • 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 的软件中心。

    打开后界面如图,分类在最下面

    点开上图的扫雷,显示如下,点击 安装,静候即可

    现在转到 已安装,我们可以看到刚刚安装的扫雷,点击移除,就可以删除了。

    如果你遇到下图,只需要输入你的密码即可。

    使用包管理器安装

    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 是一个用于下载和安装软件包的简易命令行界面。  最常用命令是 updateinstall。  命令:    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.commirrors.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.

    错误提示说,给定的 SSLgnutls但是却不可用(因为没有安装),因此我们安装并指定opensslwgetSSL

    $ 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进行处理,非常感谢!

    上一篇 2015年7月17日
    下一篇 2015年7月17日

    相关推荐