ARCHIVESDRIVE HB

オイラはホームベーカリー!

CentOS8 から RockyLinux に移行する RC 版

公式のダウンロードページに記載されている通り「RC だから本番 (≒商用) 環境の利用に持ち込むなよ!」という状態なので、手元の開発環境とかで動作するか確認してもろて、という状態ですね。

RockyLinux の RC が出た

出てました。

rockylinux.org

いまんとこ CentOS 8.3 のみサポートしとるらしいです。

CentOS からの移行

この centos2rocky.sh を使えばよさそうです。 という訳で使ってみたのですが、今の所アナウンスされてない存在かつ、実装されているオプションが説明通りの動作じゃないっぽいので以下に記載します。

github.com

ちなみに Issue かどこかで見たのですが、「今は CentOS にしか対応してないけど、今後その他のディストリにも対応範囲を広げたい」と言っているので RHEL 派生の他ディストリはワンチャンあるかも? (Alma -> Rocky みたいなの想定してるのかな)

CentOS2Rocky

Usage にも書かれている通り、現在実装されている動作オプションは以下。

github.com

オプション名 内容
-h ヘルプを表示します、表示内容は README の Usage とほぼ同じ模様
-r スクリプトを実行した CentOS 環境を RockyLinux 環境に変換します
-V 切替確認
-R すべてのパッケージの再インストール

現状、変換を実行すると (Base に含まれる) すべてのパッケージが dnf reinstall されるので、作業完了したら reboot を投げて新しいカーネルを読み込ませる必要があります。

needs-restarting でめっちゃ警告でると思われるのでね、やっといてね。

-h

[vagrant@localhost ~]$ sudo ./centos2rocky.sh -h

README の Usage とほぼ同じなので見どころは特には。

-r

[vagrant@localhost ~]$ sudo ./centos2rocky.sh -r

通常、環境を変換する場合はこのコマンドと思われます。

AlmaLinux の変換はリポジトリを切り替えるだけだったのですが、 RockyLinux はリポジトリを切り替えた上で、標準リポジトリに含まれる (と思われる) パッケージをすべて再インストールする ( -R オプションに期待する動作) ようです。

-V

これが問題で、個人的には「スクリプトを実行している CentOS 環境と、移行先になる RockyLinux の間で RPM パッケージの確認を行う」だけで、実際に変換はされないと思ってたんですね。

まぁ思ってただけで試してよかったね、という感じで本日現在だと確認もなんも特になく、普通に処理が始まって変換されてしまいます。

[vagrant@localhost ~]$ sudo ./centos2rocky.sh -V

#snip#

Complete!
Last metadata expiration check: 0:03:51 ago on Fri 07 May 2021 07:23:21 PM JST.
Dependencies resolved.
Nothing to do.
Complete!
mkdir: cannot create directory ‘/root/convert’: File exists
[vagrant@localhost ~]$ sudo ls -lha /root/convert
合計 100K
drwxr-xr-x  2 root root 111  57 19:22 .
dr-xr-x---. 4 root root 201  315 04:28 ..
-rw-r--r--  1 root root 96K  57 19:22 localhost.localdomain-rpm-list-begin.log
-rw-r--r--  1 root root 470  57 19:22 localhost.localdomain-rpm-list-verified-begin.log
[vagrant@localhost ~]$ cat /etc/system-release
Rocky Linux release 8.3

Complete! じゃないんじゃ。

github.com

ここで false がセットされてるので大丈夫かと思ったんですがまあ全部実行されましたね……。

-R

[vagrant@localhost ~]$ sudo ./centos2rocky.sh -R

全てのパッケージをインストールし直すとのことなのですが、現在の実装では -r -R ともに reinstall_all_rpms=true をセットしている同じ動作なので、どっちを選んでも変わりなさそうです。

github.com

正式リリース前

なので、マー多少のことには目をつぶってもろて、という感じになりそうです。

-V の動作だけどういう想定なのか聞こうと思ったけど github のアカウント情報忘れてしまったね、どうすっかな。

passenger がクラッシュした

めっちゃ古いミドルウェア構成の環境で、 passenger がまれにクラッシュする、という問題があって調査していた。

github.com

こういう事があるらしい。 解決策としてアップデートしろ、ということっぽいが、ミドルウェアのバージョンやらなんやら古くないと動かない (他システムと連携かつ同居している) ため、だましだまし動かしていくしかないとなりげんなりしている。 ちなみに一度アップデートのお見積りを請求されて、正直ベースで出したところ「ふざけてんのか!」となぜかめちゃくちゃに電話で怒鳴られたことがあり辛い。

github のダークモード

theme

今日から? Sync with system がデフォルトになったのか、突然ダークモードになってて驚いた。 github は個人的にハイライト表示のほうがなれているので、 default light に戻すなど。

ログインして右上の自分のアイコン -> Settings -> Appearance から設定できる。

f:id:donbulinux:20210416122011p:plain
single theme に戻した図

新年度

去年は徐々にコード書くことが増えてきて、今年は割合的に半分かちょっと多いくらい、という感じになりそうなので、いまのうちに振り返り用の草を貼り付けておく。

private なリポジトリへの操作がほとんどだから、個人用のユーザと分離してて最近の「Github で年収診断!」とは無縁だな、と感じている (数ヶ月前のコード流出などを見つつ) 。

f:id:donbulinux:20210416122206p:plain
2020年度の草

haml で link_to 記述時に onclick に asset_path を利用する方法

なろう系のタイトルみてーになっとる。

  • ロケ地

何がしたかったか

PDF を printJS で印刷させるリンク設定したかった。 ただし対象の PDF は asset:precompileMD5 digest が付与されている。

静的なファイルを指定する場合

#{RAILS_ROOT}/public/pdf/example.pdf のように、静的なファイルに対する場合はこうすれば動く。

= link_to '#', class: "pdf_insatsu", onclick: "printJS('/pdf/example.pdf')" do
  いんさつりんく

asset へのパスを設定する場合

#{RAILS_ROOT}/app/assets/asset_pdf/example.pdf に対しては、以下のように設定する。

= link_to '#', class: "pdf_insatsu", onclick: "printJS('#{asset_path 'asset_pdf/example.pdf'}')" do
  あせっとのいんさつりんく

haml の書き方 is わからない

中の人の勉強不足なんだけど、さっぱりわからなくて困ってる。ので、もう開き直って一度 erb で書いてから erb to haml 系のアレソレで変換するようにした。

した直後に以下を見つけて「やっぱ erb ならそうよな」となった。

ja.stackoverflow.com

そもそも

PDF を precompile の範囲内に入れるんじゃない、という話は「それはそう!」となる。

CircleCI の MySQL コンテナが落ちた

ロケ地

CI がコケる

ドキュメント更新してシェルスクリプト追加しただけで落ちたので「絶対にワイのせいじゃない!」という顔で details を見てた。

2021-03-19 02:30:57+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.33-1debian10 started.
2021-03-19 02:30:57+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2021-03-19 02:30:57+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.33-1debian10 started.
2021-03-19 02:30:57+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_PASSWORD cannot be used for the root user
    Use one of the following to control the root user password:
    - MYSQL_ROOT_PASSWORD
    - MYSQL_ALLOW_EMPTY_PASSWORD
    - MYSQL_RANDOM_ROOT_PASSWORD

Exited with code 1

CircleCI received exit code 1

はぁーん!

なおす

こういうことらしい。

johnmanjiro13.hatenablog.com

qiita.com

MySQL 5.7.32 を使うことにする

ちょうど作業しているプロジェクトがこの週末土日で佳境なので対応してる暇はねえ! という気持ちで決断的にコンテナを変更する。 5.7.33 以前にすればヨイ。

- image: circleci/mysql:5.7 としていたので、 - image: circleci/mysql:5.7.32 とガッチリ指定してやる。

.circleci/config.yml

これを

version: 2
jobs:
  build:
    docker:
      - image: circleci/ruby:2.5.1-node
        environment:
          RAILS_ENV: test
      - image: circleci/mysql:5.7

#snip#

こうする。

version: 2
jobs:
  build:
    docker:
      - image: circleci/ruby:2.5.1-node
        environment:
          RAILS_ENV: test
      - image: circleci/mysql:5.7.32

#snip#

なおった

f:id:donbulinux:20210319133000p:plain
脳死で Rerun した履歴

ジャンクから WindowsServer を建立したらグローバル疎通が出来なかった

VScode の統合ターミナルが「シェル環境の解決に長い時間がかかっています」など言い出してまともに利用できなくなり幾星霜、久しぶりに見たら Wiki に追加されていた。

続きを読む