Linux MintユーザはUbuntuのPPA追加手順を流用するときlsb_releaseが無いことを確認しよう

1 min read

Mintを使っているとUbuntuのPPAを追加してアプリインストールすることがあると思います
ただその手順がUbuntu前提で書かれている時稀に

lsb_release -cs

このコマンドを使って/etc/apt/sources.list.d/配下に~.listを作る手順が載ってる時があるのですが

これで追加するとエラーになることが良くあります。

具体的には

sudo sh -c 'echo "deb https://aaa/bbbb/ccc/$(lsb_release -cs) xxxxx main" > /etc/apt/sources.list.d/xxxx.list'

こんな感じの手順ですね

なぜ失敗するかというと
lsb_release -csで取得される値はOSのコードネームが返ってくるからです
Ubuntuのコードネーム前提で手順が書かれているのでそこにMintのコードネームが入ってきて予期せぬURLが生成された結果apt updateでエラーが出てアプリが追加できなくなります。

じゃあどうするのって話なんですがMintはUbuntuベースに開発されてるので元になったUbuntuのコードネームを直に埋め込むことで対応出来ます

でそれはどこみたらわかるの?って話ですが
ここです

/etc/os-release
$ cat /etc/os-release
NAME="Linux Mint"
VERSION="20.1 (Ulyssa)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 20.1"
VERSION_ID="20.1"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=ulyssa
UBUNTU_CODENAME=focal

まんまの名前が出てますね

UBUNTU_CODENAME=focal

これです

なので先程の例に出したコマンドの

$(lsb_release -cs)

の部分をfocalに書き換えれば動くようになります。

以上、ちょっとしたトリビアでした〜

P.S.

ここからただの愚痴なので読む必要はないです

直近でいうとpgadmin4お前のことやぞ!

インストール手順はこの際どうでもいいけど

3まではただの単体実行出来るアプリやったのに4で急に色気出して
ローカルで実行されるapacheの上で動き出すWEBアプリ化
とか謎の挙動しだすのおかしいやろ?

それ最早別アプリやんけ

てかデフォルトで入れれるpgadmin3のバグが辛すぎるSQL実行画面が動かないとか結構致命的なバグ早く直して4もう使いたくないから