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和基於源代碼的安裝可能變得非常多毛。 –