我正在嘗試在 CentOS 6.8 伺服器上安裝 apache 2.4,我已按照本教程進行操作:geekpeek.net/running-latest-apache-2-4-with-php-7-0-on-centos-6 /#disqus_thread
但我被困在第 5 步,因為我無法建造 apr-util-1.5.4 rpm,我的命令是:
$ rpmbuild -tb apr-util-1.5.4.tar.bz2
結果(我自己從法文翻譯,經過多行文件處理):
Rpm build error:
File not found by substitution: ~/rpmbuild/BUILDROOT/apr-util-1.5.4-1.x86_64/usr/lib64/apr-util-1/apr_dbd_mysql*
這是指定目錄的內容:
apr_crypto_nss-1.so apr_dbd_freetds.so apr_dbd_sqlite3.la
apr_crypto_nss.a apr_dbd_odbc-1.so apr_dbd_sqlite3.so
apr_crypto_nss.la apr_dbd_odbc.a apr_dbm_db-1.so
apr_crypto_nss.so apr_dbd_odbc.la apr_dbm_db.a
apr_crypto_openssl-1.so apr_dbd_odbc.so apr_dbm_db.la
apr_crypto_openssl.a apr_dbd_pgsql-1.so apr_dbm_db.so
apr_crypto_openssl.la apr_dbd_pgsql.a apr_ldap-1.so
apr_crypto_openssl.so apr_dbd_pgsql.la apr_ldap.a
apr_dbd_freetds-1.so apr_dbd_pgsql.so apr_ldap.la
apr_dbd_freetds.a apr_dbd_sqlite3-1.so apr_ldap.so
apr_dbd_freetds.la apr_dbd_sqlite3.a
我從下載了 apr-util-1.5.4.tar.bz2阿帕契官方網站,並使用 md5sum 驗證檔案完整性。 A前一個問題表示可以在 apr-util-mysql 套件中找到遺失的文件,我相信我可以從 rpmfind 取得該套件(www.rpmfind.net/linux/rpm2html/search.php?query=apr-util-mysql&submit=Search+ .. .)。
但我現在很苦惱該怎麼辦?我是否應該嘗試強制構建不丟失文件的 rpm,並在之後(或之前)安裝 apr-util-mysql?我可以以某種方式分解 apr-util-mysql 包來提取丟失的 apr_dbd_mysql 文件嗎(我應該這樣做)嗎?
答案1
所以我最終透過一個卑鄙的黑客手段克服了這個錯誤。該錯誤表明它無法在此位置找到我的構建的 apt-dbd-mysql:
/root/rpmbuild/BUILDROOT/apr-util-1.5.4-1.x86_64/usr/lib64/apr-util-1/
我繼續安裝
apr-util
apr-util-devel
apr-util-mysql
(雖然是舊版本,但沒問題,因為當您完成建置 rpm 並安裝它時,它會更新軟體包)我注意到當我在螢幕上看到以下內容時會彈出錯誤:
======== drop table ========
drop table test successful
Loaded freetds driver OK.
Failed to open freetds[]
Loaded odbc driver OK.
[Tue Apr 18 16:00:12 2017] [dbd_odbc] SQLConnect returned SQL_ERROR (-1) at dbd/apr_dbd_odbc.c:1146 [unixODBC][Driver Manager]Data source name not found, and no default driver specified IM002
Failed to open odbc[]
teststrmatch : SUCCESS
testuri : SUCCESS
testuuid : SUCCESS
testbuckets : SUCCESS
testpass : SUCCESS
testmd4 : SUCCESS
testmd5 : SUCCESS
testcrypto : SUCCESS
testldap : SUCCESS
testdbd : SUCCESS
testdate : SUCCESS
testmemcache : SUCCESS
testxml : SUCCESS
testxlate : SUCCESS
testrmm : SUCCESS
testdbm : SUCCESS
testqueue : SUCCESS
testreslist : SUCCESS
All tests passed.
+ popd
~/rpmbuild/BUILD/apr-util-1.5.4
我打開了另一個 shell,並根據我們安裝的軟體包,導航到此處並將所有 apr-dbd-mysql 檔案複製到 rpmbuiild 工具搜尋它的位置:
cd /usr/lib64/apr-util-1/
cp * /root/rpmbuild/BUILDROOT/apr-util-1.5.4-1.x86_64/usr/lib64/apr-util-1/
同時,在另一個螢幕上,該工具完成所有測試後,它確實為我構建了 apr-util 的最新 rpm:
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/apr-util-1.5.4-1.x86_64
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-devel-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-dbm-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-pgsql-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-mysql-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-sqlite-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-freetds-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-odbc-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-ldap-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-openssl-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-nss-1.5.4-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/apr-util-debuginfo-1.5.4-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.0SGJGz
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd apr-util-1.5.4
+ rm -rf /root/rpmbuild/BUILDROOT/apr-util-1.5.4-1.x86_64
+ exit 0
現在您可以安裝這些新軟體包來更新系統上的舊 apr-util 軟體包。希望這可以幫助!