SSブログ

プログラム言語の環境を入れる仕組みについて [プログラミング]

Linuxとかのプログラム言語は大体は外から取り入れて使うようにするわけだが、そのディストリビューションの標準のリポジトリのサポートする言語のバージョンって古いよね、という話。

 
前にGolangを入れようとしたんだけど、Ubuntuのリポジトリだと1.15くらいの古さのバージョンしか入れられなかったようだった(今書いているマシンがMacなので確認できないけど)。
https://go.dev/doc/devel/release
によると2020年のリリースだからそこそこ古い。使えないことはないけど、最新のソースをコンパイルできない可能性もある。最新にする必要はないけど、Golangは新しくて問題が出ることも少ないと思うので、最新バージョンをそのまま使うのでいいと思います。

最新バージョンでいいというのは、GolangがRustとかほど破壊的な改変がないということと、コンパイル言語なのでインタプリタのLL言語ほど実行環境を気にしなくていいというのはあると思う。Rubyを志したことはあったけれども、やはり動作速度を考えるとコンパイルしたいなという気になってしまう。Webアプリが開発の大半を占めている業界としては、LLは手直しも楽だしお手軽なのだろうけどね。

とはいえ、RustとかGolangとかメジャーなコンパイル言語が出てきて良かったなと思うわけで。それまである程度実行速度が出てきてしまったから、LLが勃興していたけれどもコンパイル言語は嫌いになれないんだよなぁ。


公式のLinuxのインストール方法はアーカイブをそのまま解凍して展開するという方法があるのだけれど、それではWSLのUbuntuでは使えなかったので、コンパイルするかどこかでリポジトリを作っているところを使う他なかった。誰かが作ったUbuntuの私家リポジトリがあったのでそれを使った。

https://launchpad.net/%7Elongsleep/+archive/ubuntu/golang-backports

日本語でGolangのaptでのインストール方法が同じ方法で何個も出てくるけど、結局は上のサイトのコピペでしかないと思う。というか、技術文章って単なる英語でないだけのクローンページみたいなのが多いよね。ググると上に出てくるので迷いもなく使ってしまうわけだけど、一次情報のリンクも貼らないページは悪質だと思う。はっきし言って一次情報を出している人に対して礼を失しているよな。

ともあれ、Golangだけにかかわらず大体のディストロの標準リポジトリは、入れられるプログラム言語のバージョンが低い傾向にある。なので大体はバージョンを選択できるインストーラがある。そうでないと開発の時にバージョンを指定することが多いので困ってしまう。標準リポジトリだと勝手にバージョンが上げられてしまう可能性もあるしね。

ただ、そういうバージョン管理のアプリは複数あったりすることもあって、どっちを使うんだよみたいな状態になっていることもある。なんか大体は先行して作られたものがどうしようもなくて、比較的シンプルなものが作られるというのが一般的なんだろうけど、そういうのは正直やめてほしいんだよな。とはいえ、腐ったソフトを使わせられるというのは、ただその言語を使いたいだけなのにしんどいとしか思えない。


結局、古いバージョンしかサポートしないディストロの標準リポジトリで入る言語ってなんなんだろうなと思う。PythonみたいにOSの仕組みに使われている場合は、セキュリティのためにそこそこ新しくはなるんだろうけど、それ以外は結構放置状態な気がする。それを知らずに言語を使おうとすると、新しいソースが動かないよってことが結構ある。初心者は標準リポジトリで入れがちなので気をつけるべきかもしれない。


コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0