序
TwitterのTLで、「プログラミングをするにあたりLinuxで開発環境を作るということは何度もしたことがあるが、毎回OSごと壊れてしまったので勧めない」というものを見た。
動画本編では非常に抑制的に述べているが、私は大変に憤慨している。
そもそもLinuxの場合、Windowsのように権限が曖昧になっていたりはしないので、システムを破壊しようと思うと、まずroot権限が必要である。 なおかつ、相当に明示的に破壊的な行為をしなければならない。 前述のような発言は、経験のある者から出るようなものではない。
なお、動画では達成までの手順を短く解説しているので、詳細な解説はこちらで行う。
構築の概要
「開発環境」が何を指しているかにもよるが、基本的には
- エディタ
- 処理系
があれば事足りる。 Linuxの場合、どちらも既にある可能性が高く、特別何かをする必要はない。
動画では任意のエディタと処理系を導入する手順を紹介した。 (具体的にはVSCodeとRuby)
さらには、
- バージョン管理システム
- シェル
もあると良いケースが多いだろう。 もっとも、Gitに関しては最近はディストリビューションの基本的なシステムに組み込まれていることが多く、デフォルトインストールである可能性が高い。
単純に言えば、Arch Linuxでは私は
sudo pacman -S code gvim vim-plugins zsh grml-zsh-config mercurial ruby ruby-docsとすることで全てが揃う。 そして、足りないものがあるとしても、基本的には必要なパッケージを導入するだけである。
エディタの導入
vimパッケージはターミナル用のVimのみ、gvimはGUI版を含む。
X Window Systemが存在する環境であれば、GUI版を使わないとしてもgvimを入れるほうが良い。
なぜならば、"+や"*といったバッファ連携が使えるのはgvimだけだからだ。
これはビルドオプションによるため、他のディストリビューションでは違う場合もある。
EmacsユーザーはEmacsを導入することになるだろうが、なかなか色々あったりする。
Manjaro公式にはemacs, mg, zileの3種類。お好きなものを入れれば良い。
VSCodeについては、OSS版のcodeパッケージは公式、プロプライエタリ版のvisual-studio-code-binはAURである。いずれもパッケージを導入するだけだ。
Atomもatomパッケージが公式にある。そのほか、NetBeans(netbeans), Intellij(intellij-idea-community-edition)も公式に存在する。
AURにしかないのはSublime Text(sublime-text-nightlyなど), Eclipse(eclipse-cpp/eclipse-java/eclipse-php/eclipse-jee)などである。
そのほか、GEdit, Xed, Kwrite/Kate/KDevelopなども開発環境として有力だ。
処理系
主だったもののパッケージを列挙しよう。
| 言語 | 処理系パッケージ例 | 備考 |
|---|---|---|
| Ruby | ruby, jruby |
|
| mruby | mruby |
|
| Perl | perl |
|
| Raku | rakudo(AUR) |
ビルドできないことが少なくない |
| Python | python |
2.xはpython2 |
| PHP | php |
|
| Node.js | nodejs |
|
| Clisp | clisp, ecl, sbcl, cmucl |
選択肢豊富 |
| C | gcc, llvm&clang |
ライブラリなどはまた別 |
| C++ | gcc |
ライブラリなどはまた別 |
| Go | go |
|
| C# | mono, dotnet-sdk |
dotnet-sdkは.NET Core用 |
| Java | jdk-openjdk |
バージョンごとのパッケージがある, AURにOracle版もある |
| Haskell | ghc |
|
| Erlang | erlang |
|
| Nim | nim |
|
| Rust | rust |
ライブラリなども結構豊富にあるし、それぞれの言語の流儀で入れてもいい。
シェル
Manjaro LinuxはデフォルトシェルがZshである。以上。
(だって、Zsh以上のシェルなんて存在しないのだから、説明なんていらないだろう?)
一応zsh, bash, ksh, mksh, dash, fish, techなんかもあるし、プラグインも色々パッケージがある。
Zshの場合、とりあえずgrml-zsh-configを入れておけばだいたいOKなはずだ。
より踏み込んだ話はここらへんでやっている
バージョン管理システム
Gitは大抵デフォルトで入っている。
| ソフトウェア | コアパッケージ |
|---|---|
| Mercurial | mercurial |
| SCCS | sccs(AUR) |
| CSSC | cssc(AUR) |
| RCS | rcs |
| CVS | cvs |
| Subversion | subversion |
| Git | git |
| Darcs | darcs |
| Bazzar | bzr-bzr(AUR) |
| BitKeeper | bitkeeper(AUR) |
| GNU Arch | ない |
インストールしたあとは?
必要なソフトウェアを導入したあとどうすればいいのか分からない、というのは環境構築以前に、そもそも「構築してどうするの?」というのが分かっていない話なので、ここで扱うようなことではないと思う。
環境を語る以前のところをちゃんとやる必要があるだろう。