2011年12月14日水曜日

ソースの入手と再ビルド ~ Amazon Linux AMI (EC2) 編

お疲れ様です、サイオス 那賀です。

Amazon Linux AMI は、AWS (Amazon Web Services) 専用に、Amazon.com によって開発されている Linux ディストリビューションの仮想環境イメージ (AMI: Amazon Machine Image) です。今のところ実態としては、RHEL6 系に近いものになっています。てっきり CentOS あたりをベースにリコンパイルだけをして作っているのかと思っていたのですが、RHEL6 を下敷きにしつつも、自前で全部作っているそうです。AWS の機能に特化されているのみならず、Amazon のサポートに通りが良いところがウリです。

そのようなわけですから、Amazon Linux もまた RPM ベースです。Amazon Linux も YUM は備えているのですが、ソースの入手には yumdownloader ではなく、別途 get_reference_source コマンド経由で、web サービスを利用します。右記参照、「Q: Amazon Linux AMI へのソースコードを見ることができますか? - Amazon Elastic Compute Cloud (Amazon EC2) FAQ」。

$ get_reference_source --aws-account-id=XXXX-XXXX-XXXX \
 --package=which

Requested package: which

Found package from local RPM database: which-2.19-5.1.9.amzn1
Corresponding source RPM to found package : which-2.19-5.1.9.amzn1.src.rpm

Your AWS account id: XXXX-XXXX-XXXX

Are these parameters correct? Please type 'yes' to continue: yes
Source RPM for 'which-2.19-5.1.9.amzn1' downloaded to: /usr/src/srpm/debug/which-2.19-5.1.9.amzn1.src.rpm
[ knaka@ip-10-146-81-102:~ S ]
$ ls -ld /usr/src/srpm/debug
drwxrwxrwt 2 root root 4096 Dec XX 03:36 /usr/src/srpm/debug/

それ以降は他の distro と大差ないのですが、以前の記事(「SIOS OSS Tech: debuginfo RPM パッケージで、ソースレベル・デバッグをする」)などで触れた Red Hat 系における "redhat-rpm-config" パッケージが、Amazon Linux では "system-rpm-config" パッケージにあたるので、既存パッケージと同等の構成でインストールしたい場合や、特に、debuginfo パッケージが必要な場合には、これもインストールしておいてください。

$ sudo yum install -y system-rpm-config
$ rpmbuild --rebuild --define="optflags -pg -g3 -O0" \
 /usr/src/srpm/debug/which-2.19-5.1.9.amzn1.src.rpm
(中略)
Wrote: /home/knaka/rpm/RPMS/i686/which-2.19-5.1.9.amzn1.i686.rpm
Wrote: /home/knaka/rpm/RPMS/i686/which-debuginfo-2.19-5.1.9.amzn1.i686.rpm
(中略)

では。

1 件のコメント:

  1. Bluehost is one of the best web-hosting provider for any hosting plans you might require.

    返信削除