在Fedora下安装和升级软件包

下载好Fedora Linux后,第一件事就是搭建Linux c/c++开发环境,后期需要搭建java开发环境。

编辑器:vim
需要安装软件gcc, gdb;
代码索引工具:ctags; 
数据库软件mysql;


使用 yum 命令安装和升级应用程序 (一) - 在线安装

yum 主要通过从网络软件包仓库 (Package Repositories) 下载最新的软件包(RPM 格式)并进行安装,因此通过 yum 可以获得最新的软件版本。除此之外,也可以通过 yum 安装或升级存放在本地的软件包。

在 Fedora 中安装和升级应用程序十分简单,除了可以使用特有的 yum 工具以外,也可以使用 RPM 和 DEB 软件包,或者自行通过源代码安装和升级。本文介绍 yum 工具的使用方法。

yum 主要通过从网络软件包仓库 (Package Repositories) 下载最新的软件包(RPM 格式)并进行安装,因此通过 yum 可以获得最新的软件版本。当使用这一特性时,自然要求计算机能够连接到网络。除此之外,也可以通过 yum 安装或升级存放在本地的软件包。

为了保证安装和升级过程不出现权限问题,建议在运行 yum 前使用 su 切换到 root 用户 (不建议直接使用 root 登录到系统)

[lugir@hope ~]$ su
Password:
[root@hope lugir]#

说明:运行 su 命令切换为 root 用户,并按提示输入密码。注意切换之后命令提示符的变化。用户名由 lugir 变成 root,当前目录名由 ~ 变成 lugir (因为 ~ 表示当前用户的根目录,对 lugir 而言 /home/lugir 就是 ~ 目录,但切换成 root 用户之后,则显示目录名称 lugir),还有命令提示符由 $ 变为 #。

运行 yum 安装 gcc

[root@hope lugir]# yum install gcc
设置安装进程
解决依赖关系
…… [省略依赖关系输出]

事务概要
============================
安装   9 软件包
更新   3 软件包

最下载量:34 M
确定吗 ? [y/N]: y

下载软件包:
…… [省略下载进程输出]

导入 GPG 密钥 ……[省略] 来自 /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
确定吗 ? [y/N]: y

……[省略检测信息输出]
执行事务
正在安装  Kernel-headers-2.6.31.12-174.2.3.fc12.i686 [####     ]  1/15
……

完毕 !

[root@hope lugir]# exit
exit
[lugir@hope ~]$

说明:

  • 输入命令 “yum install [软件包名称]” 开始进行安装和更新
  • 解决依赖关系 - 很多应用程序之间存在依赖性,使用 yum 进行安装时,yum 会对软件包的依赖性进行检查。例如上例子中只是要安装 gcc,但 yum 检查完依赖性之后却要安装 9 个软件包,并对 3 个软件包进行更新。所以使用 yum 安装程序不用自己去解决软件包依赖性,十分的方便。
  • 最新下载量 34 M,确定吗? [y/N] - 当然 y 了,不然怎么下载呢 :D
  • 导入 GPG 密钥 - 并不是每次安装时都会出现这个,一般情况下都可以导入 (关于 GPG 密钥以后会讲)
  • 安装完成之后,记得使用 exit 注销 root 用户 (只在有需要的时候使用 root 用户是个好习惯 :D)

运行 yum 时输出了很多内容,实际上我们只运行了一条命令,呵呵。

PS:使用 yum 进行安装时,必须知道软件包的名称。有关 yum 的查询功能见《 使用 yum 命令安装和升级应用程序 (三) - 其它功能》

通过 yum 可以在线安装很多应用程序,不过有些程序并不存在于默认的软件包仓库中(以后会讲),所以有时还需要我们将 RPM 软件包下载下来,再使用 yum 的本地安装功能 :D


使用 yum 命令安装或升级应用程序 (二) - 本地安装

有很多种情况可以使用 yum 的本地安装功能,比如为了节省下载时间使用光盘中的软件包,或者以前已经下载好了某个 RPM 包……不过使用 yum 本地安装功能的最大优点还是 —— yum 会在自动检测并尽可能地为你解决软件包依赖性这个麻烦事。

有很多种情况适合进行本地安装,比如为了节省下载时间使用光盘中的软件包,或者以前已经下载好了某个 RPM 包……不过使用 yum 进行安装的最大优点还是 —— yum 会在自动检测并尽可能地为你解决软件包依赖性这个麻烦事 (讲到手动解决依赖性的时候,你就会知道它真的很麻烦了 :D)

这一节就以 QQ 为例,学习 yum 的本地安装功能吧。

首先到腾讯官方网站下载 QQ Linux 版的 RPM 包:下载 QQ for Linux。可直接保存到默认路径,即 /home/lugir/Downloads。(如果使用其它路径,运行 yum 命令时记得使用你自己的路径)

打开 “应用程序 -> 系统工具 -> 终端”

执行本地安装命令

[lugir@hope ~]$ cd Downloads
[lugir@hope Downloads]$ ls
linuxqq-v1.0.2-beta1.i386.rpm
[lugir@hope Downloads]$ su
密码:
[root@hope Downloads]# yum localinstall /home/lugir/Downloads/linuxqq-v1.0.2-beta1.i386.rpm
设置安装进程
解决依赖关系
…… [省略依赖关系输出]

事务概要
============================
安装   1 软件包
更新   0 软件包

最下载量:6.1 M
确定吗 ? [y/N]: y
……

软件包 linuxqq-v1.0.2-beta1.i386.rpm 没有签名
[root@hope Downloads]#

说明:

  • 第一行 - 进入 /home/lugir/Downloads 目录
  • 第二行 - 显示目录下的文件,确保 linuxqq 被下载到这个目录
  • 第四行 - 切换用户
  • 第六行 - 执行 yum 的本地安装功能
  • 软件包 linuxqq-v1.0.2-beta1.i386.rpm 没有签名 - 官方的 linuxqq 竟没有签名 _-#,命令自动中止。要忽略这一问题,在执行 yum 命令时加上 --nogpgcheck 选项
[root@hope Downloads]# yum localinstall /home/lugir/Downloads/linuxqq-v1.0.2-beta1.i386.rpm --nogpgcheck
……
完毕!
[root@hope Downloads]# exit
exit
[lugir@hope Downloads]$

 

启动 QQ for Linux

安装完成之后,可以使用菜单“应用程序->Internet->腾讯QQ” 启动 QQ for Linux

在Fedora下安装和升级软件包_第1张图片

也可以使用命令 "qq &" 启动。在命令后面加上 & 的意思是让程序在后台运行,而不会在命令行中输出大量信息。

[lugir@hope Downloads]$ qq &

QQ for Linux 长这样 :D

在Fedora下安装和升级软件包_第2张图片


使用 yum 命令安装或升级应用程序 (三) - 其他功能

除了安装、升级以外,yum 还可以用来查询软件包仓库,检查软件包依赖性,以及卸载软件包等功能。本节将介绍如何使用 yum 的这些功能,并提供一些使用 yum 时的建议 :D

查询软件包

查询有两种方式,一是在软件包名称中查找,另一种是在软件包名称和描述中查找。

前面讲过,使用 yum 安装软件就需要知道软件包的名称。如果只记得某个影音播放器的名称中包含 "mplayer",使用下列命令就可以查询到名称中包含 "mplayer" 的软件包了。

[lugir@hope ~]$ yum list | grep mplayer
kmplayer.i686  0.11.1b-2.fc12  fedora

单独使用 yum list 会显示软件包仓库中的所有软件包名称,这将是一个很长的列表,如果你真想看看这个列表的话,建议运行 "yum list | less"

[lugir@hope ~]$ yum list | less

提示:运行 "yum repolist" 可以查看目前使用的软件包仓库 (Package Repositories) 名称,以及它们所包含的软件包数量。

另一种查询方式是使用 "yum search [关键词]",它会从名称和描述两方面进行查找,因此较为推荐这种查询方式。比如你想找“播放器”,可以运行 "yum search player | less"

[lugir@hope ~]$ yum search player | less

PS:尽管 yum 的查询功能非常好用,但不太适合新手。因此不如用搜索引擎去搜索 “ Linux 播放器”等类似的关键词,这样不仅可以得到某个软件的名称,也可以看看大家对某款软件的评价 :D

查询软件包仓库以外的软件列表,比如从其他网站下载到本地安装的软件,可以使用 yum list extras

[lugir@hope ~]$ yum list extras
linuxqq.i386  v1.0.2-beta1  @/linuxqq-v1.0.2-bate1.i386

 

卸载软件包

卸载软件包与安装软件包一样,需要使用正确的软件包名称,如果要卸载QQ,使用 "yum erase qq" 是不行的,因为系统并没有安装名称 qq 的软件包,正确的卸载命令应该是 "yum erase linuxqq"

[lugir@hope ~]$ su
密码:
[root@hope lugir]# yum erase linuxqq
……
事务概要
============================
移除    1 软件包
覆盖安装  0 软件包
降级    0 软件包

确定吗:[y/N]? y
……
执行事务
正在删除:linuxqq-v1.0.2-beta1.i386

删除:
linuxqq-v1.0.2-beta1.i386

完毕!
[root@hope lugir]# exit
exit
[lugir@hope ~]$

PS: 如果不切换成 root,卸载时可能会出现权限问题。还有就是记得卸载任务执行完成之后就退出 root.

除了以上介绍的以外,yum 还有许多其它选项和用法,可自行使用 "yum --help | less" 查阅学习

 


管理 RPM 软件包

使用图形界面和命令行都可以十分有效的管理 RPM 软件包。在图形界面,可以通过“添加/删除软件包”窗口,在命令行则可以使用 rpm 命令对其进行管理。

使用图形界面和命令行都可以十分有效的管理 RPM 软件包。在图形界面,可以通过“添加/删除软件包”窗口,在命令行则可以使用 rpm 命令对其进行管理。

使用“添加/删除软件包”管理窗口

使用“添加/删除软件包”管理窗口同,可通过“系统->管理->Add/Remove Software”打开。

窗口左侧是软件分类目录,选择相应目录之后右侧窗口便会出现一些可选软件包(来自于 yum 软件包仓库),选中可取消选中之后,点击应用以实现相应的“安装”或“卸载”

在Fedora下安装和升级软件包_第3张图片

说明:安装过程中会计算软件包依赖性,同 yum 一样,会提示用户需要下载的相关的软件包以解决依赖性。

提示:使用 PackageKit 的搜索功能够得到比 yum 更直观的软件包介绍 :D

 

使用 rpm 命令

使用 yum 进行软件包的安装时,yum 默认会使用 GPG/DSA 密钥验证包的完整性。使用 rpm 命令时,则需要手动进行这一步操作

[lugir@hope ~]$ cd Downloads/
[lugir@hope Downloads]$ rpm --checksig linuxqq-v1.0.2-beta1.i386.rpm
linuxqq-v1.0.2-beta1.i386.rpm: sha1 md5 OK

安装软件包

安装软件包时,可以使用 -i (安装) 或者 -U (升级) 选项,推荐使用 -U 选项,因为 -U 适合“安装”和“升级”,而 -i 只适用于“安装” (详细可查询 rpm 帮助信息)

注意: 安装、升级或卸载软件包时记得使用 root 用户;升级选项 -U 是大写
[lugir@hope Downloads]$ su
密码:
[root@hope Downloads]# rpm -U linuxqq-v1.0.2-beta1.i386.rpm

如果希望查看安装过程中的概要信息,可以加上 -v 选项,如 "rpm -Uv [package]",详细信息则使用 -vv 选项(注意:是两个 v)

卸载软件包

使用 -e 选项卸载软件包,如果没有其它软件包依赖于这个包,这个包便会被直接卸载。如果希望看到详细输出信息,可以加上 -vv 选项

[root@hope Downloads]$ rpm -evv linuxqq
说明:rpm 命令的其它选项请使用命令行帮助,可参考《 使用命令行 (三) - 命令行帮助》
说明:在 yum 命令能够使用的情况下, 建议使用 yum 对软件包进行管理 (安装、升级、卸载等),因为 yum 在进行软件包管理时会自动检查依赖性,并尽可能地解决依赖性问题。


从源代码安装应用程序

并非所有的应用程序都有 RPM 软件包,或者说某个软件的 RPM 包并不适合你,当遇到这些情况时,还可以从通过软件的源代码对应用程序进行安装。

源代码通常使用 tar, gzip 或者 bz2 等软件进行了归档打包,因此归档文件的常见后缀有 .tar、.tar.gz、tar.bz2

 

使用源代码进行安装的基本步骤:

  1. 下载要安装的源代码归档文件,如 abc-1.0.0.i386.tar.gz;
  2. 抽取归档文件内容。建议将归档文件解开到 /usr/local/src/ 目录,解开后会在 /usr/local/src/ 目录下生成一个以软件包名称命名的目录,如 abc-1.0.0;
  3. 进入软件包目录;
  4. 查看 INSTALL 或 README 文档,然后遵循文档中的介绍进行安装

如果没有 INSTALL 或者 README 文档,通常通过运行以下三个命令进行源代码的编译与安装:

[root@hope src]# ./configure --prefix=/usr/local/[软件包名称]
……
[root@hope src]# make
……
[root@hope src]# make install
……

以下以 abc-1.0.0.i386.tar.gz 包为例,演示从源代码安装应用程序的全部过程。(实际上并没有这个软件包,只是为了演示随便取的名字,重点在于说明安装的过程)

  1. [lugir@hope ~]$ su
  2. 密码:
  3. [root@hope lugir]# cd /usr/local/src/
  4. [root@hope src]# tar xfj /home/lugir/Download/abc-1.0.0.tar.gz
  5. [root@hope src]# ls
  6. abc-1.0.0
  7. [root@hope src]# cd abc-1.0.0
  8. [root@hope abc-1.0.0]# ls
  9. …… [见说明1]
  10.  
  11. [root@hope abc-1.0.0]# ./configure --prefix=/usr/local/abc
  12. …… [见说明2]
  13.  
  14. [root@hope abc-1.0.0]# make
  15. ……
  16. [root@hope abc-1.0.0]# make install
  17. ……

说明:

  • 第3行 - 切换到 /usr/local/src/ 目录,目的是方便将抽取的内容直接在 /usr/local/src/ 目录下生成;
  • 第4行 - 从归档文件中抽取内容(相关于解压缩)。有关 tar 命令的用法可以使用 "tar --help | less" 查询;
  • 第5行 - 通过查看当前目录的内容,查看是否抽取完成
  • 第6行 - 当前目录下有 abc-1.0.0 目录,说明抽取成功
  • 第7行 - 进入 abc-1.0.0 目录
  • 第8行 - 查看 abc-1.0.0 目录下的内容。通常是寻找 INSTALL 和 README 文档
  • 第9行 - 说明1 - 如果存在 INSTALL 或者 README 文档,使用 "less INSTALL" 或者 "less README" 命令查看文档内容,通常这两个文档都有比较详细的安装说明,建议按照文档的说明进行配置和安装。如果没有这两个文件,才使用后面的默认配置和安装方法。
  • 第11行 - 运行配置文件,并指定 --prefix 选项。默认程序都是安装在 /usr/local/ 目录,如果要卸载的话十分不方便。建议安装时将所有软件都安装在 /usr/local/[软件名] 的目录下,将来要卸载的话,直接删除 /usr/local/[软件名] 这个目录就行了。
  • 第12行 - 说明2 - 尽管已经安装了《从源代码安装应用程序的准备工作》中提到的所有软件包。但安装过程中还是可能会出需要其它包中的文件,此时只要记下相关信息,并使用 "yum search" 和 "yum install" 命令安装上所需要的文件即可。
  • 第14行 - 编译
  • 第16行 - 安装
建议:虽然从源代码安装应用程序的可定制程度很高,但没有 yum 或 rpm 命令那么容易,可能出现的状况也很多。为了尽可能的减少这类问题,新手可以在安装系统时将开发工具统统装上。同时在进行编译安装时对输出内容进行分析学习,增长经验以便能够理解问题出现的原因。

从源代码安装应用程序的准备工作

在学习如何从源代码编译和安装应用程序之前,必须先为系统安装上一些用于开发的软件包,不然在进行编译时就会出错。

以下软件包是使用 C 语言进行编译时的最基本需求:

  • gcc - 包含 GNU C 编译器
  • make - 包含 make 命令,用于通过 makefiles 制作二进制文件
  • glibc - 包含一些重要的函数库
  • glibc-devel - 包含制作可执行程序所需要的标准头文件
  • binutils - 包含编译程序所需要的一些工具
  • kernel-devel - 包含 Linux 内核(Kernel) 的原文件,它在需要重建内核时会被用到
  • rpm-build - 包含 rpmbuild 工具,可使用源代码制作 RPM 软件包

在开始编译之前,使用 "rpm -q [package]" 命令查询一个或多个软件包是否被安装,查询多个软件包时,名称之间用“空格”隔开

[lugir@hope ~]$ rpm -q gcc make glibc glibc-devel binutils kernel-devel rpm-build
gcc-4.4.2-20.fc12.i686
make-3.81-18.fc12.i686
glibc-2.11.1-1.i686
binutils-2.19.51.0.14-34.fc12.i686
package kernel-devel is not installed
package rpm-build is not installed

使用 yum 命令安装没有安装的软件包 (记得进行安装、升级等管理任务时要切换到 root 用户)

[lugir@hope ~]$ su
密码:
[root@hope Lugir]$ yum install kernel-devel rpm-build
……
说明:yum 的用法请参考《 使用 yum 命令安装和升级应用程序 (一) - 在线安装》

确定所需要的软件包都已经安装之后,就可以进入下一节了。

Linux 常用应用程序推荐列表

介绍一些 Linux 下常用应用程序,并按推荐程度进行排序。除了 SCIM 的五笔配置和 Mplayer 的安装配置麻烦一点,其它应用程序的安装都非常简单。

输入法 SCIM (五笔/拼音)、iBus (拼音)
浏览器 Firefox
下载工具 DownThemAll (Firefox 插件)、wget
即时通讯 QQ for Linux, pidgin
ed2k 客户端 aMule (Linux 下的 eMule)
影音播放器 Mplayer
看图工具 gThumb、Picasa
图形处理 GIMP (被称为 Linux 下的 Photoshop)
压缩解压 tar, zip, rarlinux
文件管理 GNOME-Commander
翻译辞典 星际译王 (StarDict)
办公软件 Google Docs, Open Office
邮件客户端 Gmail, Evolution
FTP 客户端 FileZilla
PDF 阅读器 evince、xpdf 或 wine + FoxitReader
Chm 阅读器 chmsee
Windows 模拟器 wine
虚拟机 Virtual Box
……  

 

推荐的应用程序就这么多,本列表不定期持续更新,大家有好的程序可以推荐一下

你可能感兴趣的:(Linux操作系统)