Cygwinのインストール & 日本語化

Xサーバが使いたくCygwinをインストールした。ウェブ上のCygwinに関する情報は古くなっているものが多く、試行錯誤してやっと使えるようになった。誰かの役に立つかもしれないのでメモを公開する。

ダウンロード

  1. http://www.cygwin.com/ より setup.exe をダウンロード。
  2. setup.exe を起動し、Download without installing を選択する。
  3. URLリストに http://cygwin-je.sourceforge.jp/cygwin_je/ を追加する。
  4. すべてダウンロード。ただし FDだけはダウンロードできないのでチェックを外す。
  5. ダウンロードする。失敗したら再挑戦。
  6. もう一度 setup.exe を起動。今度は別のサイトを選択する。
  7. すべてダウンロードする。

インストール

Cygwin

デフォルトで選択されているものに加え、次のパッケージを追加する。

Cygwin JE

Keepにチェックを入れて上書きインストールを阻止する

次のパッケージは追加する

次のパッケージはインストールしない。

初期設定

環境変数

マイコンピュータのプロパティを開いて設定する。

変数名
CYGWINtty binmode nontsec
HOME/home/USERNAME
MAKE_MODEUNIX
SHELL/bin/bash

マウント(任意)

ホームディレクトリをD:\home\以下に置くなら、次のようにマウントする。

C:
cd C:\cygwin\bin
umount -A
mount -b C:\cygwin /
mount -b D:\home /home

日本語化

マニュアル日本語化

日本語マニュアルはインストール済み。whatisデータベースをつくっておく。

$ /usr/sbin/makewhatis

/etc/man.confを開く。100行目付近からgroffなどのパスが間違っているので修正する

Cygwin + X + 日本語アプリケーション

  1. http://www.eaflux.com/cygwin-xfree-jp-supplement/binaries/から以下のファイルをダウンロードする。
  2. kterm, Canna, imeproxy, kinput2, Xbin-correctedをインストールする。
    $ tar Cxzf / Xbin-corrected.tgz
    $ tar Cxzf / kterm.tgz
    $ tar Cxzf / canna.tgz
    $ tar Cxzf / imeproxy.tgz
    $ tar Cxzf / kinput2.tgz
  3. fixappdefaults.shを実行する。これを怠るとkinput2が起動しない。
    $ ./fixappdefaults.sh
  4. startup.tgzを展開し、install.shを実行する。ホームディレクトリにXやCannaの設定ファイルが作成される。
    $ tar -zxvf startup.tgz
    $ cd startup
    $ ./install.sh

Tips on cygwin

http://www.eaflux.com/cygwin/tips/よりcyg-addon.tgzをダウンロードしインストールする。

$ tar -zxvf cyg-addon.tgz
$ cd cyg-addon
$ ./install.sh

Emacsでtamago(日本語入力)が使えるようになる。

設定ファイル

.bash_profile

ない場合はつくる。これがないと.bashrcが読まれない。

if [ -f $HOME/.bashrc ]; then
source $HOME/.bashrc
fi

.bashrc

環境変数にDISPLAY=localhost:0.0は設定しない。emacsがターミナル上で起動しなくなる。

#!/bin/bash

# .bashrc - bash resource script, read at beginning of execution by each shell

# Source global definitions
if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi 

# Alias file
if [ -f ~/.bash_aliases ] ; then
        . ~/.bash_aliases
fi

# A righteous umask
umask 22

# Path
export PATH=/usr/local/bin:/usr/X11R6/bin:$PATH:~/bin
export NLSPATH="/usr/share/locale/%L/LC_MESSAGES/%N"

# Prompt
PS1="$USER@$HOSTNAME:\w$ "

if [ ! -n "${TERM}" ]; then
    TERM=cygwin
fi

# Environmental Variables
export HOME=/home/USERNAME
export LC_CTYPE=ja_JP.SJIS
export LANG=ja_JP.SJIS
export TMPDIR=/tmp
export TZ=JST-09
export MAKE_MODE=unix
export SHELL=/bin/bash
export PAGER=less
export EDITOR=vim
export JLESSCHARSET=japanese-sjis

# Shell variables
HISTSIZE=500
HISTFILESIZE=500
HISTCONTROL=ignoreboth
IGNOREEOF=3

# Aliases
alias ls='ls -F --color=auto --show-control-chars'
alias la='ls -aF --show-control-chars'
alias ll='ls -l --show-control-chars'
alias jpwhois='whois -h whois.jprs.jp'
alias source='source ~/.bashrc'
alias f="find ./ -name '\!*' -print"

alias vi='vim'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias mkdir='mkdir -p'

echo Now bash version $BASH_VERSION start!

.inputrc

コンソール画面で日本語入力できるようにする。

set convert-meta off
set input-meta on
set output-meta on
set kanji-code sjis
set meta-flag on

.emacs.el

既に作成されているはずなので、お好みで設定する。

; .emacs.el


;; environmental variables
(setenv "LANG" "C")
(setenv "TZ" "JST-9")
(setenv "RCSINIT" "-z+09:00")



;; path
(setq load-path
      (append '(
                "~/lisp"
                "~/elisp"
                )
              load-path))



;;; misc settings
(setq inhibit-startup-message t)
(setq make-backup-files nil)
(setq-default transient-mark-mode t)
(setq tooltip-use-echo-area t)
(blink-cursor-mode nil)
(tool-bar-mode 0)
(menu-bar-mode 0)
(setq next-line-add-newlines t)
(setq ls-lisp-dirs-first t)
(setq resize-mini-windows nil)
(setq cursor-in-non-selected-windows nil)
(auto-image-file-mode)
(setq-default line-spacing 0)
(scroll-bar-mode nil)
(setq default-frame-alist
      (cons '(cursor-type . box) default-frame-alist))
(setq visible-bell t)
(setq directory-free-space-program nil)



;;; font-lock-mode
(setq default-frame-alist
      (append '((font . "fontset-12")) default-frame-alist))
(global-font-lock-mode t)



;;; japanese environment (input method, encoding, and fonts)
(set-language-environment "Japanese")
(set-default-coding-systems 'sjis)
(set-keyboard-coding-system 'sjis)
(set-terminal-coding-system 'sjis)
(setq network-coding-system-alist
      '(("nntp" . (junet-unix . junet-unix))
        (110 . (no-conversion . no-conversion))
        (25 . (no-conversion . no-conversion))))

;;; no need for mule-ucs!
;(utf-translate-cjk-mode 1)

;;; ime
(if (not (null window-system))
    (progn
      (setq default-input-method "japanese-egg-canna")
      (setq canna-hostname "localhost")
      (setq its-hira-comma ",")
      (setq its-hira-period "。")
      (load-library "egg")))



;;; shell
(setq exec-path
      (mapcar
       'expand-file-name
       (list
        "~/bin"
        "/usr/local/bin"
        "/usr/bin"
        "/bin"
        "/usr/X11R6/bin"
        )))
(setenv "MAKE_MODE" "unix")
(setenv "MANPATH" "/usr/local/netpbm/man:/usr/local/man:/usr/X11R6/man:/usr/share/man:/usr/man")
(setq explicit-shell-file-name "bash")



;;; clipboard
(global-set-key "\C-cw" 'cb-copy)
(global-set-key "\C-cy" 'cb-paste)
(defun cb-copy ()
  (interactive)
  (let ((coding-system-for-write 'shift_jis-dos))
    (shell-command-on-region (region-beginning) (region-end) "cat > /dev/clipboard" nil nil nil))
  (message ""))
(defun cb-paste ()
  (interactive)
  (let ((coding-system-for-read 'shift_jis-dos))
    (goto-char
     (+ (point) (cadr (insert-file-contents "/dev/clipboard"))))))



;;; emacsclient
(server-start)



(put 'narrow-to-region 'disabled nil)



;; key-binding
(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\C-x\?" 'describe-key)
(global-set-key "\C-z" 'scroll-down)
(global-set-key "\M-r" 'query-replace)
;(global-set-key "\C-M-r" 'query-replace-regexp)
;(global-set-key "\C-\/" 'undo)
(global-set-key "\C-\\" 'toggle-input-method)
(global-set-key [end] 'end-of-buffer)
(global-set-key [home] 'beginning-of-buffer)
(global-set-key [henkan] 'toggle-input-method)

.exrc

viの設定。

set tabstop=8
set showmode
set autoindent
set number
set showmatch
set ignorecase
set nobackup

.vimrc

vimの設定。

set enc=japan
set encoding=shift_jis
:set ttyfast

.xinitrc

DISPLAY=localhost:0.0を設定する。好きなウィンドウマネージャーに変更する。

#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

cd

# log
#exec > .xinitrc.log 2> .xinitrc.log

# environmental variables
export LANG=ja_JP.SJIS
export LC_CTYPE=ja_JP.SJIS
export XMODIFIERS='@im=kinput2'
export PATH=/usr/local/netpbm/bin:/usr/X11R6/bin:/usr/bin:/bin:/usr/local/canna/bin
export DISPLAY=localhost:0.0

# function killall()
killall() {
  ps -as | grep $1 | while read line
  do
    set $line
    kill $1
  done
}

# start cannaserver
cannaserver=echo
cannakill=echo
if [ -f /usr/sbin/canna2imm32.exe ]; then
    cannaserver="/usr/sbin/canna2imm32 -nolog -inet"
elif [ -f /usr/local/canna/sbin/cannaserver.exe ]; then
    cannaserver=/usr/local/canna/sbin/cannaserver
    cannakill=/usr/local/canna/sbin/cannakill
elif [ -f /usr/sbin/cannaserver.exe ]; then
    cannaserver=/usr/sbin/cannaserver
    cannakill=/usr/sbin/cannakill
fi
$cannakill
rm -rf /tmp/.iroha_unix
$cannaserver

# the keyboard layout is determined automatically.
#setxkbmap jp
#setxkbmap us
if [ -f $HOME/.Xresources ]; then
    xrdb -override $HOME/.Xresources
fi
if [ -d $HOME/.ttfonts ]; then
    xset fp+ $HOME/.ttfonts
fi

kinput2 -canna &
#if [ -f $HOME/.canna ]; then
#    kinput2 -canna -cannafile $HOME/.canna &
#else
#    kinput2 -canna &
#fi

# start some programs
#kterm -geometry +5+5 -title 'kterm' -km euc -e bash &
#xsetroot -solid DarkSlateBlue &

# window manager
#twm &
#wmaker &
#openbox &
blackbox &
#fvwm2 &

# terminal
kterm -e bash --login

# kill allprograms
killall kterm
$cannakill
# if cannakill could not terminate cannaserver...
killall $cannaserver
rm -rf /tmp/.iroha_unix

.Xdefaults

お好みで。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! common
*cursorColor: DarkOrange
*customization: -color
*conversionOnKeys: Henkan
*.VT100.Translations: #override\n\
        <KeyPress>Prior: scroll-back(1, line)\n\
        <KeyPress>Next: scroll-forw(1, line)
*VT100*translations:#override \
 Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION) \n\
 <Key>Kanji: begin-conversion(_JAPANESE_CONVERSION)



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! kinput2
!!
Kinput2*conversionServer: canna
Kinput2*cannahost: localhost
Kinput2*ConversionStartKeys: Shift<Key>space
*KinputProtocol.BackwardCompatible: true
*KinputProtocol.XlcConversionStartKey:  Shift<Key>space
Kinput2*useOverrideShellForMode: true

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! kterm
!!
KTerm*kanjiMode: sjis
KTerm.VT100.geometry: 80x20
KTerm*scrollBar: True
KTerm*saveLines: 500
KTerm*background: black
KTerm*foreground: white
KTerm*allowSendEvents: true
KTerm*VT100*openIm: True
KTerm*fontList:-*-fixed-medium-r-normal--16-*,\
               -*-fixed-medium-r-normal--16-*,\
               -*-fixed-medium-r-normal--16-*


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! xterm
!!
XTerm*utf8: 1
XTerm.vt100.geometry: 80x30
XTerm*scrollBar: yes
XTerm*rightScrollBar: yes
XTerm*jumpScroll: false
XTerm*reverseVideo: true
XTerm*saveLines: 500



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! rxvt
!!
rxvt*multichar_encoding: sjis
rxvt*geometry: 80x30+10+10
rxvt*scrollBar: True
rxvt*scrollBar_right: True
rxvt*scrollstyle: next
rxvt*reverseVideo: True
rxvt*visualBell: True
rxvt*saveLines: 500
rxvt*linespace: 2



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! emacs, xemacs
!!
Emacs.Font: fontset-standard
Emacs*useXim: True
Emacs*inputMethod: kinput2 
Emacs.geometry: 80x45

その他

bash起動時に/usr/bin/tr: No such file or directoryなどと表示されるときは、/etc/profileの83行目付近でtrやsedのパスが間違っているので直す。

スクリーンショット

日本語マニュアルを表示
man lessの表示結果
XでVMware上のFreeBSDにログインし、sylpheedを起動した図
cygwin02.png

転載元リソース情報

URI
URI:http://elastic965.80code.com/blog/2006/08/cygwin
作成日
2006年08月06日

2008年5月19日

案内

広告

広告