SIOS “OSSよろず” ブログ出張所: ソースの入手と再ビルド ~ 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=whichRequested package: whichFound package from local RPM database: which-2.19-5.1.9.amzn1Corresponding source RPM to found package : which-2.19-5.1.9.amzn1.src.rpmYour AWS account id: XXXX-XXXX-XXXXAre these parameters correct? Please type 'yes' to continue: yesSource 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/debugdrwxrwxrwt 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.rpmWrote: /home/knaka/rpm/RPMS/i686/which-debuginfo-2.19-5.1.9.amzn1.i686.rpm(中略)

では。

コメントを残す