您的位置:首页 > Web前端

在Fedora下安装和升级软件包

2014-04-18 11:44 525 查看

下载好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



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

[lugir@hope Downloads]$ qq &
QQ for Linux 长这样 :D



使用 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 软件包仓库),选中可取消选中之后,点击应用以实现相应的“安装”或“卸载”



说明:安装过程中会计算软件包依赖性,同 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

 

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


下载要安装的源代码归档文件,如 abc-1.0.0.i386.tar.gz;
抽取归档文件内容。建议将归档文件解开到 /usr/local/src/ 目录,解开后会在 /usr/local/src/ 目录下生成一个以软件包名称命名的目录,如 abc-1.0.0;
进入软件包目录;
查看 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 包为例,演示从源代码安装应用程序的全部过程。(实际上并没有这个软件包,只是为了演示随便取的名字,重点在于说明安装的过程)

[lugir@hope ~]$ su
密码:
[root@hope lugir]# cd /usr/local/src/
[root@hope src]# tar xfj /home/lugir/Download/abc-1.0.0.tar.gz
[root@hope src]# ls
abc-1.0.0
[root@hope src]# cd abc-1.0.0
[root@hope abc-1.0.0]# ls
…… [见说明1]
 
[root@hope abc-1.0.0]# ./configure --prefix=/usr/local/abc
…… [见说明2]
 
[root@hope abc-1.0.0]# make
……
[root@hope abc-1.0.0]# make install
……

说明:

第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 的安装
b422
配置麻烦一点,其它应用程序的安装都非常简单。

输入法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
…… 
 

推荐的应用程序就这么多,本列表不定期持续更新,大家有好的程序可以推荐一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: