下载好Fedora Linux后,第一件事就是搭建Linux c/c++开发环境,后期需要搭建java开发环境。
使用 yum 命令安装和升级应用程序 (一) - 在线安装
yum 主要通过从网络软件包仓库 (Package Repositories) 下载最新的软件包(RPM 格式)并进行安装,因此通过 yum 可以获得最新的软件版本。除此之外,也可以通过 yum 安装或升级存放在本地的软件包。
在 Fedora 中安装和升级应用程序十分简单,除了可以使用特有的 yum 工具以外,也可以使用 RPM 和 DEB 软件包,或者自行通过源代码安装和升级。本文介绍 yum 工具的使用方法。
yum 主要通过从网络软件包仓库 (Package Repositories) 下载最新的软件包(RPM 格式)并进行安装,因此通过 yum 可以获得最新的软件版本。当使用这一特性时,自然要求计算机能够连接到网络。除此之外,也可以通过 yum 安装或升级存放在本地的软件包。
为了保证安装和升级过程不出现权限问题,建议在运行 yum 前使用 su 切换到 root 用户 (不建议直接使用 root 登录到系统)
说明:运行 su 命令切换为 root 用户,并按提示输入密码。注意切换之后命令提示符的变化。用户名由 lugir 变成 root,当前目录名由 ~ 变成 lugir (因为 ~ 表示当前用户的根目录,对 lugir 而言 /home/lugir 就是 ~ 目录,但切换成 root 用户之后,则显示目录名称 lugir),还有命令提示符由 $ 变为 #。
运行 yum 安装 gcc
说明:
- 输入命令 “yum install [软件包名称]” 开始进行安装和更新
- 解决依赖关系 - 很多应用程序之间存在依赖性,使用 yum 进行安装时,yum 会对软件包的依赖性进行检查。例如上例子中只是要安装 gcc,但 yum 检查完依赖性之后却要安装 9 个软件包,并对 3 个软件包进行更新。所以使用 yum 安装程序不用自己去解决软件包依赖性,十分的方便。
- 最新下载量 34 M,确定吗? [y/N] - 当然 y 了,不然怎么下载呢 :D
- 导入 GPG 密钥 - 并不是每次安装时都会出现这个,一般情况下都可以导入 (关于 GPG 密钥以后会讲)
- 安装完成之后,记得使用 exit 注销 root 用户 (只在有需要的时候使用 root 用户是个好习惯 :D)
运行 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 命令时记得使用你自己的路径)
打开 “应用程序 -> 系统工具 -> 终端”
执行本地安装命令
说明:
- 第一行 - 进入 /home/lugir/Downloads 目录
- 第二行 - 显示目录下的文件,确保 linuxqq 被下载到这个目录
- 第四行 - 切换用户
- 第六行 - 执行 yum 的本地安装功能
- 软件包 linuxqq-v1.0.2-beta1.i386.rpm 没有签名 - 官方的 linuxqq 竟没有签名 _-#,命令自动中止。要忽略这一问题,在执行 yum 命令时加上 --nogpgcheck 选项
启动 QQ for Linux
安装完成之后,可以使用菜单“应用程序->Internet->腾讯QQ” 启动 QQ for Linux
也可以使用命令 "qq &" 启动。在命令后面加上 & 的意思是让程序在后台运行,而不会在命令行中输出大量信息。
QQ for Linux 长这样 :D
使用 yum 命令安装或升级应用程序 (三) - 其他功能
除了安装、升级以外,yum 还可以用来查询软件包仓库,检查软件包依赖性,以及卸载软件包等功能。本节将介绍如何使用 yum 的这些功能,并提供一些使用 yum 时的建议 :D
查询软件包
查询有两种方式,一是在软件包名称中查找,另一种是在软件包名称和描述中查找。
前面讲过,使用 yum 安装软件就需要知道软件包的名称。如果只记得某个影音播放器的名称中包含 "mplayer",使用下列命令就可以查询到名称中包含 "mplayer" 的软件包了。
kmplayer.i686 0.11.1b-2.fc12 fedora
单独使用 yum list 会显示软件包仓库中的所有软件包名称,这将是一个很长的列表,如果你真想看看这个列表的话,建议运行 "yum list | less"
另一种查询方式是使用 "yum search [关键词]",它会从名称和描述两方面进行查找,因此较为推荐这种查询方式。比如你想找“播放器”,可以运行 "yum search player | less"
查询软件包仓库以外的软件列表,比如从其他网站下载到本地安装的软件,可以使用 yum list extras
linuxqq.i386 v1.0.2-beta1 @/linuxqq-v1.0.2-bate1.i386
卸载软件包
卸载软件包与安装软件包一样,需要使用正确的软件包名称,如果要卸载QQ,使用 "yum erase qq" 是不行的,因为系统并没有安装名称 qq 的软件包,正确的卸载命令应该是 "yum erase linuxqq"
密码:
[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.
管理 RPM 软件包
使用图形界面和命令行都可以十分有效的管理 RPM 软件包。在图形界面,可以通过“添加/删除软件包”窗口,在命令行则可以使用 rpm 命令对其进行管理。
使用图形界面和命令行都可以十分有效的管理 RPM 软件包。在图形界面,可以通过“添加/删除软件包”窗口,在命令行则可以使用 rpm 命令对其进行管理。
使用“添加/删除软件包”管理窗口
使用“添加/删除软件包”管理窗口同,可通过“系统->管理->Add/Remove Software”打开。
窗口左侧是软件分类目录,选择相应目录之后右侧窗口便会出现一些可选软件包(来自于 yum 软件包仓库),选中可取消选中之后,点击应用以实现相应的“安装”或“卸载”
说明:安装过程中会计算软件包依赖性,同 yum 一样,会提示用户需要下载的相关的软件包以解决依赖性。
使用 rpm 命令
使用 yum 进行软件包的安装时,yum 默认会使用 GPG/DSA 密钥验证包的完整性。使用 rpm 命令时,则需要手动进行这一步操作
安装软件包
安装软件包时,可以使用 -i (安装) 或者 -U (升级) 选项,推荐使用 -U 选项,因为 -U 适合“安装”和“升级”,而 -i 只适用于“安装” (详细可查询 rpm 帮助信息)
如果希望查看安装过程中的概要信息,可以加上 -v 选项,如 "rpm -Uv [package]",详细信息则使用 -vv 选项(注意:是两个 v)
卸载软件包
使用 -e 选项卸载软件包,如果没有其它软件包依赖于这个包,这个包便会被直接卸载。如果希望看到详细输出信息,可以加上 -vv 选项
从源代码安装应用程序
并非所有的应用程序都有 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 文档,通常通过运行以下三个命令进行源代码的编译与安装:
以下以 abc-1.0.0.i386.tar.gz 包为例,演示从源代码安装应用程序的全部过程。(实际上并没有这个软件包,只是为了演示随便取的名字,重点在于说明安装的过程)
说明:
- 第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行 - 安装
从源代码安装应用程序的准备工作
在学习如何从源代码编译和安装应用程序之前,必须先为系统安装上一些用于开发的软件包,不然在进行编译时就会出错。
以下软件包是使用 C 语言进行编译时的最基本需求:
- gcc - 包含 GNU C 编译器
- make - 包含 make 命令,用于通过 makefiles 制作二进制文件
- glibc - 包含一些重要的函数库
- glibc-devel - 包含制作可执行程序所需要的标准头文件
- binutils - 包含编译程序所需要的一些工具
- kernel-devel - 包含 Linux 内核(Kernel) 的原文件,它在需要重建内核时会被用到
- rpm-build - 包含 rpmbuild 工具,可使用源代码制作 RPM 软件包
在开始编译之前,使用 "rpm -q [package]" 命令查询一个或多个软件包是否被安装,查询多个软件包时,名称之间用“空格”隔开
使用 yum 命令安装没有安装的软件包 (记得进行安装、升级等管理任务时要切换到 root 用户)
确定所需要的软件包都已经安装之后,就可以进入下一节了。
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 |
…… |
推荐的应用程序就这么多,本列表不定期持续更新,大家有好的程序可以推荐一下