本人现正在学习linux服务器方面的知识.想自己创建一个MySQL的应用程序模版,使用的linux系统是Cent OS4.4.从网上下载了创建MySQL应用程序模版所需要的rpm包,按照正常步骤操作,却安装不上,屏幕上显示如下:
Installation completed successfully
/usr/sbin/vzpkgcreat:line 306:rpmbuild:command not found
我理解的是应该是缺少了什么库文件,但我不知道我要安装什么组件或是什么包才能把那个库文件给安装上去.如果各位知道的话,还请麻烦告诉我一下,留个言.不胜感激.
jxe20 于 2011-12-07 23:23:54发表:
首先,你应该检查 rpmbuild 是否已经被安装在你的系统上。你将会利用这个工具从 spec 文件或 SRPM 组件创建 RPM。要检查它是否被安装了,请执行 rpmbuild --version 这个指令。下列是你在一台 CentOS 5 的主机上应看见的输出:
[user@host ~]$ rpmbuild --version
RPM version 4.4.2
假若输出是 rpmbuild: command not found,便意味著你并未安装 rpmbuild。你可以用 root 身份执行下列指令,通过 yum 来安装它:
[root@host ~]# yum install rpm-build
注:rpm 组件的名称是 rpm-build(也就是在组件名称内有一个 "-" 号),它提供 /usr/bin/rpmbuild 及其它东西。
请检查 yum 所安装的清单内包含了某个版本的 rpm-build 组件,然后回答 "y" 批准 yum 继续进行组件的安装。
当 yum 完成后,再次执行 rpmbuild --version 这个指令来检查它已经安装妥当。
大部份以 CentOS 作为重建目标的 SRPM 亦需要特定的 rpmbuild 创建宏及辅助脚本,它们都收录在 redhat-rpm-config 组件内。要获得预期的结果,你必须安装这个组件。你可以通过 yum 用下列指令来安装 redhat-rpm-config:
[root@host ~]# yum install redhat-rpm-config
注:这个组件或许已被安装,要是这样,yum 只会输出 Nothing to do. 然后便终止。你可以用 rpm -q redhat-rpm-config 这个指令来检查组件是否已被安装。如果你看见任何输出,那便代表组件已经存在。rpm 指令的输出亦会包含安装在你系统上的软件的版本。
新增目录让你能在主目录内置立 RPM
当你安装好 rpmbuild 后,下一步便是将创建 RPM 时所需的文件及目录新增到你的主目录内。你永远不应以 root 身份创建 RPM,而应利用一个没有特殊权限的户口来进行这项工作。
要以没有特殊权限的用户来创建 RPM,你必须为此新增一个目录结构,然后在你的主目录内置立一个 .rpmmacros 档,在当中指定以新创建的目录取代缺省的 RPM 创建目录。
下面的指引会在你的主目录内新增一个 rpmbuild 作创建 RPM 之用。如果你想采用另一个目录,你必须按你的用途修改下列指引。请阅读外部参考材料来找出如何进行更复杂的设置。
要创建一个创建 RPM 的环境,这执行下列两个指令:
[user@host ~]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
[user@host ~]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
这留意第二个指令会取替可能已存在的 .rpmmacros,因此你应该在执行这个指令之前,先检查这个文件并不存在。
当你执行完以上两个指令后,你便设置好一个创建 RPM 用的环境。
你可能需用的其它工具
一般而言,创建 RPM 等同创建及编译软件。要达至这个目的,你多数会需要编译及创建源代码组件的工具。
你很有可能需要安装 make 来创建软件(就算不是用 C 或其它编译语言所写的软件亦会在安装过程中采用 Makefile)。你可以用 root 身份执行下列指令,通过 yum 来安装 make:
[root@host ~]# yum install make
请检查 yum 所安装的清单内包含了某个版本的 make 组件,然后回答 "y" 批准 yum 安装组件。
如果你为那些以 C 写成的软件创建组件,你亦会需要 gcc 编译器。你可以用 root 身份执行下列指令,通过 yum 来安装它:
[root@host ~]# yum install gcc
请检查 yum 所安装的清单内包含了某个版本的 gcc 组件,然后回答 "y" 批准 yum 安装组件。某些依赖很可能亦会一并被安装,好让 gcc 能够针对系统库作出编译。
如果你创建的软件使用到系统库(例如:OpenSSL),你亦会需要安装额外的 RPM,好让你能针对这些库创建软件。
让我们以 OpenSSL 为例。这里有两个独立的 RPM:opensll 及 openssl-devel。openssl RPM 组件内藏有那些连结到 openssl 的程序在执行时所需的库。举个例说,wget 需要 OpenSSL,因此要安装 wget RPM,你必须先安装 openssl RPM。然而,编译应用 OpenSSL 的代码时所需的文件,并不包含在 openssl RPM 内。举个例说,如果你下载 wget 的源代码然后尝试创建它,它会投诉找不到 OpenSSL 的库。编译采用 OpenSSL 的代码所需的文件都收录在 openssl-devel RPM 内。因此,当你安装了这个组件后,便能编译那些利用到 OpenSSL 库的代码。
简单来说,当你尝试创建一个 RPM 组件,而它输出一个错误信息告诉你不能找到某某库,你便应该寻找那个库(或者安装未存在的组件),然后再安装它相关的 -devel RPM。这样你便能继续创建原先的 RPM。
houshipeng 于 2008-04-08 07:50:56发表:
问题我知道了,果然缺少,没有安装rpm -build包,安装上去就可以了。
houshipeng 于 2008-04-07 07:22:33发表:
但是有的人和我的系统版本,及MySQL的rpm包完全相同,他就成功的安装上了啊。所以我认为还是缺少什么库文件,应当追加安装什么包之类的,而我不知道啊,谢谢你回答,继续等待答案。。。。。。。
zy66289214 于 2008-04-05 18:52:21发表:
我觉得应该是你下载的rpm包与你现在的版本不支持的缘故 ,另外建议你升级下你的centos4.4 我都在用5.1了 升级下数据库 可能会解决这个问题 yum upgrade