CentOSにgitの設定をする

さくらのVPSでCentOSを利用しているが、
ここで開発もまとめてやってしまいたいと思っているので、
githubを利用出来るように環境設定を行う。

yumではgitがリストにないため、インストールできない。

$ sudo yum install git
:
Setting up Install Process
No package git available.
Nothing to do

yumリポジトリにgitを含むものを追加

yumリポジトリにgitを含むリポジトリを追加する。
今回は2つのファイルを作成する。

/etc/yum.repos.d/git.repoの作成

[git]
name=Base git repository
baseurl=http://www.kernel.org/pub/software/scm/git/RPMS/$basearch
enabled=1
gpgcheck=0

/etc/yum.repos.d/rpmforge.repo の作成

[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
enabled = 0
gpgcheck = 0


wgetpython-hashlib のrpmを取得して、rpmでインストール。
インストールする理由は、yum updateでError performing checksum失敗してしまうため。

$ wget http://skvidal.fedorapeople.org/hashlib/python-hashlib-20081119-2.x86_64.rpm
$ sudo rpm -ivh python-hashlib-20081119-2.i386.rpm
$ rpm -qa | grep python-hashlib
python-hashlib-20081119-2

yum updateで、gitのリポジトリを追加する。

$ yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
git                                                                                                                updates                                                                                               | 1.9 
:
updates/primary_db                                                                                    | 1.1 
:
Setting up Update Process
No Packages marked for Update

結果的にgitのインストールでまた違うエラーが発生してしまい、インストールは完了できなかった。
依存関係のあるモジュールが不足しているため、発生しているみたい。
ちょっと一旦、ここで打ち切って違うタイミングで解決させておきたい。

$sudo yum install git
:
:
--> Processing Dependency: libexpat.so.1()(64bit) for package: git
--> Processing Dependency: libcrypto.so.10()(64bit) for package: git
---> Package perl-Git.x86_64 0:1.7.4.3-1.fc13 set to be updated
--> Processing Dependency: perl(:MODULE_COMPAT_5.10.1) for package: perl-Git
--> Finished Dependency Resolution
git-1.7.4.3-1.fc13.x86_64 from git has depsolving problems
  --> Missing Dependency: libcurl.so.4()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
perl-Git-1.7.4.3-1.fc13.x86_64 from git has depsolving problems
  --> Missing Dependency: perl(:MODULE_COMPAT_5.10.1) is needed by package perl-Git-1.7.4.3-1.fc13.x86_64 (git)
git-1.7.4.3-1.fc13.x86_64 from git has depsolving problems
  --> Missing Dependency: libexpat.so.1()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
git-1.7.4.3-1.fc13.x86_64 from git has depsolving problems
  --> Missing Dependency: libc.so.6(GLIBC_2.7)(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
git-1.7.4.3-1.fc13.x86_64 from git has depsolving problems
  --> Missing Dependency: libssl.so.10()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
git-1.7.4.3-1.fc13.x86_64 from git has depsolving problems
  --> Missing Dependency: libcrypto.so.10()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
Error: Missing Dependency: libcrypto.so.10()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
Error: Missing Dependency: libc.so.6(GLIBC_2.7)(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
Error: Missing Dependency: libcurl.so.4()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
Error: Missing Dependency: libexpat.so.1()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
Error: Missing Dependency: libssl.so.10()(64bit) is needed by package git-1.7.4.3-1.fc13.x86_64 (git)
Error: Missing Dependency: perl(:MODULE_COMPAT_5.10.1) is needed by package perl-Git-1.7.4.3-1.fc13.x86_64 (git)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.

EmacsでPHP開発の環境設定(2)


以前、EmacsPHP開発の環境設定を試みたが、うまく設定できずにまた今度設定し直すとしたが、今回改めて設定を試みた。
2011-02-16 - SE街道まっしぐら


うまく行かなかったのは、CentOSで以前は、php-modeのインストールに失敗していたが、Emacs21を利用していて、それに対応していないphp-mode-1.5.0のバージョンのelispを設定しようとしていたのが原因だった。つまりは、Emacs23対応のelispを適用しようとして失敗していた。・・・残念だわ。


その原因を踏まえ、今回は、以下の方法でEmacsのインストール・設定を行い、PHPの開発環境の設定を行った。


まず、さくらのVPS(CentOS 5.5)から、Emacs21のアンインストールを行った。

$ rpm -qa | grep -i emacs
emacs-common-21.4-20.el5
emacs-21.4-20.el5
emacs-el-21.4-20.el5
$ sudo rpm -e emacs
$ sudo rpm -e emacs-el
$ sudo rpm -e emacs-common


その後、rpmのリポジトリに存在していないので、以下のように外部のリポジトリから取得する。

$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/emacs-23.2-13.x86_64.rpm
$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/emacs-common-23.2-13.x86_64.rpm
$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/emacs-el-23.2-13.x86_64.rpm
$ wget ftp://sea-mew.jp/rpms//el5/x86_64.corei7/hunspell-1.2.8-1.x86_64.rpm
$ sudo rpm -Uvh emacs-common-23.2-13.x86_64.rpm
$ sudo rpm -Uvh emacs-el-23.2-13.x86_64.rpm
$ sudo rpm -Uvh hunspell-1.2.8-1.x86_64.rpm
$ sudo rpm -Uvh emacs-23.2-13.x86_64.rpm


前回の設定で、php-mode-1.5.0のインストール・設定は済ませていたので、ここでは割愛する。


PHPの補完機能のelispとして、php-completionをインストールする。インストールの順序は、install-elisp.elを使ってphp-completion.elをインストールする。

M-x install-elisp-from-emacswiki anything.el -> C-c C-c
M-x install-elisp-from-emacswiki anything-match-plugin.el -> C-c C-c
M-x install-elisp-from-emacswiki auto-complete.el -> C-c C-c
M-x install-elisp-from-emacswiki php-completion.el -> C-c C-c


php-comletion.elの設定のために、.emacsに以下の設定を記述する。

(add-hook 'php-mode-hook
         (lambda ()
             (require 'php-completion)
             (php-completion-mode t)
             (define-key php-mode-map (kbd "C-o") 'phpcmp-complete)
             (when (require 'auto-complete nil t)
             (make-variable-buffer-local 'ac-sources)
             (add-to-list 'ac-sources 'ac-source-php-completion)
             (auto-complete-mode t))))


emacsを再起動後、php-completionが有効になっているかどうかを確認する。test.phpを新規作成した後に、aとタイプしてC-oコマンドで候補のリストが表示されることを確認する。問題なく表示されれば、インストール・設定、完了。めでたし。

Screenの設定

Screenは、仮想端末管理マネージャというソフト。
1つのターミナルで複数の仮想ターミナルを利用できる。

ここでは、WEB+DB PRESS vol.40の特集を利用してScreenの利用方法と設定を軽く勉強。

覚えておくべきコマンド

コマンド 内容
^T c ウインドウ作成
^T t 直前のウインドウに戻る
^T 数字 数字で指定したウインドウに切り替える
^T n 次の番号のウインドウに切り替える
^T p 前の番号のウインドウに切り替える
^T k ウインドウを閉じる
^T [ コピーモードにする
^T ] コピーモードでコピーしたものをペースト
^T d デタッチ

WEB+DB PRESS Vol.40 Æý¸2 ¥µ¥Ý¡¼¥È¥Ú¡¼¥¸
を参照して、Screenの設定ファイルを作成する。
~/.screenrc に以下の内容で作成。

## エスケープキーの設定
escape ^Tt

## ビジュアルベルを無効
vbell off

## ステータス行の設定
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"

## スタートアップ時メッセージ無効
startup_message off

## 自動でデタッチする
autodetach on

## スクロール行を 10,240行
defscrollback 10240

## ^T U で UTF-8 / ^T E で EUC-JP を切り替え
bind U eval "encoding utf-8" "!!!echo 'export LANG=ja_JP.UTF-8'"
bind E eval "encoding euc" "!!!echo 'export LANG=ja_JP.EUC-JP'"

Emacsでclojureを扱い易くする環境設定

Emacsclojureの開発環境を整えるために、行なったことのメモ。

install-elisp.elをインストール

1.install-elisp.el をダウンロードします。

# curl -O http://www.emacswiki.org/cgi-bin/wiki/download/install-elisp.el

2.ダウンロードしたファイルを ~.emacs.d/elisp フォルダに置きます。
3. .emacs に設定を書いて保存します。

(require 'install-elisp)
(setq install-elisp-repository-directory "~/.emacs.d/elisp/")

package.el をインストール

1.EmacsでM-x install-elispコマンドを打ち込む
URLは、http://tromey.com/elpa/package-install.el

2.package-install.elファイルの中身がEmacsに表示される。
C-c、C-cで保存、コンパイル、ロードが行われる。

3.いったんEmacsを終了させる。
4. .emacsに以下の内容が追記されている。

;;; This was installed by package-install.el.
;;; This provides support for the package system and
;;; interfacing with ELPA, the package archive.
;;; Move this code earlier if you want to reference
;;; packages in your .emacs.
(when
    (load
     (expand-file-name "~/.emacs.d/elpa/package.el"))
  (package-initialize))

clojure-modeのインストール

M-x package-list-packageコマンドをタイプ

clojure-modeを選択してインストール。

:
I clojure-mode	    1.7.1     available	 Major mode for Clojure code
  clojure-test-mode 1.4	      available	 Minor mode for Clojure tests
:

インストール完了後、.cljファイルを開くと構文のハイライトが有効になる。

EmacsでPHP開発の環境設定

PHP-modeのインストール

PHPでの開発環境をEmacsを愛用エディタとして環境を整えたいと思ったため、PHP用のEmacs LISPの設定を行う。

(1)拡張プログラムの設定を.emacsに記述する。
拡張プログラムの設定を .emacsに記述する。以下がその内容。

; 設定例
(autoload 'php-mode "php-mode")
(setq auto-mode-alist
      (cons '("\\.php\\'" . php-mode) auto-mode-alist))
(setq php-mode-force-pear t)
(add-hook 'php-mode-user-hook
  '(lambda ()
     (setq php-manual-path "/usr/local/share/php/doc/php-chunked-xhtml")
     (setq php-manual-url "http://www.phppro.jp/phpmanual/")))

(2)wgetで対象のelファイルを取得。

$ cd $HOME/src
$ wget http://sourceforge.net/projects/php-mode/files/php-mode/1.5.0/php-mode-1.5.0.tar.gz/download
$ tar zxvf php-mode-1.5.0.tar.gz 
$ cp $HOME/src/php-mode-1.5.0/php-mode.el $HOME/elisp/.

結果的には、うまく設定できず・・・。
PHPのファイルを読み込んでも、font-lock-comment-faceのエラーが出力され、
色分けされない。.emacsには、以下のフォントの設定変更可能にする
記述を追加しても変わらなかった。

(global-font-lock-mode t)

もうちょっと設定方法について再度、設定してみようかと思う。

CentOSでEmacsのインストール・設定

Emacsのインストール

Emacsをyumでインストール。

 $ sudo yum install emacs

Emacsの設定

 $ emacs

WEB+DB Press Vol.40でEmacsの設定ファイルを紹介していたので、WEB+DB PRESS Vol.40 Æý¸2 ¥µ¥Ý¡¼¥È¥Ú¡¼¥¸よりダウンロードして、利用する。

.emacsを編集後、設定ファイルが問題ないかを確認。

M-x eval-buffer

RubyEmacsRubyモードのインストール・設定

  • Rubyのインストール
 $ sudo yum install ruby

下準備として、次のことを行う。

(1)拡張プログラムをホームディレクトリから読み込めるようにする。
(.emacs)に以下の記述をする。

;; ~/elisp をライブラリパスに追加
(setq load-path
      (append
       (list
	(expand-file-name "~/elisp/")
	)
       load-path))

(2)wgetのインストール

 $ sudo yum install wget

(3)ruby-mode.elを取得・修正する。
Rubyのソースに含まれているため、wgetRubyのソースを取得する。
今回は、v1.9.0-5のソースを取得した。

 $ mkdir ~/src
 $ cd ~/src
 $ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-5.tar.gz
 $ tar zxvf ruby-1.9.0-5.tar.gz

解凍したソースの中のmiscディレクトリから、Emacsruby-modeのもの(*.el)を
~/elisp配下にコピーする。

 $ mkdir ~/elisp
 $ cd ~/src/ruby-1.9.0-5/misc
 $ cp *.el ~/elisp
 $ ls
 README       ruby-electric.el  ruby-style.el  rubydb3x.el
 inf-ruby.el  ruby-mode.el      rubydb2x.el

.emacsの設定に以下の内容を記述する。

  (autoload 'ruby-mode "ruby-mode"
    "Mode for editing ruby source files" t)
  (setq auto-mode-alist
        (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))

CentOSの基本設定覚書 MySQLインストール・設定

WEBサーバの設定の次にDBのインストール・設定を行おうと思う。今回はDBにMySQLを用いてインストールと設定を行う。

MySQLインストール

MySQLをyumを利用してインストールする。

 $ sudo yum install mysql-server

MySQL設定ファイルの修正

MySQLインストール後、初期設定として設定ファイルの編集を行う。
/etc/my.cnfをバックアップしてからviで編集。具体的には、文字コード
UTF-8に変更する。

 $ cd $HOME
 $ cp /etc/my.cnf .
 $ sudo vi /etc/my.conf

/etc/my.cnf
(9行目〜11行目)

# character-set
default-character-set=utf8
skip-character-set-client-handshake

(21行目〜22行目)

[client]
default-character-set=utf8

(24行目〜25行目)

[mysql]
default-character-set=utf8

(27行目〜28行目)

[mysqldump]
default-character-set=utf8

MySQLのサービス登録と起動

  • MySQLのサービス登録

chkconfigコマンドで自動起動のために設定を変更する。
初期設定では、offになっている。

 $ chkconfig --list mysqld
mysqld         	0:off	1:off	2:off	3:off	4:off	5:off	6:off 

自動起動設定を行って、確認すると、runlevel2~5まで
がonになっている。現在のCentOSのrunlevelは3なので、
OSを再起動してもサービスとして起動されることとなる。

 $ sudo chkconfig mysqld on
 $ chkconfig --list mysqld
 mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off
  • MySQLのrootユーザ設定
  • rootユーザにパスワードを設定

rootユーザにパスワードを設定。

 $ sudo mysqladmin -u root password 'XXXXX'

rootユーザでのログイン。設定したパスワードでrootユーザでログインができた。

 $ mysql -u root -p
 Enter password: 
 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 54
 Server version: 5.0.77 Source distribution

 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 mysql> 

不要なユーザーの削除

  • 不要なユーザの削除

root以外のユーザは不要であるため、削除を行う。

mysql> SELECT user, password, host FROM user;
mysql> DELETE FROM user WHERE user = '' OR ( user = 'root' AND host != 'localhost' );
mysql> SELECT user, password, host FROM user;

参考URL