zowのプログラムな日々

日々のプログラミングとか

開発環境を構築する2016年春版(LinuxMint 17.3)

LinuxMint 17.3をインストールしたので開発環境を構築していく。OSインストール後にアップデートかけた状態からスタート

開発環境を作る前にやること

日本語化

基本的にOSインストール終わった時点である程度日本語化されているが、若干足りないので諸々入れておく。やり方は以下参照

linuxmint-jp.net

終わったら再起動。 再起動したらfcitxとmozc等の日本語入力環境がインストールされているので、困ったら日本語でググる

日本語フォルダを英語にする

Macみたいに日本語フォルダから英語フォルダにエイリアス張ってるならともかく、いくらGUI環境とはいえ日本語フォルダのままじゃコマンドラインから補完できなくて使いにくすぎるので英語フォルダに戻す。

$ LANG=C xdg-user-dirs-gtk-update

英語化する時に日本語フォルダ内にファイルが存在すると英語化されない。その場合は一度ファイルを別の場所に退避してから英語化しなければならないのだけど、他フォルダが既に英語化されていると、上記を再実行しても英語化してくれない。その場合は一度、英語化したフォルダを日本語に戻し、再度上記を実行する必要がある。英語化したフォルダを日本語化するには以下を実行する。

$ LANG=ja_JP.UTF-8 xdg-user-dirs-gtk-update

gcc等々

とりあえず開発環境を整える前準備としてgcc等を入れておく。

# apt-get install build-essential

sshサーバ

デスクトップ環境と言ってもLinuxなので、他のPCからログインして弄れると便利。なのでsshサーバを入れておく

# apt-get install openssh-server

インストールしたら鍵交換認証なんかを設定するんだけども、そこら辺はググればいくらでも出てくるので割愛。

アンチウイルスClamAV

Linuxなのにアンチウイルスは必要か?と聞かれれば、「サーバじゃないし変なサイトみなけりゃ大丈夫じゃね?」なんて無責任な事を言いたくなりますが、やっぱデスクトップ環境でも入れとくべきでしょう。感染して後悔するよりはマシですから。

ubuntuの標準リポジトリclamavは用意されてるので普通にインストール。詳しくは以下のLinux>Ubuntuを参照。

ClamAVNet

# apt-get install clamav clamav-daemon libclamunrar6 clamtk

clamavはリアルタイムでスキャンはしてくれないんだけども、手動でスキャンすることができるようになる。まぁ無いよりはマシってことで、こんぐらいで妥協。

VIM

なんだかんだでちょっとしたファイルの変更をするのに必要。デフォルトではvim.tinyと言うショボイ版vimが入ってるけどショボイので普通のVIMを入れてやる。

# apt-get install vim

Ricty

開発環境なんだから開発しやすくしなくちゃね、っと。やっぱ見やすいフォントは必須でしょうって事でRictyをインストールする。若干面倒臭いが、やるだけの価値があるフォントだと思う。ほんとに見やすい。インストール方法は以下を参照。

https://github.com/yascentur/Rictygithub.com

fontforge

普通にaptでインストール

# apt-get install fontforge

inconsolata

次に「inconsolata」というフォントをインストールする。このフォントはubuntuリポジトリにパッケージは存在する(fonts-inconsolata)が、このパッケージではotfが提供されていてttfは提供されていない。Rictyのバージョン4.0からotfじゃなくttfを使う様になったようなので、素直にttfを落としてきて使う。(参考:Ubuntu – Error

Google Fonts

  1. 上記サイトに行き、右上にある「Open Inconsolata in Google Fonts」のリンクをクリック。
  2. 遷移したページで「Bold 700」にチェックを入れてから、右上にある下矢印をクリックするとダウンロードのダイアログが表示される。
  3. ダウンロードダイアログの「.zip file」をクリックするとzipでダウンロードされる。
  4. ダウンロードしたzipファイルを展開して、フォントファイルをフォントビューアで開く(ttfファイルを右クリするとコンテキストメニューに出てくる)
  5. フォントビューアからインストール(「$HOME/.local/share/fonts」に入るっぽい)

Migu 1M

Migu 1Mはubuntuリポジトリに存在する。そちらをインストールする。(参考:Ubuntu – Error

# apt-get install fonts-migmix

Ricty関連ファイル

githubRictyページから関連ファイル一式をダウンロード。まだgitコマンドはインストールしてないので、githubページの「Download ZIP」のボタンから落とすのが手っ取り早い。

https://github.com/yascentur/Rictygithub.com

落としたzipファイルを展開し、中にある「ricty_generator.sh」を実行。

$ ./ricty_generator.sh $HOME/.local/share/fonts/Inconsolata-Regular.ttf $HOME/.local/share/fonts/Inconsolata-Bold.ttf /usr/share/fonts/truetype/migmix/migu-1m-regular.ttf /usr/share/fonts/truetype/migmix/migu-1m-bold.ttf 

数分待つとフォントが生成される。生成されたフォントを右クリックし、フォントビューアからインストール。(「~/.fonts」にコピーしないのはユーザフォントを一箇所で管理したい為。別に公式に書いてある通り「~/.fonts」にコピーする方法でも同じ)

フォントのインストールが終わったらキャッシュ更新しておく。

$ fc-cache -vf

ブラウザ関連

ブラウザ(Chrome

デフォルトでFirefoxが入っているけども、chromeも入れておく。firefoxで「chrome」ってググッてやればインストールページがあるのでそこからブラウザ経由でインストール。

ブラウザ(Chromium

正直Chromeあるならいらない気もするけど、とりあえず入れておく。昔はLinux版のChromeは32bit版だけしかなくて、64bit対応しているChromiumを常用してたりしてたんだけど、今はChromeが64bit対応してくれたので、ブラウザオタク以外は必要ないかも。私の場合、Googleにログインしている状態でやってもいいことはChromeでそれ以外はChromium使ったりする。シークレットモード使えって話なんだけどね・・・。まぁ入れといて困るものでもないので入れておく。

# apt-get install chromium-browser

ブラウザ(Opera

いや、使わないんだけどね。Web開発したりもするので、慣例というかなんというか、とりあえずインストールしとく。

Operaの場合、インストール方法は2種類ある。Chromeと同じくブラウザからダウンロードする方法とPPAからインストールする方法だ。今回はPPAでインストールする。

UbuntuUpdates - PPA: Opera

やり方は上記参照。リポジトリ追加してそこからインストールする感じ。

# wget -O - http://deb.opera.com/archive.key | sudo apt-key add -
# sudo sh -c 'echo "deb http://deb.opera.com/opera-stable/ stable non-free" >> /etc/apt/sources.list.d/opera.list' 
# apt-get update

ここまでやったらインストールなんだけども「opera」で入れるのと「opera-stable」で入れるのとでバージョンが違う。(パッケージのバージョンとか見たい人は「apt-cache show パッケージ名」とかやると見れる)どう見ても「opera-stable」の方が新しそうなので、今回は「opera-stable」をインストール。

# apt-get install opera-stable

ブラウザ(Vivaldi

おいおい、どんだけブラウザ入れるんだよ、という声が聞こえてきそうですが、どちらかというとこれが本命です。現在Chromeを使ってますが、重すぎるので乗り換え候補としてVivaldiを考えてます。まだBeta3でリリースされてない状態ですが、そろそろリリースも近そうなので慣れの為に今のうちから触っておく。PPAは無いので以下からブラウザ経由でインストール。

vivaldi.com

バージョン管理

Git

何はともあれgitをインストールしておく。

# apt-get install git

mercurial

bitbucketを使ってるので、mercurialもインストールしておく。

# apt-get install mercurial

データベース

MySQL

開発環境だしね。DB関連もひと通り入れておく。まずはMySQLから。標準で入れると5.5系がインストールされる。

# apt-get install mysql-server

PostgreSQL

Postgresも入れておく。標準は9.3系が入る。ついでにpgadmin3も入れておく。

# apt-get install postgresql postgresql-contrib libpq-dev pgadmin3

SQLite3

入っているとなにかと使えるのでsqlite3も入れておく。

# apt-get install sqlite3

言語

OracleJDK

Javaで開発する訳じゃないんだけども、いろいろと必要なのでインストールしておく。

最初に、インストールされているjdk(openjdk)をアンインストールしておく。

# apt-get purge opennjdk-*

PPAでOraclejdkをインストール。

# add-apt-repository ppa:webupd8team/java
# apt-get update
# apt-get install oracle-java8-installer
# apt-get install oracle-java8-set-default

インストールが終わったら再起動する。環境変数を吐き出させてJAVA_HOME等のjava関連の環境変数が設定されていることを確認する。

$ env

Node.js

js嫌いなので開発する気はないんだけど、やっぱ開発環境だしgulp使いたいしね。とりあえずNode.jsも入れておく。PPAから。

# add-apt-repository ppa:chris-lea/node.js 
# apt-get update
# apt-get install nodejs

PHP

最近はPythonRubyばっか触ってるので、ほぼ触ることの無くなったPHPだけども、やっぱ無きゃ無いで困る。おそらく開発はしないだろうけど動かせるようにしとく。

DB周りは既にインストールしたけども、まだApacheが無いのでついでに入れておく。

# apt-get install apache2 php5 php5-cli php5-mysql php5-pgsql php5-sqlite

Python

開発環境だしpyenvとか入れたいとこだけども、Macで開発してubuntuで動かすならともかく、ubuntuで動かす物をubuntuで開発するので必要かなー?って感じでもある。まぁ環境切り分けるのは必須ではあるんだけどさ。とりあえずpipだけ入れとく。

# apt-get install python-pip python3-pip

Ruby

これもPythonと同じくrbenv必要か?と思うんだよね。まぁとりあえずpythonと違って標準ではインストールされていないのでインストールしてしまう。今回、サーバ環境が2.3なので2.3をPPAからインストール。やり方は以下参照。

Ruby 2.3 Ubuntu packages - Brightbox

# apt-add-repository ppa:brightbox/ruby-ng
# apt-get update
# apt-get install ruby2.3 ruby2.3-dev

bundlerも入れておく。

# gem update --system
# gem install bundler

開発環境(Eclipse

やっとここまで辿り着いた・・・。ここから開発環境を整えていく。開発を想定している言語はRubyPythonPHPと言ったところ。基本的にはエディタで開発しているんだけども、せっかくなのでIDEも入れたいと思う。

Eclipse本体

重くて大嫌いなIDEです。でもNetbeansがどんどんスクリプト言語を切り捨ててしまったので、現状、フリーでマルチプラットフォームIDEEclipseだけになってしまった。IntelliJスクリプト言語はドル箱らしく、コミュニティ版ではプラグインを出してくれないので乗り換える事に躊躇してしまう。野良プラグインとかあればいいのにな。

そんな訳で、MintにEclipseを入れようと思います。最新ということで4.5のMarsを入れます。

www.eclipse.org

  1. 上記サイトからダウンロード
  2. ダウンロードしたインストーラを起動してPHP版を$HOME/eclipseにインストール。
  3. Pleiadesの最新版をダウンロードし展開。
  4. Pleiadesの中にあるreadme通りに、ECLIPSE_HOMEへ「plugins」と「features」ディレクトリをコピー
  5. eclipse.iniを編集し、Pleiadesを読み込むようにする(readme参照)。
  6. eclipse.iniの中にある「MaxPermSize」を「MaxMetaspaceSize」に変更(※java8の場合のみ。2箇所)
  7. -cleanオプションを付けてeclipse起動

Eclipseの見た目改善

普段、AtomとかSublimeTextとか使ってるし、やっぱ白いのは馴染めない。黒っぽくする。やり方は以下参照。

http://qiita.com/shaunkawano/items/e0a7672dc82db9a4c9c3qiita.com

次にフォントを変える。Rictyを使用する。

  1. 「ウィンドウ>設定」から「一般>外観>色とフォント」を選択
  2. 「基本」の中にある、フォント設定箇所をRictyに変更する。
  3. 右下の「適用」をクリック

これからいろんなプラグイン等で設定項目は増えていくけども、フォントのデフォルト値は上記項目なので、ここを設定しておけば大丈夫(多分)

RDT(Ruby開発環境)

いつもどおりのやり方。

  1. 「ヘルプ>Install New Software」を選択
  2. 作業対象から「全ての使用可能なサイト」を選択して数分待つ
  3. ずらーっと出てきたら、検索窓に「ruby」を入力してEnter
  4. 動的言語ツールキット - Ruby 開発ツール」が出てくるので選択し「次へ」をクリック。そのままインストールして再起動になる。
  5. Eclipseが再起動したら「ウィンドウ>設定」を開く。
  6. Ruby>インタープリター」を選択。「検索」をクリックする。インタプリタを自動検出してくれる。
  7. 今回はシステムにインストールしている物だけなので「/usr/bin/ruby」だけ表示されてるはず。rbenvを使ってる場合はここで「$HOME/.rbenv/shims/ruby」とか追加すればいいと思う。

今回は旧来のやり方で上記の方法で入れたんだけども、上記をやった後で「Eclipseマーケットプレイス」でrubyを検索したら、「Ruby(DLTK) 5.0 Kepler」がインストール済みになってたので、同じものが入るっぽい。もしかしたらEclipseマーケットプレイスで入れたほうが楽かもしれない。上記の方法は検索するのに時間かかるしね。

PyDev(Python開発環境)

Eclipseマーケットプレイスから入れてみる。

  1. 「ヘルプ>Eclipseマーケットプレイス」を選択
  2. 検索窓に「python」と入力してEnter
  3. 「PyDev - Python IDE for Eclipse 4.5.4」が出てくるのでインストールして再起動
  4. 「ウィンドウ>設定」を開く
  5. 「PyDev>インタープリター>Python interpreter」を選択。
  6. 「Advanced Auto-Config」をクリックすると、システムからPythonを検出してくる。とりあえず「/usr/bin/python2」を選択して「OK」をクリック
  7. ライブラリを検出してくる。「すべて選択」をクリックして「OK」クリック
  8. python」という名前で追加された。Wクリックして名前を「python2」に変更する
  9. 上記6〜8を「/usr/bin/python3」で行う。名前は「python3」に変更する
  10. 上記6〜8を「/usr/bin/python」で行う。名前は「python」のままにする
  11. 3種類のpythonインタプリタが登録出来たと思う。基本的にpythonとpython2は同じだが、システム側に準拠してこういう形にしてみた。
  12. 3種類のpythonのうち、自分で開発するものに合わせて開発頻度が高いのを上に持っていく。私の場合はPython3がメインなので「python3>python>python2」の順番に並び替えた。
  13. 「適用」をクリック

こんな感じかな?Python開発でEclipse使った事ってPython2の頃だったし、インタプリタのところとかこんな複数やったことないから半分憶測でやってる。新規プロジェクトを作るときにインタプリタ選択ができるはずで、そこの表示順が変わったりする程度なので順番とかは適当でいいかも。ただ、python2とpython3は明示的に判りやすくしといた方がいいと思う。

Emmet(HTML開発環境)

HTMLなんかはIDEで開発するメリットがほとんど無いので実際にEclipseでHTML開発することはないだろうけど、それでもHTMLファイル編集するときに便利な方が嬉しい。なのでEmmetも入れておく。Eclipseマーケットプレイスから入れる。

  1. 「ヘルプ>Eclipseマーケットプレイス」を選択
  2. 検索窓に「emmet」と入力してEnter
  3. 「Emmet (ex-Zen Coding) Eclipse plugin 1.0.0」が出てくるのでインストールして再起動

開発環境(Atom)

こっちがメイン環境。SublimeTextだと日本語入力に難があったりするので、LinuxでエディタだとAtomが無難。

Atom本体

PPAからインストールできる。

# add-apt-repository ppa:webupd8team/atom
# apt-get update
# apt-get install atom

Atom見た目改善

まず最初にフォントをRictyに変える。

  1. 「Edit>Preferences」を選択。Settingsが開く
  2. 「Editor Settings」までスクロールして、「Font Family」のテキストボックスに「"Ricty"」もしくは「"Ricty Discord"」を入力。合ってれば即時反映する。

次にメニューの日本語化

  1. 「Edit>Preferences」を選択。Settingsが開く。左側メニューより「Install」を選択
  2. 検索窓に「japanese-menu」を入力。japanese-menuをインストールする。インストールが終わると即時反映されて日本語メニューになる。

見た目の好みは人それぞれだけど、私はオーソドックスにOneDark+monokaiを使う

  1. 「Edit>Preferences」を選択。Settingsが開く。左側メニューより「Install」を選択
  2. 検索窓右のThemeボタンをクリックして検索窓に「monokai」を入力。monokaiをインストールする。
  3. 左側メニューの「Themes」を選択。コミュニティテーマにmonokaiが表示されてるのを確認後、「Syntax Theme」でmonokaiを選択

各開発環境で共通なもの

入れとくとちょっと幸せになれるものとか。入れ方は一緒。あんま入れると重いので程々にしないと・・・。

  • minimap
  • linter
  • project-manager
  • file-icons
  • color-picker
  • pigments
  • minimap-pigments
  • minimap-find-and-replace
  • minimap-linter

PHP開発環境

基本的なのは最初から入ってるので言語特有ってのはあんまないかも。

  • autocomplete-php
  • linter-php
  • linter-twig

Ruby開発環境

PHPと一緒。

Python開発環境

PHPと一緒だが、linterはうまく動かない(pipでインストールするときにエラー出る)

  • autocomplete-python
  • linter-pylint

HTML開発環境

HTMLはちょくちょく弄るだろうし必須だが、autocompleteは標準で入ってるので特別入れる必要は無いかも。emmet記法使いたい人は入れればいい。

  • emmet

開発環境としてはこんなところだろうか。あとは細かいカスタマイズとかはあるんだけども、そこは個人的な好みだったりもするし、ブログで書くことでもないかな。

メインの開発環境はあくまでもAtomで、Eclipseは今回おまけで入れたんだけども、昔使ってた頃よりも気持ち軽い気がする。大規模開発とかだったらEclipse使うのもいいかもしれない。