tkak's tech blog

This is my technological memo.

python開発環境構築

毎回忘れるので残しとこうと思います。

■ 手順

まずは、homebrewを更新。

brew update
brew upgrade
brew --version

pythonをインストール。

brew install python

※Xcode ver4.3とhomebrewで、だいぶはまりました。
解決方法はこちら。
http://d.hatena.ne.jp/kinneko/20120218/p4

※何も考えず最新版をインストールしてますが、
homebrewでバージョンを指定したいときは、こちらを参考に。
http://stackoverflow.com/questions/3987683/homebrew-install-specific-version-of-formula
(homebrewでバージョン指定する場合は、結構めんどい。)


virtualenvとvirtualenvwrapperをインストール。

sudo easy_install virtualenv
sudo easy_install virtualenvwrapper

virtualenvwrapperを使うためにシェルスクリプトの設定をする。
.zshrcに下記を追加。

export WORKON_HOME=$HOME/.virtualenvs
source `which virtualenvwrapper.sh`

設定を有効に。

source .zshrc

仮想環境を作成。

mkvirtualenv -p /usr/local/bin/python py27

仮想環境はworkonで切り替える。

workon py27

仮想環境を抜けてOSの環境に戻る。

deactivate

pipをインストール

easy_install pip

[diary] 2012/01/29- 02/04

  • 今までウィスキー苦手だったけど、高級ウイスキーを試飲する機会があって価値観変わった。「一期一会」うまし。
  • TOEIC対策として、特急シリーズという本がいいらしい。TOEICマスターの先輩が言ってた。
  • レインボーブリッジが見えるホテルを予約してみた。階もお値段も高い。
  • 席替えして、端っこの席に移動した。これは俗にいう窓際社員なのかも。
  • 自転車いいけど、置く場所に困る。駅前の駐輪場は1回100円。バスが往復420円なので全然安い。
  • 2月に入って、30thouっていうサービスを使い始めた。一日一日を大切に。

http://30thou.com/

redmineの構築

あんまりよくわかってないけど、
さくらのVPSにredmineを構築しました。

http://blog.redmine.jp/articles/redmine-1_2-installation_centos/
↑の手順で、1時間くらいで初期構築ができました。

さらにredminesubversionの連携もしたんですが、
連携も下記手順ですんなりいけました。
http://satospo.sakura.ne.jp/blog_archives/tech/web/redmine105_svn.html

気づいたことといえば、rbの設定ファイル書き換えたら、apache再起動しないと設定が有効にならないっぽいってことですね。
動的に生成してるのかと思っていたら、その辺は性能上げるためにプロセス起動時に読み込むって考えれば、
当たり前といえば、当たり前ですね…。あくまで憶測ですが、、、

sshの初期設定

新年もあけたということで、さくらのVPSの再構築でもしようかと。


まずは、大事なアカウントとsshまわりの設定から。

http://blog.myfinder.jp/2010/09/vpsssh.html
ほぼ、↑のサイトに沿ってやってって感じです。
wheelグループの登録とか、sudo実行のログ取得とか、
自分の知らなかった設定方法がのってたので、勉強になりました。

大体の流れは、こんな感じです。

  • 一般ユーザの作成
  • 公開鍵認証のための鍵の生成と配置
  • sshdの設定
  • ログインテスト
  • sudoの設定
  • rootパスワードの無効化
  • sudo実行のログ取得設定

以下、詳細というか、自分なりの補足です。

一般ユーザの作成

さくらのVPSでOSを再インストールすると、最初はrootしかアカウントがないので、まずは自分用のアカウントを作ります。

$ ssh <sakura's server> -l root
# useradd tkak
# passwd tkak
# usermod -G wheel tkak
# id tkak
# ls -ld /home/tkak

usermod -G wheelは、root権限をwheelグループに属するユーザに制限するため。

※ wheelグループ: http://itpro.nikkeibp.co.jp/word/page/10005502/

公開鍵認証のための鍵の生成と配置

次に、sshするときパスワード入力をしないようにするため、
クライアント側で秘密鍵と公開鍵を生成して、公開鍵をサーバ側に登録します。

クライアントPCで

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/<home dir>/.ssh/id_rsa): <- Enter
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /<home dir>/.ssh/id_rsa.
Your public key has been saved in /<home dir>/.ssh/id_rsa.pub.
The key fingerprint is:
...
$ ls -l ~/.ssh/
$ scp ~/.ssh/id_rsa.pub tkak@<sakura's server>:.

※ dsaよりもrsaのほうが安全性は高いらしいです。
http://monoknock.blog116.fc2.com/blog-entry-34.html

さくらのサーバで

$ mkdir .ssh
$ ls -ld ~/.ssh
$ cat id_rsa.pub > ~/.ssh/authorized_keys
$ rm id_rsa.pub
$ chmod 600 ~/.ssh/authorized_keys

sshdの設定

rootでのログインを許可しない、パスワード認証をしないための設定を入れます。

# vi /etc/ssh/sshd_config
---
// yesからnoに変更
PermitRootLogin no
PasswordAuthentication no
---

# /etc/init.d/sshd restart


※sshdの設定って、頭に#がついているものは、無効化されているのではなく、デフォルトの設定なんだってね…。知らなかったー。
ホントのコメントは頭に「#と (半角スペース)」がついている。
ssh: http://open-groove.net/linux/sshd_config-option/

ログインテスト

ここで、ログインのテストをしてみます。

$ ssh <sakura's server>
Permission denied (publickey,gssapi-with-mic).

あれ、、、なんかsshできない…。
調べてみると、.sshのパーミッションが700になってないとでるみたい。

sshで「Permission denied (publickey,gssapi-with-mic).」が出た時: http://d.hatena.ne.jp/h-yano/20080225/1203952174

修正します。

$ chmod 700 ~/.ssh
$ ls -ld ~/.ssh

再度sshしたら、ログインできました!

$ ssh <sakura's server>

SAKURA Internet [Virtual Private Server SERVICE]

<sakura's server>$


以下の3つは、
http://blog.myfinder.jp/2010/09/vpsssh.html
↑のやり方そのままなので、省略します。(別にめんどくさくなったからとかじゃ、、、

  • sudoの設定
  • rootパスワードの無効化
  • sudo実行のログ取得設定

sudoを誰が実行したかログを取得するようにすれば、
rootになろうとして失敗したときにアラートメールを送信するなんてこともできますね。

と、まぁ、そんな感じで、
sshの初期設定が完了しましたー。

-- 追記 --

変にsshアクセスされるのも嫌なので、
sshのデフォルトポート22番をハイポート(1024~65535)に変更しておきます。

# vi /etc/ssh/sshd_config
---
#Port 22
Port XXXXX
---

クライアントから接続するときは、下記になります。

$ ssh <sakura's server> -p XXXXX

[diary] 2012/01/09

  • dotcloudいじったが、挙動がいまいちわからない。postgresqlを使うと404 not foundが表示される。
  • ネットで買った自転車を自分で組み立てたので、自転車屋に持っていってチェックしてもらいたい。
  • ネットで、プロポーズの経験談を読んだ。そろそろ時間がない。
  • 今週の土曜に占いに行こう。
  • ダイニングテーブルが欲しい。下記のサイトがよさげ。

Xcodeを入れずにOS Xでgccを使う方法

MacPortsやhomebrewを使いたいときにgccが必要になるので、
今まで仕方なくXcodeをいれてましたが、
Xcodeを入れずにgccを使う方法を見つけたので、
メモしておきます。

環境
■OS 10.7.2
Xcode 4 and 3 (※インストール済み)


まずは、インストール済みのXcodeをアンインストールします。

$ sudo /Developer-3.2.6/Library/uninstall-devtools --mode=all
$ sudo /Developer/Library/uninstall-devtools --mode=all

ver 3.2.6は4をインストールした時にversionを分けるために作られてますが、
両方削除します。


次に、インストールするパッケージを入手します。

https://github.com/kennethreitz/osx-gcc-installer

自分の場合は10.7用をダウンロードしました。

ダウンロードした下記のファイルを開いて、インストーラに従ってすすめば、インストール完了。
GCC-10.7-v2.pkg

きちんとインストールされたかどうか確認します。

$ gcc --V
i686-apple-darwin11-llvm-gcc-4.2: no input files

なんか必要なファイルがないよとメッセージがでました…。
これはなんかgccの問題っぽいのでまた今度…。


参考
http://apple.stackexchange.com/questions/25213/can-i-delete-the-developer-3-2-6-or-developer-3-2-5-folders