技術の犬小屋

Webプログラミングを餌に生きる犬のメモ帳

Posts in the OS category

CygwinにJavaをインストールしようと思い、Cygwinのsetup.exeやapt-cygからパッケージを探したのだが、見つからなかった。
 
調べてみるとCygwin用のJavaは提供されていないらしく、既存のCygwinユーザの方々は渋々Windows用のJavaを使っているようだ。しかし、Windows用のJavaをCygwinで使おうとすると、パスの書き方をWindowsのパスの書き方にしないといけなかったりで、なかなか煩わしい(Windowsのディレクトリ構造を表す円マークはCygwinではエスケープ文字という扱いがされていたりして)。
 
そこで、CygwinでJavaを快適に使うための方法が紹介されている記事を見つけたので、それを参考にしてjava_wrapperを導入してみたのでメモしておく。
 

java_wrapperを導入する

まずは、こちらのサイトからjava_wrapperをダウンロードする。
Cygwin上でJavaコマンドを快適に使用する環境 プロジェクト日本語トップページ – SourceForge.JP
 
ダウンロードしたjava_wrapperをCygwinの/binに配置する。
 
続いて、環境変数JAVA_HOMEにWindows版のJavaがインストールされている(binディレクトリが存在するディレクトリ)を設定する。[システムのプロパティ]-[詳細設定]-[環境変数]-[システム環境変数]-[新規]から変数名をJAVA_HOME、変数値をC:\Program Files\pleiades\java\8として設定する(変数値はそれぞれの環境で異なるので要確認)。
 
Cygwinの/binディレクトリに移動し、以下のコマンドを実行する。

./java_wrapper createsymlinks

 
このコマンドは、単にWindows版Javaのbinディレクトリにある.exeと名前の付いたプログラム名をコピーし、”javaw”などの実行用のシンボリックリンクを自動生成するものである。
 
尚、このコマンドを実行した際に”○○○のシンボリックリンクの作成に失敗しました”のようなエラーが表示されるが、気にしなくて良い(私がこの記事を書いている2015年3月10日時点でのjava_wrapperの最終更新日は2011年09月19日となっているので、2011年当時のWindows版Javaのbinディレクトリと最新版のJavaのbinディレクトリでは構成に差異がある可能性が高いため)。
 
Cygwinのmintty上で以下のようなコマンドを実行して、正常に設定できているかを確認する。

java -version

 
実際のレスポンス

java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

 
 
以上
 
 
参考
CygwinでJavaを快適に使う

前の会社ではMacbook AirにiTerm2(ターミナル環境)、Alfred(アプリケーションランチャ)、Vim(エディタ)などをインストールして開発を行っていたが、転職に伴ってPCがIiyama製のWindowsノートパソコンに変わったので、前の開発環境になるべく近付けるように色々な設定を行った。
 

ターミナル環境

iTerm2の代わりにCygwinをインストールした。Cygwinは仮想的にターミナル環境を実現するツール郡である。Cygwinに付属のMinttyはiTerm2と比べてもほとんど遜色ないが、タブが使えないのが残念である(仕方がないので、tmuxのタブ機能で代替している)。
 

アプリケーションランチャー

Alfredに代わるランチャとしてExecutorをインストールした。Alfredと比べて、Executorは無料であるが、Alfredの備える様々な機能には残念ながら及ばない。しかし、普通にランチャとして使うなら十分に納得のいくものである。
 

メインエディタ

Macbookで開発していたときは、PHPとJavascriptをメインで書いていたこともあって、VimにneosnippetとneocomplcacheとSyntasticとJSLintを導入してやっていたが、転職に伴いメインで使う言語がJavaになってしまった。Javaと言えば、Eclipseが最強過ぎてVimではイマイチ追従出来ないのでEclipseにVrapper(Vimのキーバインディングを実現するプラグイン)を入れることで満足のいくものになった。Vrapperでは、vim-surroundが使えるし、補完はneocomplcacheの代わりにCtrl + Spaceを使えば良い。更にVimでおなじみのCtrlpの代わりにCtrl + Shift + rでファイルの語句検索も出来るし、Taglistが無いと生きられない人の為にCtrl + Alt + hによる階層ジャンプも用意されている。
Vrapperの導入については、こちらの記事にまとめた。
 

マークダウンエディタ

Macのマークダウンエディタと言えば、Macdownの使い勝手が群を抜いて良かったが、あの使い勝手に最も近いであろうマークダウンエディタをWindowsでも見つけることが出来た。アプリケーション名は、Haroopad。なんとMacdownに無かったVimキーバインドまで使える優れものなのだが、惜しいことに少しバグがあるようである。
 

おまけ:タッチパッドをMacbook Airのタッチパッドの触り心地に近付ける試み

メーカーにより設定方法が異なるが、私の環境での設定方法を載せておく。
[コントロールパネル]-[マウス]-[デバイス設定]-[設定]から設定を行う。

  • 1本指でのスクロールを無効にする
  • PalmCheck(タッチパッドの誤操作を防ぐ機能)を最大まで上げる
  • タッチ感度を最大まで軽くする
  • タップ機能を全て無効にする

 
 
以上
 
 
参考
特になし

仕事でMacVim-kaoriyaを使っている。間違って日本語入力の状態でノーマルモード中にh,j,k,lでカーソル移動を行おうとして、MacVim-kaoriyaが誤動作してしまい、辛かったので対処した。
 

対処方法

  • 書類ごとに入力ソースを自動的に切り替える
  • 最新のMacVim-kaoriyaを使用する

 
以下より、それぞれの方法について説明する。
 

書類ごとに入力ソースを自動的に切り替える

キーボード環境設定 を開き、 書類ごとに入力ソースを自動的に切り替える にチェックを付ける。
 
書類ごとに入力ソースを自動的に切り替える
 
このように設定することで、MacVimのノーマルモード時にブラウジングに入り、日本語入力に切り替えてしまったとしても、MacVimに戻ってきた時は英語入力に切り替わる。
 

最新のMacVim-kaoriyaを使用する

最新のMacVim-kaoriyaでは、インサートモードを抜けたときに自動的に英語入力に切り替わるようになっている。
 
 
以上
 
 
参考
独自の調査

Puppetを使い始めて半年経つので,そろそろ使い方をブログにまとめておく。
 

VagrantとPuppet

Vagrantについての説明を省きたいので,Vagrantの概要や使い方についてはこちらの記事をご閲覧いただきたい。
今回は,VagrantとPuppetを組み合わせて使用する。
 

Puppetとは

Puppetはオープンソースの構成管理ツールである。Rubyで書かれており2.7.0まではGPL,それ以降はAPLライセンスとなっている。
PuppetはUnix系やWindowsの設定を管理するようデザインされている。ユーザーはシステムリソース及び状態をPuppetによる表現もしくはRubyのDSLで表現する。この情報はmanifestと呼ばれるファイルに保存される。
 

仮想マシン上でPuppetを使ってみる

Vagrantで仮想マシンを構築する際には,予めRubyとPuppetがインストールされているBoxを使用する。その理由は,PuppetはPuppet自身を用意(構成管理)することが出来ない為だ。
 

ちなみに…

ちなみに,手動でPuppetをインストールするには以下のようなコマンドを使用する。

gem install puppet --no-rdoc --no-ri

 

manifestを準備する

manifestとは

manifestとは,サーバのあるべき状態を記述することができる設定ファイルである。
Puppetでは,サーバー設定を記述したファイルを「manifest(マニフェスト)」と呼び,設定すべき項目を「リソース」と呼ぶ。扱えるリソースの種類(リソースタイプ)にはユーザーの管理を行うための「user」やサービスの管理を行うための「service」,ソフトウェアパッケージの管理を行う「package」など様々なものが用意されており,これらリソースに対し設定すべき項目とその値をmanifestに記述していく。
 

manifestを書いてみる

以下のような内容のファイルを作成し,ファイル名をhello_world.ppとして保存する。

notice("Hello, World!")

 

manifestをどこに設置するか

先ほど作成したhello_world.ppを,Vagrantfileと同じディレクトリに設置する。
このようにすることで,仮想マシン内にマウントされた共有フォルダ上でhello_world.ppを扱うことが出来るようになる。
vagrant sshコマンドで仮想マシンにログインし,/vagrantディレクトリに移動すると,hello_world.ppが存在することが確認出来るはずだ。
 

manifestを適用する

manifestを適用するには,仮想マシン内の/vagrantディレクトリに移動し,以下のコマンドを実行する。

puppet apply hello_world.pp

 
Hello, World!と出力されれば,適用が成功している。
 

実際にpuppetでパッケージをインストールしてみる

実際にzshのパッケージをインストールする際の設定を書いてみる。
先ほどのhello_world.ppと同じ階層に,以下の内容でzsh.ppというファイルを作成する。

package { 'zsh':
  ensure => installed,
}

 
今度は,ログの表示だけではなく,システムへの変更も行うので,仮想マシン内の/vagrantディレクトリに移動し,sudo権限でmanifestを適用する。

sudo puppet apply zsh.pp

 
Finished catalog runと出力されれば,適用が成功している。
 
zshがインストールされていることを,以下のコマンドで確認してみると良いだろう。

which zsh

 

モジュールを使ってみる

Puppetが標準で扱うことが出来るリソース型はType Referenceで確認できるが,「モジュール」と呼ばれる機能拡張をインストールすることで,これ以外のリソースを扱うことも可能になる。モジュールはPuppetの開発元であるPuppet Labsだけでなく,サードパーティからも公開されており,Puppet Forgeというサイトにまとめられている。
 
試しに,以下のコマンドでmysqlモジュールをインストールしてみる。

puppet module install puppetlabs/mysql

 
モジュールをインストールすることで,そのモジュールで提供される機能がマニフェスト内で利用可能になる。例えば,mysqlモジュールを使ってMySQLクライアントをインストールするには,以下をmanifestに書き加えるだけでよい。

class { “mysql”: }

 

VagrantからPuppetを操ってプロビジョニングする

Vagrantfileにmanifestのパスやモジュールのパスを書いておくことで,VagrantからPuppetを利用してプロビジョニング(構成管理)を行うことが出来るようになる。
以下をVagrantfileに記述する。

config.vm.provision :puppet do |puppet|
  puppet.manifests_path = 'puppet/manifests'
  puppet.manifest_file  = 'default.pp'
  puppet.module_path    = 'puppet/modules'
end

 
仮想マシン起動中にVagrantからプロビジョニングするには,以下のコマンドを実行する。

vagrant provision

 
また,以下のコマンドでは仮想マシンの起動時にVagrantからプロビジョニングをすることも出来る。

vagrant up --provision

 
 
以上
 
 
参考
Puppet (ソフトウェア) – Wikipedia
Rubyist Magazine – 入門 Puppet ダイジェスト
Puppetを使ったLinuxシステムの設定自動管理 – さくらのナレッジ

Vagrantを使い始めて半年経つので,そろそろ使い方をブログにまとめておく。
 

Vagrantとは

仮想環境の雛形を作成し,どこでも簡単に同じ環境を再現できるようにするソフトウェア。
コンピュータ上にVirtualBoxで仮想マシンを起動し,その上でLinuxやWindows,Mac OS Xなどを動作させることができる。Vagrantでは仮想マシンやOSの設定をテキストファイルで与えることで特定の状態に初期化することができ,この設定ファイルをコピーすることでどこでも簡単に同じ仮想環境を再現することができる。
 

Vagrantのセットアップ

上記の通り,VagrantはVirtualBoxと連携して動作するので,両方をインストールする必要がある。
今回はHomebrewとhomebrew-caskを使ってVirtualBoxとVagrantをインストールする。
Homebrewとhomebrew-caskの使い方については,説明を省きたいので,こちらの記事をご閲覧いただきたい。
 

brew cask install virtualbox
brew cask install vagrant

 

Boxとは

BoxとはVagrant用に調整されたOSが格納されたファイルである。以下のページから様々なBoxをダウンロードすることが出来る。
 
A list of base boxes for Vagrant – Vagrantbox.es
 

Boxを追加する

仮想環境を構築するにはOSが必要なので,以下のコマンドでVagrantにBoxを追加する。

vagrant box add precise64 http://files.vagrantup.com/precise64.box

 

Boxが追加されたことを確認する

VagrantにBoxが追加されたことを確認するには,以下のコマンドを実行する。

vagrant box list

 
precise64と表示されればBoxの追加が成功している。precise64というのは,先ほどBoxに付けた名前である。
 

Vagrantの初期設定を行う

任意のディレクトリを作成し,仮想マシンを初期化・セットアップする。

mkdir test #任意のディレクトリを作成
cd test
vagrant init precise64

 
vagrant initを行うと,Vagrantfileというファイルが生成される。このファイルには,ベースとしたイメージファイルや,作成された仮想マシンのIPなどが記録されている。
 

Vagrantの使い方

仮想マシンを起動する。

vagrant up

 
仮想マシンをシャットダウンする。

vagrant halt

 
Vagrantfileの再読み込みする。

vagrant reload

 
仮想マシンの状態を確認する。

vagrant status

 
仮想マシンを除去する。

vagrant destroy

 
仮想マシンにssh接続する。

vagrant ssh

 
ChefやPuppet,Ansibleなどと連携して仮想マシンに対してプロビジョニングを行う。

vagrant provision

 
Vagrantを起動しつつ,プロビジョニングする。

vagrant up --provision

 
 
以上
 
 
参考
Vagrantとは – 意味/解説/説明/定義 : IT用語辞典
Vagrant セットアップ (Mac) – Qiita
Vagrantの使い方 ~仮想マシンを簡単に作成しよう。 – (゚∀゚)o彡 sasata299’s blog