ServersMan@VPS(CentOS5)にPython2.6をインストール
ServersMan@VPS(CentOS5)に入ってるPythonが2.4と古い、今時2.4はキツイよ…。
てなわけでPython2.6を新しくインストールしてみるよ。
zlibをインストール
easy_installでzlibが必要になるから、予めzlib-develをインストールしておく。
# sudo yum install zlib-devel
Python2.6をインストール
ソースコードをダウンロードして、configureを実行。
$ wget http://python.org/ftp/python/2.6/Python-2.6.tgz$ tar -zxvf Python-2.6.tgz $ cd Python-2.6 $ ./configure --enable-shared # --enabled-sharedはmod_wsgi等で必要
Modules/Setupのzlibのコメントアウトを外す。
$ vim Modules/Setup zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
あとはmake!make install!
$ make $ sudo make install
soファイルをパスの通っている場所に移動。
$ sudo cp libpython2.6.so libpython2.6.so.1.0 /usr/lib/
configureで--prefixを指定するかどうか迷ったけど
被るのはbinくらいで、lib・includeはバージョン毎にディレクトリが分かれるので気にしない、入れちゃえ、入れちゃえ。
binで被るのがイヤならmake installの代わりにmake altinstallを使うとよろし。python26という名前でインストールされるよ。
sitecustomize.pyでデフォルトエンコーディングを設定
/usr/local/lib/python2.6/site-packages/sitecustomize.pyを追加。
import sys sys.setdefaultencoding('utf-8')
easy_installを再インストール
このままではeasy_installは古いpythonで実行されてしまうので再インストール。
ez_setup.pyは新しくインストールしたpythonで実行する。
$ wget http://peak.telecommunity.com/dist/ez_setup.py # sudo python ez_setup.py
まとめ
インストールした後にvirtual-python使えばよかったんじゃとか思ったけど、まぁいいか。
2.4でインストールしたライブラリも入れ直し、ちゃんと動いている模様。めでたし、めでたし。
Chromeに検索エンジンを追加する
FirefoxにもあるのでChromeにもあるだろうと思いつつも、最近まで調べなかった検索エンジンの追加。
とても簡単なのでまとめとく。
どんな機能?
この機能はアドレスバーからの検索で、文字通り任意の検索エンジンを追加できるというもの。
標準ではGoogle検索を行うけれど、代わりにGoogle MapやGoogle ソースコード検索を呼び出せるようにしちゃう、そんな機能。
検索エンジンを追加
まずはアドレスバーを右クリックして「検索エンジンを編集」で検索エンジンの一覧を表示。
左下にある「+」をクリックし、追加する検索エンジンの情報を入力。
キーワードは、アドレスバーで検索エンジンを指示するための文字列。
URLは、検索結果のURLから検索文字列を%sに置き換えたもの。
例えば、Google ソースコード検索を追加する場合、適当な文字列(ここではhoge)で検索を行い、検索結果のURLを取得。
http://www.google.co.jp/codesearch?as_q=hoge&btnG=Search+Code&hl=&as_package=&as_lang=&as_filename=&as_class=&as_function=&as_license=&as_case=
as_q=hoge -> as_q=%sに置き換えたものを検索エンジンのURLとして入力する。
http://www.google.co.jp/codesearch?as_q=%s&btnG=Search+Code&hl=&as_package=&as_lang=&as_filename=&as_class=&as_function=&as_license=&as_case=
追加した検索エンジンで検索
検索を行うには、アドレスバーで先程入力したキーワード(例ではgcode)とスペースを入力。
すると先程追加した検索エンジンに切り替わり、続いて入力した文字列で検索してくれる。
自分が追加した検索エンジン
追加方法も分かったので、よく見るサイトを手当たりしだい追加してみた。
Snow LeopardでIMEの切り替えを速くする
以前からMacのIME切り替え時にタイムラグを感じていていたところ
次のような解決策を教えてもらった♪あざす!
@nauthiznow URL を参考に「スクリプト切り替え」の表示をしないようにしたら切り替えが早くなった気がしてる。IMEはGoogle日本語入力だけども…
どうやらSnow Leopardから「スクリプト切り替え」とやらを表示するようになり、遅く感じているようだ。確かにLeopardやTigerではそんな問題はなかった気がする。
IMEの切り替えを速くするには
教えてもらったURLによると、以下のように変更すればいい。
- 「システム環境設定」 -> 「キーボード」 -> 「キーボードショートカット」を開く
- 左カラムの「キーボードと文字入力」を選択
- 「前の入力ソースを選択」のショートカットキーを変更
- 「⌘ + スペース」->「Option + ⌘ + スペース」
- 「入力メニューの次のソースを選択」のショートカットキーを変更
- 「 Option + ⌘ + スペース」 -> 「⌘ + スペース」
ポイントは「前の入力ソースを選択」と「入力メニューの次のソースを選択」のショートカットキーを入れ替えるトコロにあるようだ。
僕は日頃、上記のショートカットに「Ctrl + スペース」と「Option + Ctrl + スペース」を割り当ててるけど、同じように入れ替えたら「スクリプト切り替え」が表示されなくなり、確かに速くなった。
実はこの問題でかなりの変換ミスをしてたので、解決できてメチャクチャうれしい♪
その他
あー、twitter記法便利♪いろいろ試してみたいっ!
.ssh/configの書き方
sshを使ってると接続するサーバ毎に、ポートが違ったり秘密鍵が違ったりで引数を切り替えることがよくある。
接続するサーバ毎に指定する引数は決まっているので、よくシェルスクリプトやエイリアスで対処してきたが、.ssh/configを用意すればssh側で面倒みてくれるようだ。(scpやsftpでも可)
まさに灯台もと暗し、こりゃ使わない手はないね。
Hostセクション
.ssh/configは、接続先を表す複数のHostセクションからなり、その中に細かな設定を記述していく。
Host server1 HostName 192.168.11.101 Port 2222 User nauthiz IdentityFile ~/.ssh/server1/id_rsa Host server2 HostName 192.168.11.102 Port 2222 User nauthiz IdentityFile ~/.ssh/server2/id_rsa
Hostの名前はsshでドメインの代わりに指定できる。
例えば、sshでserver1と名付けたHostに接続したければ次のように指定すればいい。
$ ssh server1
もしパラメータを上書きしたければ、コマンドラインのオプションで指定してあげよう。そちらが優先されるよ。
SSHで公開鍵認証
SSHで公開鍵認証をするためのまとめ。
公開鍵を作成
$ ssh-keygen -t rsa
-t で指定できる暗号化方式には他にdsaやrsa1があるみたいだけど
dsaは強度がイマイチ、SSH2を使いたいのでrsaにしとく。(SSH1の場合はrsa1を指定)
実行結果:
Generating public/private rsa key pair. Enter file in which to save the key (/Users/nauthiz/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/nauthiz/.ssh/id_rsa. Your public key has been saved in /Users/nauthiz/.ssh/id_rsa.pub.
途中で訊かれるパスフレーズは、SSHでログインする時に必要。
実行後、秘密鍵は~/.ssh/id_rsa、公開鍵は~/.ssh/id_rsa.pubに保存されてる。
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/id_rsa
接続先サーバに公開鍵を登録
scp等で、秘密鍵(~/.ssh/id_rsa)を接続先のサーバに保存。
公開鍵認証を利用するユーザのホームディレクトリに.sshディレクトリを作成。
$ mkdir ~/.ssh $ chmod 700 ~/.ssh
~/.ssh/authorized_keysに公開鍵追記すれば、登録完了。
はじめてauthorized_keysを作成する場合はパーミッションも変更しとく。
$ cat id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys
次回からSSHを実行すると、パスフレーズを聴かれるので
ssy-keygenに入力したものと同じパスフレーズを入力すればログインできる。
MySQLでエクスポートとインポート
エンコーディングの設定
まずはDBのエンコーディングを修正。
試験管のなかのコード :: MySQL の文字エンコーディング関連設定
を参考に。
MySQLの設定ファイルは、Ubuntuであれば/etc/mysql/my.cnfにあるので
次の項目を追加する。
[mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 character_set_server=utf8
サーバを再起動後、mysqlコマンドで変更を確認。
mysql> show VARIABLES LIKE 'character_set_%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
エクスポート (InnoDBの場合)
mysqldump (データベース名) -u (ユーザ名) -p --single-transaction --master-data=2 > (ダンプファイル)
- -u: ユーザ名
- -p: パスワード、続いてパスワード入力しなかった場合はプロンプトで聞かれる
- --single-transaction: BEGINを発行してエクスポートする。InnoDB専用
- --master-data: 1の場合CHANGE MASTER文をそのまま出力する、2の場合コメントにする
--master-dataの意味が理解できていないけど、CHANGE MASTER文を実行させないためのオプションとのこと。
インポート
mysql (データベース名) -u (ユーザ名) -p < (ダンプファイル)
- -u: ユーザ名
- -p: パスワード、続いてパスワード入力しなかった場合はプロンプトで聞かれる
postgreSQL 8.1.11のシーケンス
postgreSQL 8.1.11では、シーケンスの名前を変更するのに
ALTER SEQUENCE (元のシーケンス名) RENAME TO (新しいシーケンス名)
と書けない。
代わりに
ALTER TABLE (元のシーケンス名) RENAME TO (新しいシーケンス名)
ならいける。
シーケンスもテーブル扱いなのか、びっくりだ。