Glitch

MySQL, MongoDB, Python, Go

ssh接続のログイン待ちが長い!

さくらでもあるんかい(゚Д゚)ゴルァ!!

これについては解決策いろいろあるそうです.

DNSサーバ

よくあるある.
DNSサーバに名前解決に行けない...

  • sshd_configのnoDNSをいじる

sshの場合はこれ手っ取り早く,かつ他に影響を与えない.

noDNS no
  • 名前解決先を指定

/etc/resolv.confにDNSが列挙されています.
死んでるサーバ外したり,Google Public DNS(8.8.8.8)使ったりするとよいそうで.

あとDNSサーバそもそも見なおしたりね.

GSSAPI認証

これも意外とよくある.
特にクライアント側のsshd_configに関連するそうなので見落としがち.
sshd_configに以下を設定.
GSSAPIAuthentication no

IPv6

さくらではサポートされていませんが,普通のサーバではデフォルトでonなので
特別な事情がない限りは明示的に切るほうがよいかと.


今回はどれだったかというと...
2番目のGSSAPIだったみたい.
クライアントが悪い,さくらはなにもわるくなかった(´・ω・`)

SL6にvirtualenv+python2.7

pyhton2.7を使いたいけどRHEL6はまだpython2.6なのねん(´・ω・`)
かといってyumはpython使ってるみたいだし,まさか...

ln -s /usr/local/bin/python27 /usr/bin/python

((((;゚Д゚))))ガクブル

というわけでおりこうさんにvirtualenv入れてその上でpython2.7の環境を構築しようと思います.
Macportだとpython_selectってのあるみたいだけど.いまはport selectだっけか.

python2.7

orderddictとかcounterつかいたいじゃない?
What’s New in Python 2.7 — Python v2.7.3 documentation
SnowLeopardでもRHEL6でも採用されてないバージョンを使うのは怖いけど(´・ω・`)
Ubuntu11では採用されてたけど.まぁいいや.
参考サイトです.
CentOS 5.6 に Python 2.7.1 と mod_wsgi 3.3 をインストール - Debian GNU/Linux 3.1 on PowerMac G4

$ wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
$ tar zxvf Python-2.7.2.tgz

ここでpythonにあるzlibモジュールが標準だとインストールされないようです.
開発用zlib(zlib-devel)をインストールし,Module/Setupを書き換え.

$ sudo yum install zlib zlib-devel
$ vim Python-2.7.2/Module/Setup
# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
# ↑コメントアウトする

ここまでで準備完了.あとはいつも通りconfigure -> make -> make install.

$ cd Python-2.7.2
$ ./configure --with-threads --enable-shared
$ make
$ make install

正直configureのoptionはよくわかってません...
ここちゃんと調べないとなぁ.

    • with-threadはスレッドの有効化,--enable-sharedはライブラリの共有だそうです.

共有ライブラリ(--enable-shared)指定は以下の通り.

$ vim /etc/ld.so.conf.d/python2.7.conf
$ /sbin/ldconfig

これでめでたく以下のコマンドでpython2.7起動です.

$ /usr/local/bin/python
Python 2.7.2 (default, Dec 18 2011, 00:45:19) 
[GCC 4.4.5 20110214 (Red Hat 4.4.5-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

うむ(`・ω・´)

virtualenv

仮想環境変数を構築するものですね.
参考サイト.
virutualenvとvirtualenvwrapperとpipを使う - YAMAGUCHI::weblog
とりあえずpython-setuptools -> easy_install -> virtualenvの流れで.

$ yum install python-setuptools
$ easy_install pip
$ pip install virtualenv
$ virtualenv --version
1.7

最新版いいね(・∀・)

ついでにvirtualenvを管理してくれるvirtualenvwrapperも入れました.

$ pip install virtualenvwrapper

ほいで.zshrcに以下を記述.

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
source /usr/bin/virtualenvwrapper.sh

二行目がないとなぜかVIRTUALENVWRAPPER_PYTHONが/usr/local/bin/pythonを参照してしまってインポートエラーが出てしまったです.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly.

python2.7環境をvirtualenvで

こっから本番!

mkvirtualenv --python=/usr/local/bin/python2.7 --no-site-packages --distribute ~/python2.7

pythonの実行ファイルを指定します.-p PYTHON_EXEも可能.

  • --no-site-packages

グローバルなsite-packagesとvirtualenv環境が隔離されます.
まっさらな環境がほしい時はこれ.
virtualenv1.7からデフォルトになったみたいです.

  • --distribute

パッケージ管理にsetuptoolsの代わりにdistrubuteを使用するそうです.
.zshrcに以下を記述してデフォルトに出来ます.

export VIRTUALENV_DISTRIBUTE=true

ちなみにこれ,Documentと--helpで記述違いますが,--helpのほうが正解でした.


んでまとめ.

# 環境作成
$ mkvirtualenv --python=PYTHON_EXE (envname)
# 環境切り替え
$ workon (envname)
# 元の環境に戻る
$ deactivate
# 環境削除
$ rmvirtualenv (envname)

(おまけ)環境を移行したい時は?

pipを使います.
[移行元]

$ pip freeze > packages.txt
$ pip bundle -r packages.txt source.pybundle

  ↓
[移行先]

# ネット接続環境下
$ pip install -r packages.txt
# ネットなくてもOK
$ pip install source.pybuldle

tmux+byobu

screenは縦分割があれなので,メモリ消費量も少ないらしいtmuxを入れることにしました.
あと設定簡単にするbyobuも.

tmux

screenの対抗馬.
参考サイト
時代はGNU screenからtmuxへ - Dマイナー志向
依存関係としてlibeventとncursesが必要です.

$ yum install libevent libevent-devel ncurses ncurses-devel

あとはmake install

$ wget http://downloads.sourceforge.net/tmux/tmux-1.5.tar.gz
$ tar zxvf tmux-1.5.tar.gz
$ cd tmux-1.5
$ ./configure
$ make && make install

byobu

screenやtmuxを簡単操作でいじれる.
こっちもmake installするだけなので割愛...
デフォルトのbyobuコマンドだとscreenが起動するので,byobu-tmuxで.

make installを管理するpaco

先のpython2.7の記事.
どうやら--enable-sharedがうまく行ってないらしく,import cursorsとかできませんでした.
んでもっかいインストールしなおそうと思ったんだけど,make installしたもんだからどこになにがあるのやら...
とりあえずmake -n installをログファイルに書き出して一つづつ削除するハメに(;´Д`)

もうこんなことはしたくないお!ということでmake installをパッケージ管理してくれるpacoを導入.
正確にはファイルシステムへの書き込みを行うシステムコールを監視して,その書き込み先を記録しているみたいですね.
paco - a source code pacKAGE oRGANIZER for Unix/Linux
wget〜make installまでは一緒.
そのあと,自身も管理対象に入れるために以下のコマンド.

$ make logme

これで準備完了( ´∀`)

基本的に./configureしてmakeするまでは一緒.
んでmake installの代わりに

$ paco -D make install

その他のコマンド.

# パッケージ一覧
$ paco -a
# パッケージ削除
$ paco -r [package]

sudoのエラー

ついでに発見したので書いときます.
先のmake logme,Permittionの関係上sudoで実行したのですがなんかエラーに.
色々調べてたらどうやらsudo envのPATHに/usr/local/binが通ってないそうで…
とゆことで.zshrcに以下を追加.

alias sudo='sudo env PATH=$PATH'

envがないとなぜかpacoがうまく動かなかった…なぜゆえ.

Ubuntu 11.10 導入

今までUbuntu Studio 10.10入れてたけどまぁあんまりDTMで使わないかなってことで一新.
CentOSみたいにOSインストール時にInstall Package選択しないのね...
それともUbuntu Serverだと選択できるのかな?

なにはともあれUbuntu 11.10再インスコ.
30GBのext3パーティションどす.
English環境にしました.
LiberOfficeはいっとる!
とりあえず入れたもの.

Mozcは以下のサイトを参照.
http://linux.ikoinoba.net/index.php?UID=1279543844:image:leftMozc+dict: 辞書を強化した(変態化した?)Mozcを作ってみた - 憩いの場





顔文字辞書はここから.
http://matsucon.net/material/dic/:image:right2ちゃんねる顔文字辞書・2chアスキーアート・AAアイコン素材 MatsuCon - 顔文字辞書ダウンロード


(Mozcプロパティ呼び出し)

/usr/lib/mozc/mozc_tool --mode=config_dialog

あと日本語がなんかおかしい.(Web表示とか)
English環境だから当たり前かもだけど、中国語みたいになっとる...
ググったらフォントの指定がおかしい?
という訳で以下のコマンド.

sudo fontconfig-voodoo -s ja_JP

mozcの変換候補がまだおかしいけどひと通り治った( ´∀`)

(追記)日本語フォントが中華風な件について

このサイト見れ.
独学Linux : Ubuntu 11.10(Oneiric)の日本語環境に関する注意点

とりあえず今日はここまで.
次はさくらVPS初期設定する.


Ubuntuに関して次やること

さくらVPS初期設定

と言っても非常にわかりやすい記事がいくつもあるのでそちらを参考に.

http://wata-jp.ldblog.jp/archives/1606112.html:image:left[まとめ] さくらのVPSを借りたらまず最初にすべき6のこと - ワタブログ





http://tanaka.sakura.ad.jp/archives/001065.html:image:rightCentOSをサーバーとして活用するための基本的な設定 - さくらインターネット創業日記





基本的なsshのセキュリティ向上と,スーパユーザ関連の権限に関してですねー.
iptableはさくら社長の方を参考に.
sshはsorce portを自宅と研究室/24に割り当てました.
daemonは未チェックですが,なんか色々停止してるみたいなのでデフォルトで.

ここまでやってアップグレード.

sudo yum upgrade

ただ今放置中…

[okdtsk@www6210u ~]$ cat /etc/redhat-release 
CentOS release 5.7 (Final)

うむ( ・`ω・´)

実機とかだとCentOS6のほうが起動早いしなぁと思うんだけど,さくらサポート外だし.
RHEL6使いたくなっったら細々と変えるかね(´・ω・`)

次はpython関連をやろうかな.
Django使いたい.

さくらで次やること

  • python2.7,python_select導入
  • Django導入

さくらVPS CentOS5.7(Default+upgrade) → Scientific Linux6

え,さくらVPSってScientific Linuxだと6で提供してるの…( ゚д゚)

という事で前回の記事でやった分帳消しでScientific Linux 6カスタムOSインストールします.
方法は公式サポートの手順どおり.
http://support.sakura.ad.jp/manual/vps/mainte/custom_scientificlinux.html:image:rightScientific Linux 6|カスタムOSインストールガイド|さくらのVPS|さくらインターネット公式サポートサイト

注意点をいくつか.

  • ChromeだとVNCコンソール(TightVNC)が開かない

Java Embedding Pluginがプラグインとして認識しないそうで...
Firefox使ったら出来ました.

  • imgファイルのNot Found Error?

やり直したらできた.なんやねん.



インストールオワタ at 8:10

そろそろどうかなってTightVNC見てみる.

Network Error: remote side closed connection.
(゚д゚) エッ!?

ああ,インストール終わって再起動ね...
わかりづらいわい!
という訳で起動をポチっと.→「稼働中」へ.
ssh接続するぞー.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

(゚д゚) エッ!?

ああ,know_hostに前のCentOS5のhost key残ったままでしたね...

rm -f ~/.ssh/know_host

これでよーやく接続.
ケアレスミス多し...

あとは前回の通り初期設定します.

CentOS5.5の時と違うこと.

RHEL5と6ではsshのバージョンとか少し違います.
ログイン方法が増えたりね.
一応メモ.
/etc/ssh/sshd_config

## Port変更nmapで調べられちゃうから気休め.らしい.
Port 2222

PermitRootLogin no
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

## ホストベースの認証関係です.
## Protocol 1 のユーザは無視します.自分使わないし.多分.
## あと使うのは/etc/ssh/ssh_known_hostsに記載されているホストのみ.
## ユーザレベルの設定ファイル(~/.ssh/known_host)は信用しません.
##   -> つまり公開鍵認証になるのかな?
RhostsRSAAuthentication no
HostbasedAuthentication yes
IgnoreUserKnownHosts yes
IgnoreRhosts yes

PermitEmptyPasswords no
PasswordAuthentication no

とはいえしばらくはHostbasedAuthenticationは使用しないと思う.
とりあえずはこれで.

あと以下の4,5をやった.
だいたい最初からミニマルにインストールされてるね>さくら
http://sakura.off-soft.net/scientific-linux/first-setting-scientific-linux.html:image:right最初にやっておきたいこと(Scientific Linux編) | レンタルサーバー・自宅サーバー設定・構築のヒント