0
- 我使用AWS EC2实例。
- 我想设置一个版本为5.4.0的软件包,但最新的
yum search all --enablerepo epel
提供的是5.0.0。 - 我因此做了
wget
和configure && make && make install
在v5.4.0这是可在网上。
因为我们做了很多实例的风风雨雨,这个解决方案是太费时(编译时间)成为上部署一个可行的解决方案。yum在安装rpm -ivh后未解析依赖关系
- 我然后从版本为5.4.0的
tar.bz2
构建了一个RPM。为了确保库和依赖关系在环境之间没有差异,我在的实例上运行rpmbuild
作为我们的部署AMI。 - 有过构建和部署测试服务器上的RPM之后,我尝试安装
gearmand
以下result-
[[email protected] ~]$ sudo yum install --enablerepo=epel gearmand Loaded plugins: priorities, update-motd, upgrade-helper 565 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package gearmand.x86_64 0:1.1.8-2.el6 will be installed --> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Processing Dependency: libpq.so.5()(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Processing Dependency: libmysqlclient.so.16()(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Processing Dependency: libgearman.so.8()(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Processing Dependency: libevent-1.4.so.2()(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Processing Dependency: libboost_system.so.5()(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Processing Dependency: libboost_program_options-mt.so.5()(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Running transaction check ---> Package compat-boost-program-options.x86_64 0:1.41.0-11.10.amzn1 will be installed ---> Package compat-boost-system.x86_64 0:1.41.0-11.10.amzn1 will be installed ---> Package compat-libevent.x86_64 0:1.4.13-4.10.amzn1 will be installed ---> Package gearmand.x86_64 0:1.1.8-2.el6 will be installed --> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: gearmand-1.1.8-2.el6.x86_64 --> Processing Dependency: libmysqlclient.so.16()(64bit) for package: gearmand-1.1.8-2.el6.x86_64 ---> Package libgearman.x86_64 0:1.1.8-2.el6 will be installed ---> Package postgresql9-libs.x86_64 0:9.2.5-1.37.amzn1 will be installed --> Finished Dependency Resolution Error: Package: gearmand-1.1.8-2.el6.x86_64 (epel) Requires: libmysqlclient.so.16(libmysqlclient_16)(64bit) Error: Package: gearmand-1.1.8-2.el6.x86_64 (epel) Requires: libmysqlclient.so.16()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
这使我怀疑RPM安装在某种意义上是“冻结和阻塞'它依赖的图书馆。我觉得这样,因为在构建RPM时,该软件包预期的库版本要高于amazon或epel回购版上的版本。有些examples-
+-------------+-------------------+----------------+
| name | amazon version | library wants |
+-------------+-------------------+----------------+
| glibc | 2.12 | 2.16 |
| perl | 5.10 | 5.18 |
| python | 2.6.9 | 2.7 |
+-------------+-------------------+----------------+
我在这里做得不对,我需要构建RPM前更改源/规范的东西吗?因为这看起来只是冰山一角。
“然后,我建立了一个RPM” - 你需要发布'spec'文件。混合RPM和基于源代码的安装可能变得非常多毛。 –