今日学んだこと

読書感想文とか、勉強した内容とか

開発環境としてのデスクトップLinuxのススメ

前回の更新からかなり時間があいてしまいました。

ネットに規制がかかるかの国へ出張してたのと、本題であるLinuxデスクトップ環境を構築してたりしてで。

デスクトップLinux?

ここではサーバー用途との対比語として利用しています。実際はノートPCにインストールしてたりします。

なんでオススメ?結論はよ

構成によってはという前置き付きですが、軽いです。めちゃくちゃ軽いです。

今このブログを書いているのもlenovoのx100eという約5年前のネットブックだったりするんですが、メインマシンとしているMac mini Late2012 梅モデルより断然軽いです。

特にはてなブログの管理画面って、しょっちゅう固まるんですよ・・・。加えて、我が家の子は日本語入力さえしょっちゅう引っかかる。それがない。まさかネットブックが僕をストレスから開放してくれるとは思ってませんでした。

f:id:nakazye:20150311223050j:plain

参考までに、x100eのスペックのご紹介

CPU:Athlon Neo MV-40(1.6GHz)

メモリ:2G

CPUはまさかのシングルコアです。これで快適に動いてる!すごい!

どんな構成にしてるの?

Arch Linux+MATEという構成にしています。

そもそも、なんでネットブック引っ張り出してLinuxを入れようと思ったかというと、勢いで参加表明した勉強会(momonga.vim)への参加のためだったりします。

コーディングはずっと英字配列キーボードでやってきており、基本的にはデスクトップ使ってました。今持ってるノートPCは今回引っ張り出してきたx100eを除き日本語配列キーボード。勉強会定番と思われるmac bookもあるけど、日本語配列でコーディングできる自身がありませんでした(会社のノートPCも英字配列だったりするので)。

よって、今回のミッションは

  • 諸々の言語が普通に動かせたりコンパイルできる
  • 快適に開発できる→エディタがまともに動く
  • ブラウザが普通に動く→最近はWebアプリ作ることが多いので

として環境構築をはじめました。

快適にという点でこのPCでWindowsは論外なので、選択肢はLinuxBSDって手もあるけど)。いろいろ試してみると

といった感じで色々難あり。

そこで勢い&思いつきで試した最近なにかと話題のArchLinuxを入れたところ、僕のx100eが途端に輝き始めた次第です

ArchLinuxって?

最初に断って起きますが、僕は根っからのWindowsっ子です。エ○ゲが動かないPCなんてPCではないとずっと主張し続けてきました。何が言いたいかというと、アーキテクチャ面での説明ができるほど詳しくありません。すべて「僕はこう解釈している」「僕はこう感じている」という説明となります。

デフォルト構成は最小限だよ!

軽いポイントその1だと思っているんですが、インストール時の構成が最小限です。

どんだけ最小限かとwikipediaから引用すると

Arch Linuxのインストール作業はコマンドライン環境で行われる。パーティションの作成、ファイルシステムの作成・マウントなどを行い、pacstrapという小さなシェルスクリプトを実行して基本システムをインストールする。

インストール直後の状態では、必要最小限のGNU/Linux環境 — すなわちLinuxカーネルGNUツールチェーン、少数の追加モジュールとライブラリ、およびbashシェルのみが存在する。その後のシステムの設定やデスクトップ環境などのソフトウェアの追加は手動で行う必要がある。

Arch Linux - Wikipedia

インストール作業が、いわゆるウィザード形式ではなく、すべてコマンドで、しかもブートローダーの設定から自分でやる感じだったりします。ハードル高い。

ただ、それと引き換えに、使わないよくわからないプログラムが裏で動き続けてるという状況を排除できるので、ネットブックでも快適な作業が可能です。

OSとしてのバージョン?そんなもの無いよ

こちらもWikipediaより引用ですが

明確なバージョン名やリリース日を持たない「ローリング・リリース」システムを採用している。リポジトリ上のパッケージは個別に日々更新されており、定期的なアップデートを行っていれば、システムを常に最新の状態に保つことができる

 要は定期サービスパック的なモノは無く、(多分リポジトリ上でのテストが通れば)すぐにアップデートされるという方針。ちょっとコレインパクト大きそうだから様子見てから取り込みましょ とかいうのが無い。

罠にハマる可能性もあるけど、常に諸々の最新版が利用可能と考えれば良いわけです。

いつクラッシュしても良い様に、コレを気にLinux環境を整え、各種設定ファイル郡をGithubに置いておけば良いのかなと思ってます。

開発機なんですから、なくなったら困るものはVCSに置いておけば良いわけだし、逆にそういう構成を作ろうと思ういいきっかけになっています。

Arch Linuxって聞いたことあるけど、MATEってなんぞ?

MATE (デスクトップ環境) - Wikipedia

ArchLinuxは先ほど説明した通り、インストール時は最小構成です。

デスクトップ環境なんてものはありません。すべてCUIの世界です。

なので、デスクトップ環境を自分の好きな様に作れます。

で、その好きなように作れる選択肢の中で、軽さに定評のあるのがこのMATEなんですね。

ネットブックが快適に!快適に!とさっきから言っていますが、その快適さの大半を担っているのがこのMATEだと思っています。

ubuntuだって、CUIで使っている時は重いなんて思わないんですよ。それが、Unityと呼ばれるデスクトップ環境が入ってくると、ネットブックには耐えれない重さになってしまいます・・・。インストールするだけですぐ使えるのはメリットなんですが、少なくとも僕は(このPCでは)使用に耐えませんでした。

で、MATEです。

画面の構成はシンプル。同梱されてるテーマはおしゃれ(中二病なので黒が好き)。IMEもちゃんと動いてくれるし、Wifiの設定もGUIからできる。バッテリ少なくなると通知されるし、画面上からボリュームコントロールも効く!(てか、特別なことしなくても無線LANとサウンド関連が有効化されるのはマジ驚きました。これはMATEというよりArchの力かもですが)

 

terminal開いてみたところ

f:id:nakazye:20150311231548p:plain

 

今この記事を書いているfirefox

f:id:nakazye:20150311232429p:plain

 

MATEのデスクトップテーマ

f:id:nakazye:20150311232002p:plain

 

シンプルですが、その分ホント快適で、「なんで俺は今までMacでブログ書いてたんだろう。開発環境だけじゃなくて、ブログ書く環境としても断然こっちの方が快適じゃねぇか!」と、さっきから心地よい興奮のなかこの記事を書いています。

ブラウザが快適なのは、Flash入れてないからというのもあるかもしれませんが、それにしてもここまで入力が引っかからないのは驚愕です。

その他に快適に使う為になにかやった?

せっかくLinux入れてみたんだしー、と、色々と試してみました。

シェルをzsh

今まで便利さをよくわかっていなかったんですが、この記事見ながら設定したら、かなり快適になりました。

漢のzsh | コラム | マイナビニュース

個人的なお気に入りは、途中まで入力したあとでのhistory補完

vim <ここで↑>

とすれば、過去にvimで開いたファイルを元に補完してくれる。便利!(bashでもできるかもしれないけど)

その他諸々補完が便利になる機能があるので、使っていて便利だし楽しいです。

tmux

こちらは入れてみたはいいものの、まだ感動レベルの便利さは体感できてない代物。サーバーと連動させると便利みたいですけどね。

先ほど貼ったキャプチャの中で、コンソールが分割されているのがありますが、それがこのtmuxによって実現されています。

複数Terminalを一つの画面で!というのがポイントですが、複数開いて使うのでも別にいいかなぁというのが現状です。

もっとキーバインドが手に馴染んで、さっさかウィンドウ間を移動したりコピペできるようになれば、ありがたくなってきそうな予感がします。

Emacs/Vim

現在はVimを鋭意勉強中・環境構築中です。

が、コーディングするならEmacsの方が慣れてることもあって、まだ併用中です。

どちらも、この環境で設定ファイルを発展させたいなぁと思ってます。

なお、Linux環境でのTwitterクライアントとしてEmacsはものすごく優秀です。

f:id:nakazye:20150311231548p:plain

こんな感じでtmuxで分割した画面、もしくは別個に開いた端末画面で垂れ流しておくと便利便利!GUIEmacsで起動すれば、アイコンが表示できたりするのも面白いです。

 

まとめ

というわけで、エディタだったりブラウザだったりであれば、古いPCでも快適な環境を得ることができます。Visual Studio使いたいとか、Xcode使いたいといった場合は無理ですが、そうでなければサブ機として普通に活用できます。

というか、僕はこの子が当面メインになりそうな気がしてます。それくらい快適です。

 

もちろんゲームをしたり、DMMでムフフ動画を見るといった用途には全く持って使えないので(ゲームはNethackがありますが・・・)、メインマシンとして使うには無理がありますが、開発のサブ機としては普通に使えます。

そして何より楽しいです。パソコン触ること自体が楽しいと感じたのはホント久しぶりです。

最小限のところから、徐々に環境を整えていく。いかがでしょう?皆さんも試してみてみませんか?

追記

いろいろコメントいただきありがとうございます。

いきなりメインマシン代替としてLinux使い始めると挫折しやすいし、かといってVMで動かすと重かったりVM自体の設定に悩まされたり(ファイル共有どうやるんだ?とか、どうせだったらVagrant入れてみるか?とか)とするので、まずは古いマシンに用途を絞って入れてみると楽しいかも!というご提案でした。

 

id:toshi_suzuki

MATE環境を使うならLinux Mintの方が楽じゃないかしらん? それとも Arch Linux は究極的に軽いとか?

これ、最初に選択肢として考えたんですが、Ubuntuベースとのことで、触ったことあるUbuntuよりは別のベースのものがいいなーと思い、Archにしてみた次第です。で、使ってみて快適だったので紹介してみた感じです。

簡単さでいったら、Mintの方が絶対簡単で、かつ重さもそんな変わらないんじゃないかなと使ったことが無いながらに思ってます。

Ubuntu、僕の少ない経験の中でですがドライバ絡みでトラぶった事が無いので、そういう点でも初心者向けにはいいのかなーとか思ってます

もし利用されているのであれば、おススメ記事期待してます!

 

id:kuro_pp

 Arch Linux、MATE導入が面倒かったら、最初から入ってるManjaroとかどうかな

 Manjaro、よさそうですね。

別のArchベース紹介記事で

Archを使ったことがない方にオススメするかと言われると正直なところ微妙なところです。素晴らしいディストリビューションであることは間違いないのですが、Archのインストール手順を踏むことでLinuxに詳しくなれるのも事実なので、これを行うことで何かがおかしくなった時でも、なぜその現象が起きたのか、どうやったら直せるのか、ということまでわかるようになるかもしれません。

Arch Linuxの機能性を面倒なインストールなしで使えるLinuxディストリビューション『ArchBang』 | ライフハッカー[日本版]

とあって、これはこれでなるほどなーと思ってたりします。

軽快で手軽を求めるならMintがよさそうで、せっかくArch使うなら生っていうのもいいんじゃないかなーと思ってたりします。

 

id:OkadaHiroshi

 開発環境をLinuxにするのは賛成(僕もそうしている)だけど、ロースペックのマシンにするのは反対。高スペックにするとコンパイルも早いし、Vimに重めのプラグインを入れても大丈夫、仮想マシンもサクサク動かせるよ。

 こちらはまったくもってその通りでございます。

メイン開発機にすると、VM使いたかったり、IDE使いたかったりとLinuxだろうがある程度のパワーは必要かと思ってます。

「軽い環境のLinuxなら開発すべて賄える!」と間違った理解をしてしまうことを防ぐ点で、このコメントはありがたかったです。ありがとうございます。

 

id:t_massann

xubuntuとかlubuntuとかPuppy Linuxでもいいと思う。あと動画とかゲームも全くできないということはないよ 

 そですね。僕が導入した非力マシンでは難しいですが、ちゃんとしたマシンに入れれば色々できちゃいますね。

SteamってArchで動くんですかね?紙芝居系ゲームだったら僕の非力マシンでも動かないかなと思ってたりします。


Sakura Spirit on Steam

 

追記の追記

この記事に言及頂いた上での色々なディストロの紹介記事がありましたのでご紹介


5年以上前のPCでもLinuxで復活できますよ! - t_massannのブログ

色々試してみるの楽しい!