コンテンツにスキップ

ラジオの話題20:コマンドはあるのに、ライブラリが見つからない

← ラジオの話題一覧 · 元の教材・詳しい解説

今日の話題:①どのRubyで動いている? → ②コードが作るパスと、実際の配置 → ③直った回避策を、どう片付ける?。

気になったところから自由に。順番や時間は決めず、話しやすい話題だけ拾って構いません。

話を広げるメモ

  • shellが見つけたコマンドの実体。
  • ライブラリのインストール先は同じ環境?

小ネタ:PATHとGEM_PATH

PATHはshellのコマンド探索、GEM_PATHはRubyGemsのgem探索。GEM_HOMEは主なインストール先。実行ファイルの存在と、その実行環境が依存を読めることは別。

話の芯:誰が、何を、どこから探すか。

2. コードが作るパスと、実際の配置

Section titled “2. コードが作るパスと、実際の配置”

話を広げるメモ

  • 構成値を見て、パス計算を辿る。
  • ディストリビューション固有の処理はどこ?

小ネタ:RbConfig

Rubyのビルド時の構成を参照できる。入力の構成値、パスの計算、実ファイルの位置を照合する。特定RPMの計算処理をRuby全体の一般仕様としない。

話の芯:設定値から、実際の探索先まで追う。

3. 直った回避策を、どう片付ける?

Section titled “3. 直った回避策を、どう片付ける?”

話を広げるメモ

  • 手動で入れたコマンドがPATHで優先されたまま。
  • 修正版RPMを入れただけで元に戻る?

小ネタ:複数の管理経路

gem installや手動配置の残存物は、RPM更新だけで消えるとは限らない。回避策の適用範囲と撤去条件を残し、実行ファイル・探索先を再確認する。

話の芯:回避策は、戻し方まで含めて作る。

「この話を、次に調査や設計をするときどう思い出したいか?」

既存の調査ケースにある技術補足から構成しました。当時の本人の発言・成果を再現した台本ではありません。思い出せる経験だけを本人の経験として話し、分からない経緯は補わずに使ってください。

定義の詳細・前提・一次資料・対象版・確認日は元の教材を参照してください。今回の作成では新しい実験・学習評価は行っていません。