2014年5月21日水曜日
2013年4月7日日曜日
Vagrantについて
Oracle VirtualBoxをインストール
Virtual Box Old builds
Vagrantをインストール
$ gem install vagrant1.1以上のバージョンはvagrantのサイトからインストール
vagrantのサイトへ
ダウンロードして、インストーラからインストール この時、古いバージョンが入ってると消えます。あんど、ディレクトリ構成が変わってるので 前に使ってた仮想環境のboxとか使えなくなります。 でも、gemのvagrant は古いので、vagrantのサイトからインストーラーでインストールするのがいいかもですね。 まず、vagrant init して Vagrantfile作るのがいいかもですね。 $ vagrant init これで実行すると box name は base です。指定したい場合は $ vagrant init test これで、 boxを構築し終わったときに vagrant box list で test が出てきます。 さらに $ vagrant init test http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box で test って box (仮想環境?インスタンス?)に 指定したURLのOSを使います。 今回はcentos6.4ですね。vagrantにbox(仮想環境のos)を追加の仕方
$ vagrant box add %name% %url%
ここから(Vagrantbox.es)、OSのイメージを選ぶ
※ただ、ここからインストールしたものが必ずしも安全ってわけじゃないので
veeweeってので、自分のboxを簡単に作れるみたい
vagrantにbox(osの)を追加
$ vagrant box add basebox http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130309.box追加されたか確認
$ vagrant box list basebox初期設定 Vagrantfile が生成される
$ vagrant init basebox A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.設定した仮想環境を起動する
この時に自動で環境設定も行われる
$ vagrant up接続 起動した仮想環境にssh接続する
$ vagrant ssh再起動 haltしてupするだけ
$ vagrant reload停止 仮想環境を止める
$ vagrant halt削除 ※よくわかってないけど 消すんだろうw
vagrant destroyboxから削除 vagrant box listしてでてこなくなる
vagrant box remove basebox
Vagrant Docs
詳しくはこちらってやつです。がんばって英語を読んでください。vagrant docs 1.0.x系
vagrant docs 1.1.x系
github
github.com/mitchellh/vagrantsahara
sandbox rollbackできるプラグインvagrant1.1.x系ではforkしたバージョンしか動かない
github.com/ryuzee/sahara
↑使い方
vagrantfile
sshアクセスできるようにする
デフォルトのVagrantfileのコメントアウトをはずして
~/.ssh/configに仮想サーバの情報を登録する
$ vim Vagrantfile config.vm.network :private_network, ip: "192.168.33.10" $ vagrant ssh-config --host basebox $ vagrant ssh-config --host basebox >> ~/.ssh/config $ ssh basebox
2013年4月4日木曜日
Mac OS X でrubyのバージョン管理
Mac OS X でrubyのバージョン管理
rbenvを使います。 そのために、opensslとreadlineとlibyaml入れます。# brew 入れてない場合入れて /usr/local に入ります $ /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)" # 指定の場所 ~/brew 以下とかに入れたい場合 $ git clone https://github.com/mxcl/homebrew.git ~/brew # OS X に標準添付されている opensslは、SEGV を引き起こす事があるため $ brew install openssl # OS X 標準添付の readlineは libedit なので $ brew install readline # 標準添付ライブラリの yaml パーサーの psych に必要 $ brew install libyaml
rbenvをgithub から インストールする
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv $ mkdir -p ~/.rbenv/plugins $ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
~/.bashrc に以下の行を追加
$ vi ~/.bashrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" # 設定し終わったら $ source .bashrc
インストールできるrubyのバージョンを確認する
$ rbenv install --list
ruby buildを使ってruby をインストールする
$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl) --with-libyaml-dir=$(brew --prefix libyaml)" rbenv install 1.9.3-p429 $ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.0.0-p0 $ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.0.0-p195
インストールしたrubyを確認する
$ rbenv versions
バージョンを指定してrubyを有効にする
$ rbenv global 2.0.0-p0
pathを通るようにしておく
OS X なら /etc/paths に /Users/<ユーザ名>/.rbenv/shims を先頭に書いてあげて、pathが通るようにしておく余談
というかメモ# ちなみに、これを書いたときの brewのstableのrubyは 2.0.0-p0でした
$ brew info ruby
ruby: stable 2.0.0-p0, HEAD
# rbenv入れる前にインストールされてたrubyのバージョン
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]
# gem list rubyのバージョンによってgem listは変わる
$ gem list
*** LOCAL GEMS ***
archive-tar-minitar (0.5.2)
bigdecimal (1.1.0)
chef (11.4.0)
childprocess (0.3.9)
diff-lcs (1.1.3)
erubis (2.7.0)
ffi (1.6.0)
highline (1.6.16)
i18n (0.6.4)
io-console (0.3)
ipaddress (0.8.0)
json (1.5.4)
log4r (1.1.10)
mime-types (1.21)
minitest (2.5.1)
mixlib-authentication (1.3.0)
mixlib-cli (1.3.0)
mixlib-config (1.1.2)
mixlib-log (1.4.1)
mixlib-shellout (1.1.0)
net-scp (1.0.4)
net-ssh (2.6.6, 2.2.2)
net-ssh-gateway (1.2.0)
net-ssh-multi (1.1)
ohai (6.16.0)
rake (0.9.2.2)
rdoc (3.9.4)
rest-client (1.6.7)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.3)
rspec-mocks (2.11.3)
systemu (2.5.2)
vagrant (1.0.7)
yajl-ruby (1.1.0)
# そして
$ rbenv shell 1.9.3-p392
$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin11.4.2]
$ gem list
*** LOCAL GEMS ***
bigdecimal (1.1.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)
# vagrant(ベイグラント)を入れてみる
$ gem install vagrant
# えっw
$ vagrant
bash: vagrant: command not found
# gem install とか uninstall とかの度に必要になってくる
$ rbenv rehash
# 使えるようになる
$ vagrant
-v, --version Print the version and exit.
-h, --help Print this help.
Available subcommands:
box
destroy
gem
halt
init
package
provision
reload
resume
ssh
ssh-config
status
suspend
up
For help on any individual command run `vagrant COMMAND -h`
# めんどいので 下記を入れて 自動で rehashしてくれるようにする
$ gem install rbenv-rehash
# rehashされて、使えるようになってますね。
$ rails -v
Rails 3.2.13
おしまい
2013年3月30日土曜日
Chef Solo
Chef Server + Chef Client を 気軽に試せるのが Chef Solo
Chef の インストール
# from source むしろopscodeから $ curl -L http://www.opscode.com/chef/install.sh | sudo bash # gem $ gem install chef
リポジトリ作成
opscodeのクックブックのひな形を取得
$ git clone git://github.com/opscode/chef-repo.git # forkしといたので $ git clone https://github.com/yanap/chef-repo.git
クックブックの作成 with knife
knifeの初期設定、とりあえず、全部デフォルト
$ knife configure # 実行したら色々でてくるけど、とりあえず、デフォルトで
クックブックの作成
$ cd chef-repo/ $ knife cookbook create moi -o cookbooks
クックブックの編集
$ vi cookbooks/moi/recipes/default.rb
moi chef code
Chef Soloの実行
knife-solo
$ gem install knife-solo
※途中ですね
2013年2月27日水曜日
backbone.js memo
backbone
http://backbonejs.org/
https://github.com/documentcloud/backbone/blob/master/backbone.js
backbone.jsを見ながら調べたjavascriptなこと
- apply
https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/Function/apply
- backbone.jsをすすめる理由
http://techs-empty.tumblr.com/post/14961451538/backbone-js-3
http://backbonejs.org/
https://github.com/documentcloud/backbone/blob/master/backbone.js
backbone.jsを見ながら調べたjavascriptなこと
- apply
https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/Function/apply
- backbone.jsをすすめる理由
http://techs-empty.tumblr.com/post/14961451538/backbone-js-3
2013年2月26日火曜日
git flow まとめ
git flow
install
$ brew install git-flow git flow usage: git flowAvailable subcommands are: init Initialize a new git repo with support for the branching model. feature Manage your feature branches. release Manage your release branches. hotfix Manage your hotfix branches. support Manage your support branches. version Shows version information. Try 'git flow help' for details.
git flow init
Which branch should be used for bringing forth production releases?
- master
Branch name for production releases: [master]
Branch name for "next release" development: [develop] dev
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? [] v
git flow feature
feature ブランチの流れ#機能追加を始めますよ $ git flow feature start [-F]git flow feature で使えるコマンド[ ] #編集してコミットする $ git commit -a -m 'add code' $ git checkout dev && git pull $ git checkout feature feature/ #機能追加完了 $ git flow feature finish [-rFkDS] [ ] # -k で branchが消えない #pull $ git pull #リモートのdevブランチにpush $ git push
git flowhelp git flow feature [list] [-v] git flow feature start [-F] [ ] git flow feature finish [-rFkDS] [ ] git flow feature publish git flow feature track git flow feature diff [ ] git flow feature rebase [-i] [ ] git flow feature checkout [ ] git flow feature pull [-r] [ ]
git flow hotfix
git flow hotfix start [-F]git flow hotfix で使えるコマンド finishするまでの間にmasterが更新された場合は諦めてマージするのが正しい pull --rebaseもNG fetch & rebaseだからね rebaseはcommitIDを変える dev, masterが古かったことに気付いたときは、一旦dev, masterをcheckoutし直してfinishをやり直すと言う方法もある (git flow hotfix finish -k hogeでhotfixブランチを残しておけばそれも可能) ※masterを更新しわすれたりしたとき[ ] working... $ git add $ git commit $ git checkout dev && git pull # 最新にしとく $ git checkout master && git pull # 最新にしとく $ git flow hotfix finish [-Fsumpk] # master と dev にマージされてtagができるから
$git fetch; git rebase -p origin/master -pはhotfixのマージコミットを残す。 # dev git fetch; git rebase -p origin/dev
git flow release
#devブランチとmasterブランチを最新化しておく $ git pull #devブランチでsubtreeをpullする (最新化する) $ git subtree pull --prefix=shared git@github.com:yanap/frma-shared.git master #pushする $ git push #リリースブランチをはじめる $ git flow release start 1.0.1 #リリースブランチをおわる $ git flow release finish 1.0.1 #タグを確認する $ git tag -n #pushする $ git push origin master $ git push origin v1.0.1 #途中コンフリクトがおきたとき $ git checkout --theirs $ php -l $ git add $ git commit #でなおして途中で終了してしまうので消してやり直すかcheckoutしなおして finishからやり直す
参考
見えないチカラ: A successful Git branching model を翻訳しましたsuccessful Git branching model を補助する git-flow を使ってみた - Twisted Mind
ぼくが実際に運用していたGitブランチモデルについて ::ハブろぐ
2013年2月25日月曜日
git まとめ
gitを使ってみて良く使うことだけをまとめる
でも、英語なので、ここで理解できずにggrことになる
リポジトリを自分のパソコンにダウンロードする
セーブした所にすぐ戻れる
git push origin dev
remote branchを消したいときは
git push origin :delete_branch
NULL:delete_branch
NULLを対象のremote branchにpushするので、指定された
remote branchは削除される
git checkout dev 作業環境をdevに変える
ブランチを切り替える。
git pull origin devはgit fetach origin dev
してgit merge origin dev している
git --help
git コマンド一覧がでてくるgit command --help
git コマンドごとの詳しい説明がでてくるでも、英語なので、ここで理解できずにggrことになる
git clone
git clone git@github.com:yanap/dotfiles.gitリポジトリを自分のパソコンにダウンロードする
git add
新規作成したファイルをgitに追加するgit commit
その時点での進捗具合をセーブす的なコマンドセーブした所にすぐ戻れる
git commit -a
addを同時に行うgit commit -a -m "comment"
addとコメント入力を同時に行うgit commit -a -m "comment" --dry-run
ドライランgit commit --amend
セーブするポイントを間違えたときにセーブを上書きするgit push origin [local<branch>]:[remote<branch>]
git push origin dev:dev
local branch : remote branch
でも、普段はlocal branchは省略しても大丈夫なのでgit push origin dev
remote branchを消したいときは
git push origin :delete_branch
NULL:delete_branch
NULLを対象のremote branchにpushするので、指定された
remote branchは削除される
git checkout
git checkout [<branch>]
git checkout master 作業環境をmasterに変えるgit checkout dev 作業環境をdevに変える
git checkout -b [<branch>]
ブランチ作成とブランチ切り替えを同時に行うgit checkout -t origin/[<branch>]
リモートにあるブランチをローカルにダウンロードすると同時にブランチを切り替える。
git pull origin [remote <branch>]
remoteのbranchをダウンロードしてlocalのbranchにマージするgit pull origin devはgit fetach origin dev
してgit merge origin dev している
登録:
投稿 (Atom)