我想在我的 EC2 微型实例上使用 apache2 将 nginx 作为反向代理运行。yum install nginx 为我提供了 nginx-0.8.53-1.2.amzn1.x86_64.rpm 当前 nginx 是 1.0.4
我找到并遵循了该指南:http://kdn2.info/2011/05/install-nginx-on-amazon-ec2/ 直到“make”为止它都运行良好。
当我得到 checkinstall --fstrans=no 时我得到了
ERROR: ld.so: object '/usr/lib/installwatch.so' from LD_PRELOAD cannot be preloaded: ignored.
test -d '/var/log/nginx' || mkdir -p '/var/log/nginx'
ERROR: ld.so: object '/usr/lib/installwatch.so' from LD_PRELOAD cannot be preloaded: ignored.
make[1]: Leaving directory `/root/src/nginx-1.0.4'
======================== Installation successful ==========================
Copying documentation directory...
./
./CHANGES
./LICENSE
./README
cp: cannot stat `//var/tmp/gRWoVgIcdbmjfTjoVGBM/newfiles.tmp': No such file or directory
Copying files to the temporary directory...OK
Striping ELF binaries and libraries...OK
Compressing man pages...OK
Building file list...OK
Building RPM package... FAILED!
*** Failed to build the package
...日志文件充满了:
Building target platforms: x86_64
Building for target x86_64
Processing files: nginx-1.0.4-1.x86_64
error: File not found: /usr/src/rpm/BUILDROOT/nginx-1.0.4-1.x86_64/usr
error: File not found: /usr/src/rpm/BUILDROOT/nginx-1.0.4-1.x86_64/usr/doc
有 /usr/src/rpm/BUILDROOT/nginx-1.0.4-1.x86_64/ 但没有 /usr
继续往下看,页面内容是:
“例如,如果我们想使用 PHP 5.2,我们可以从 CentosALT 存储库下载与 Amazon Kernel(Xen Kernel)兼容的 PHP 和 Nginx。”
因此我安装了这两个存储库,但是当我
yum install http://centos.alt.ru/pub/nginx/1.0/RPMS/x86_64/nginx-stable-1.0.4-1.el5.x86_64.rpm
我明白了
Error: Package: nginx-stable-1.0.4-1.el5.x86_64 (/nginx-stable-1.0.4-1.el5.x86_64)
Requires: perl(:MODULE_COMPAT_5.8.8) You could try using --skip-broken to work around the problem
但这并不能解决问题。
当我执行 yum update 时,我得到
--> Finished Dependency Resolution
Error: Package: python-distribute-0.6.19-10.1.x86_64 (devel_languages_python)
Requires: python < 2.5
Installed: 1:python-2.6-1.19.amzn1.noarch (@amzn-main)
python = 1:2.6-1.19.amzn1
Error: Package: python-distribute-0.6.19-10.1.i586 (devel_languages_python)
Requires: python < 2.5
Installed: 1:python-2.6-1.19.amzn1.noarch (@amzn-main)
python = 1:2.6-1.19.amzn1
我已经尝试了所有方法 - yum clean all 以及在其他网站上找到的各种其他建议。
如果有人对当前在 EC2 Micro 上运行的 1.04 nginx 有任何建议或已知软件包(Linux ip-10-56-63-85 2.6.35.11-83.9.amzn1.x86_64 #1 SMP Sat Feb 19 23:42:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux - 我认为是 RHEL 5?)那么我将不胜感激。
顺便问一下,这个 repolist 看起来正确吗?
repo id repo name status
CentALT CentALT Packages for Enterprise Linux 5 - x86_64 enabled: 112+157
amzn-main amzn-main-Base enabled: 2,706
amzn-main-debuginfo amzn-main-debuginfo disabled
amzn-main-nosrc amzn-main-nosrc disabled
amzn-updates amzn-updates-Base enabled: 328
amzn-updates-debuginfo amzn-updates-debuginfo disabled
amzn-updates-nosrc amzn-updates-nosrc disabled
devel_languages_python Python and Python Modules (SLE_10) enabled: 1,452+768
epel Extra Packages for Enterprise Linux 5 - x86_64 enabled: 5,892+604
epel-debuginfo Extra Packages for Enterprise Linux 5 - x86_64 - Debug disabled
epel-source Extra Packages for Enterprise Linux 5 - x86_64 - Source disabled
epel-testing Extra Packages for Enterprise Linux 5 - Testing - x86_64 disabled
epel-testing-debuginfo Extra Packages for Enterprise Linux 5 - Testing - x86_64 - Debug disabled
epel-testing-source Extra Packages for Enterprise Linux 5 - Testing - x86_64 - Source disabled
s3tools Tools for managing Amazon S3 - Simple Storage Service (RHEL_6) enabled: 2+1
repolist: 10,492
答案1
顺便说一句,nginx 包现在以 RPM 格式提供,因此后续人员在构建软件时不一定会遇到 OP 遇到的问题。
http://nginx.org/en/download.html
我不知道 Amazon Linux 在 yum 设置方面是如何标记的,但 RHEL5/6 在那里。
在最坏的情况下,有人可以获取适当的 SRPM 并从那里重建。
答案2
我在 CentOS 6 上遇到了同样的问题
epel
我认为你可以通过禁用存储CentALT
库或向 yum 添加此选项来 解决这个问题:yum install nginx --disablerepo=epel,CentALT