在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 |
…… |
推荐的应用程序就这么多,本列表不定期持续更新,大家有好的程序可以推荐一下
相关文章推荐
- 关于jquery post 文件和文本信息 而不刷新页面
- [转]Jquery Mobile dialog的生命周期
- 用jquery仿做发微博功能示例
- JAVA的StringBuffer类
- CSS 布局总结——固定宽度布局
- 实例说明为什么不要行内使用javascript
- JavaScript 设计风格&模式 概览 20140418
- AJAX技术分析
- JS闭包
- AFNetworking 如何POST一个JSON数据到服务器
- jQuery.form.js-表单插件使用及API
- JS 四则运算(加减乘除小数运算)避免损失精度
- jQuery多变全屏幻灯片
- jQuery多变全屏幻灯片
- html学习2-小练习1之坦克大战练习
- 分享8款精美的jQuery图片播放插件
- JSON串中的中文字符编码显示问题
- html5 用canvas画出的图用作html背景
- js中string转成json格式
- JQuery each()嵌套使用小结