2014年4月16日水曜日

cpanmin.usのインストールで”Can't locate ExtUtils/Manifest.pm”と言われたとき

*christopher*

cpanmin.usのインストールで”Can't locate ExtUtils/Manifest.pm”と言われたときは、”perl-ExtUtils-Manifest”をインストールしてあげましょう。

# cat /etc/redhat-release
CentOS release 6.5 (Final)

# curl -L http://cpanmin.us | perl - --sudo App::cpanminus
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  262k  100  262k    0     0   830k      0 --:--:-- --:--:-- --:--:--  830k
--> Working on App::cpanminus
Fetching http://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7001.tar.gz ... OK
Configuring App-cpanminus-1.7001 ... N/A
Can't locate ExtUtils/Manifest.pm in @INC (@INC contains: CODE(0x1f76c48) /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /loader/0x1f76c48/App/cpanminus/script.pm line 99.

# yum isntall perl-ExtUtils-Manifest

2014年4月8日火曜日

OpenSSLのHeartbleed問題を解決する。CentOS 6.5編

My Heart Bleeds No More by LoveIsSoul
『OpenSSLの重大バグが発覚。インターネットの大部分に影響の可能性』
http://jp.techcrunch.com/2014/04/08/20140407massive-security-bug-in-openssl-could-effect-a-huge-chunk-of-the-internet/
本日こちらの記事が話題になりました。

CentOSの対応状況については、本家のフォーラムが参考になります。
『heartbleed openssl bug, need 1.0.1g openssl version』
https://www.centos.org/forums/viewtopic.php?f=9&t=45814

日本語の情報だと、こちらが詳しいです。
『 CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ』
http://d.hatena.ne.jp/nekoruri/20140408/heartbleed
『Heartbleed脆弱性と、その背後にあるWebアプリケーションアーキテクチャの一般的欠陥について』
http://blog.kazuhooku.com/2014/04/heartbleedweb.html

以下は、OSがCentOS 6.5の場合のHTTPサーバの解決方法です。

Apacheの場合

# yum update openssl mod_ssl
# /etc/init.d/httpd restart

Nginxの場合

# yum update openssl nginx
# /etc/init.d/nginx restart

確認方法

openssl-1.0.1e-16.el6_5.7以上がインストールされればOKです。

# yum list installed | grep openssl
openssl.x86_64          1.0.1e-16.el6_5.7
openssl-devel.x86_64    1.0.1e-16.el6_5.7

# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
とくに、OpenSSLのバージョンは変わっていないので注意。

正しくアップデートされたかどうか、こちらのページでチェックできます。
イタリアのFilippo Valsordaさんが作った『Heartbleed test』です。
http://filippo.io/Heartbleed/

例えば、フォームに”www.blogger.com”と入れて[Go!]を押します。
”All good, www.blogger.com seems not affected!”と出たらOKです。

HTTPサーバ側の設定は上記で完了です。
安全のため、証明書を再発行&再設定しておきましょう。

間違っていたら教えてください。



2014年4月7日月曜日

Apache ThriftをCentOS6にインストール

HawkinsSteven

Apache Thrift(http://thrift.apache.org/)をCentOS6にインストールしようとしたのですが、エラーが出て一瞬ハマったので正解をメモしておきます。

Thriftインストールが駄目なパターン

# ./configure
# make
~~~~
libtool: link: g++ -Wall -g -O2 -o .libs/TutorialClient CppClient.o  -L/usr/lib ./.libs/libtutorialgencpp.a /usr/local/src/thrift-0.9.1/lib/cpp/.libs/libthrift.so ../../lib/cpp/.libs/libthrift.so -lssl -lcrypto -lrt -lpthread -Wl,-rpath -Wl,/usr/local/lib
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial/cpp' から出ます
Making all in py
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial/py' に入ります
../../compiler/cpp/thrift --gen py -r ../../tutorial/tutorial.thrift
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial/py' から出ます
Making all in py.twisted
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial/py.twisted' に入ります
../../compiler/cpp/thrift --gen py:twisted -r ../../tutorial/tutorial.thrift
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial/py.twisted' から出ます
Making all in py.tornado
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial/py.tornado' に入ります
../../compiler/cpp/thrift --gen py:tornado -r ../../tutorial/tutorial.thrift
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial/py.tornado' から出ます
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial' に入ります
../compiler/cpp/thrift --gen html -r ../tutorial/tutorial.thrift
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial' から出ます
make[2]: ディレクトリ `/usr/local/src/thrift-0.9.1/tutorial' から出ます
Making all in test
make[2]: ディレクトリ `/usr/local/src/thrift-0.9.1/test' に入ります
Making all in nodejs
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/test/nodejs' に入ります
make[3]: `all' に対して行うべき事はありません.
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/test/nodejs' から出ます
Making all in cpp
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/test/cpp' に入ります
Makefile:832: 警告: ターゲット `gen-cpp/ThriftTest.cpp' へのコマンドを置き換えます
Makefile:829: 警告: ターゲット `gen-cpp/ThriftTest.cpp' への古いコマンドは無視されます
/bin/sh ../../libtool --tag=CXX   --mode=link g++ -Wall -g -O2 -L/usr/lib   -o libtestgencpp.la  ThriftTest_constants.lo ThriftTest_types.lo ../../lib/cpp/libthrift.la -lssl -lcrypto -lrt -lpthread
libtool: link: ar cru .libs/libtestgencpp.a .libs/ThriftTest_constants.o .libs/ThriftTest_types.o
ar: .libs/ThriftTest_constants.o: No such file or directory
make[3]: *** [libtestgencpp.la] エラー 1
make[3]: ディレクトリ `/usr/local/src/thrift-0.9.1/test/cpp' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/usr/local/src/thrift-0.9.1/test' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/usr/local/src/thrift-0.9.1' から出ます

make: *** [all] エラー 2


Thriftインストールが成功するパターン

configure時にオプションを追加します。
cppのライブラリのインストールをスルーしています。

# wget http://ftp.kddilabs.jp/infosystems/apache/thrift/0.9.1/thrift-0.9.1.tar.gz
# tar vzxf thrift-0.9.1.tar.gz
# ./configure --with-cpp=no
# make
# make install
# ln -s /usr/local/bin/thrift /usr/bin/thrift

GitHubにFabricスクリプトを置いておきました。
https://github.com/takeshiyako2/fabric-scripts/blob/master/centos6-thrift.py

Bookmark > CDN-Advisor.com | Content Delivery Network News