ただのにっき。

ただつらつらと日記が書かれていくようです。

Tag: AmazonLinux

Amazon LightsailでAmazonLinux2が使えない。

EC2向けにAmazonLinux2が使えるようになって久しいので、そろそろAmazon Lightsailで動かしているインスタンスをAmazonLinux2に入れ替えようかと思って、とりあえず1個のインスタンスを落として、AmazonLinux2で新しいインスタンスを起動して…と思って作業していたら…。

Lightsailのインスタンスの起動画面のOSの選択肢の中に、AmazonLinux2がない…。うーむ。あー。マジかー。そのうち、対応するんだろうとは思うけれど、まだなのかそうなのか…。一応、U.S.のリージョンでもAmazonLinux2は選択肢に出てこないので、リージョン間の展開待ちって感じでもないようだ。

AmazonLinuxでsendmailをpostfixに入れ替える…けど、依存パッケージはそのままで。

なぜか、Amazon LiunxのデフォルトのMTAはSendmail。ま、ベースとなっているRHELのデフォルトのMTAがSendmailだからなんだろうな、いやはや。最近はPostfixしか使っていないので、AmazonLinuxでサーバを構築する際は、まずはsendmailをアンインストールして、Postfixに入れ替えるという作業を行うことになる。

AmazonLinuxのサーバをオフィシャルなAMIから構築する場合には、sudo yum remove sendmailでsendmailをアンインストールして、sudo yum install postfixすれば、MTAの交換ができてしまうのだが、sendmailに依存するパッケージに「crontabs.noarch」があったりするのがちょっと…。ま、postfixを入れた後、再インストールすればいいわけだけど、うっかりわすれるとcronが動かなかったりする。「このサーバではログのローテーションが実行されないなー、不思議だなー」とか思っていると、MTA入れ替え後の「crontabs.noarch」の再インストールを忘れているってことがある(遠い目)

…で、こちらの記事「yumで複雑に依存しあった複数のパッケージを入れ替える」によると、yumはsendmailのアンインストールとpostfixのインストールを1つのトランザクションとして依存性を解決することができるらしい。

まずは、yumのシェルを起動。削除したいものとインストールしたいものを指定。その後、依存性の解決を行った後、で、そのトランザクションを実行という流れらしい。

sudo yum shell

remove (パッケージ名)
install (パッケージ名)
transaction solve
transaction run

試しに、sendmailをremoveして、postfixをinstallしてトランザクションの依存性を解決してみたが、sendmailに依存しているcrontabsなどは削除されることなく、そっとsendmailがアンインストールされ、postfixが必要とするmysql55-libとspostgresql92-libsと一緒にpostfixがインストールされた。

…って、これはAmazonLinuxに限ったことではなく、yumが使えるRHEL系のLinuxなら同じ事ができますね、はい。