2013年10月13日

Debian GNU/Linux 7 ことはじめ

Debian GNU/Linux 7 を最小構成からインストールしてみたので、このブログを
書くまでの手順を晒す。

USBメモリからdebianをインストールして、「ソフトウェアの選択」を全て外し
た状態でスタートした。そのままインストールするとブートローダーがUSBメモ
リに入ってしまって困ったが、ブートローダーのインストール時に無理矢理
USBメモリを引っこ抜いて対処した。だって、分かんないんだもん。致命的なエ
ラーと言われたが、そのまま再設定でうまくいったし。

PC は acer one D257-A71C/KF。

Wheezy で、lxde,urxvt-256color, emacs24.3, Mew6.5, ddskk15.1(azik) な環
境づくり。

non-free の firmware-brcm80211とfirmware-realtekを入れないと、wireless
がたぶん動かないけど、それは後日やる。

* aptitude
===
apt-get install aptitude
aptitude update
aptitude upgrade
===
* gui,emacs23
===
aptitude install xorg lxde ttf-vlgothic emacs
reboot
===
* sudo
===
su
adduser clothoid sudo
reboot
===
* keybord
===
sudo aptitude install console-data
dpkg-reconfigure console-data
===
* emacs2clipboad
emacs で以下を評価しておかないと、コピペつらい。
===
;; @ クリップボード転送ができないことがある。
(cond (window-system (setq x-select-enable-clipboard t)))

;; Emacs の外へのコピペ・外からのコピペ (24.2以降?)
;; http://at-aka.blogspot.co.uk/2012/12/emacs-242-emacs.html?spref=tw
(setq x-select-enable-primary t)
===
* keymap
** .Xmodmap
#+BEGIN_SRC :results silent :tangle ~/.Xmodmap
keysym Alt_L = Hyper_L

! Caps_LockとCtrlの入れ換え
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

clear mod1
! 無変換キーをAltに
keycode 102 = Alt_L
! カタカナひらがな→Alt
keycode 101 = Alt_L
add mod1 = Alt_L

! 右AltをCtrlに
clear control
keycode 108 = Control_R
add control = Control_L Control_R
#+END_SRC
** ログイン時に有効化
#+BEGIN_SRC emacs-lisp :results silent :tangle ~/.xsession
xmodmap $HOME/.Xmodmap
#+END_SRC
** 設定反映
===
xmodmap ~/.Xmodmap
===
* paco
===
sudo aptitude install paco
===
* urxvt-256color,xsel,git
** install
===
sudo aptitude install rxvt-unicode-256color xsel git
git clone git://github.com/muennich/urxvt-perls.git ~/.urxvt/urxvt-perls
===
** 設定ファイル
#+BEGIN_SRC emacs-lisp :results silent :tangle ~/.Xresources
! ターミナルの名前
urxvt*termName: rxvt

! フォントの設定
! Ritcy Discord,サイズ12,アンチエイリアスON
urxvt.font: xft:Ricty Discord:size=12:antialias=true
urxvt.boldFont: xft:Ricty Discord:Bold:size=12:antialias=true
URxvt.italicFont: xft:Ricty Discord:Bold:size=12:antialias=true
URxvt.boldItalicFont: xft:Ricty Discord:Bold:size=12:antialias=true

! スクロールバーなし
urxvt.scrollBar: false

! 履歴に残す数
urxvt.saveLines: 256

! 背景色
urxvt*foreground:green3

! 前景色
urxvt*background:black

! その他の色の設定
URxvt.color0: #000000
URxvt.color1: #FF4500
URxvt.color2: #9ACD32
URxvt.color3: #DAA520
URxvt.color4: #D2691E
URxvt.color5: #ff00ff
URxvt.color6: #40E0D0
URxvt.color7: #d9d9d9
URxvt.color8: #d2691e
URxvt.color9: #ff0000
URxvt.color10: #00ff00
URxvt.color11: #ffff00
URxvt.color12: #87ceff
URxvt.color13: #ff00ff
URxvt.color14: #00ffff
URxvt.color15: #00ff00

! input with IM at cursor position
urxvt.preeditType: OverTheSpot

! カスタマイズ用のファイルの場所をフルパスで指定
URxvt.perl-lib:/home/clothoid/.urxvt/urxvt-perls/

! 各ファイルをカンマ区切りで読み込む
URxvt.perl-ext-common: keyboard-select,url-select,clipboard

! キーボードセレクトモードを使う
URxvt.keysym.M-Escape: perl:keyboard-select:activate

! サーチモードを M-s に割り当てる
URxvt.keysym.M-s: perl:keyboard-select:search

! url セレクトモードを使う
URxvt.keysym.M-u: perl:url-select:select_next
! マウスの左クリックで url を開く (デフォルトは 2)
URxvt.url-select.button:1
! url は firefox の新しいタブで開く
URxvt.url-select.launcher:firefox -new-tab
! url にはアンダーラインをつける
URxvt.url-select.underline:true

! クリップボードにキーバインドを割り当てる
URxvt.keysym.C-w: perl:clipboard:copy
URxvt.keysym.C-y: perl:clipboard:paste
URxvt.keysym.M-C-y: perl:clipboard:paste_escaped
#+END_SRC
** 設定反映
コマンドは以下
===
xrdb -merge ~/.Xresources
===
* emacs24 install
===
cd
sudo aptitude build-dep emacs
sudo aptitude install libmagickwand-dev libselinux1-dev libgnutls-dev libxml2-dev
wget http://ftp.heanet.ie/mirrors/gnu/emacs/emacs-24.3.tar.gz
tar xzvf emacs-24.3.tar.gz
cd emacs-24.3
./configure --without-xim
===

errorが出た
===
checking for libXaw... configure: error: No X toolkit could be found.
If you are sure you want Emacs compiled without an X toolkit, pass
--with-x-toolkit=no
to configure. Otherwise, install the development libraries for the toolkit
that you want to use (e.g. Gtk+) and re-run configure.
===

===
sudo aptitude install autoconf automake texinfo
sudo aptitude install libncurses5-dev libxpm-dev libgif-dev libqt4-dev libgtk-3-dev
./configure --without-xim
make bootstrap
sudo paco -D make install
===

* ddskk 15.1 install
===
mkdir ~/app
cd app
wget http://openlab.ring.gr.jp/skk/maintrunk/ddskk-15.1.tar.gz
wget http://openlab.ring.gr.jp/skk/maintrunk/ddskk-15.1.tar.gz.md5
md5sum
-c ddskk-15.1.tar.gz.md5
tar xzvf ddskk-15.1.tar.gz
cd ddskk-15.1/
sudo aptitude install make
make what-where
cd dic/
wget http://openlab.ring.gr.jp/skk/skk/dic/SKK-JISYO.L
~/app/ddskk-15.1/etc/skk2cdb.py
SKK-JISYO.L.cdb SKK-JISYO.L
cd .. && sudo paco -D make install
===

* mew install
===
cd
sudo aptitude install stunnel4
cd ~/app
git clone git://github.com/kazu-yamamoto/Mew.git
cd Mew/
git pull
./configure
make
sudo paco -D make install
sudo make install-jinfo
===
* emacs24 setting
** init.el
#+BEGIN_SRC emacs-lisp :results silent :tangle ~/.emacs.d/init.el
; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-
;; @ Emacs 24のおまじない
(setq-default bidi-display-reordering nil bidi-paragraph-direction (quote left-to-right))

;; @ クリップボード転送ができないことがある。
(cond (window-system (setq x-select-enable-clipboard t)))

;; @ format-spec
(require 'format-spec)
(defun format-emacs-version (fmt)
"Replace %M:emacs-major-version, %m:emacs-minor-version in FMT."
(format-spec fmt `((?M . ,emacs-major-version)
(?m . ,emacs-minor-version))))

;; Emacs の外へのコピペ・外からのコピペ (24.2以降?)
;; http://at-aka.blogspot.co.uk/2012/12/emacs-242-emacs.html?spref=tw
(setq x-select-enable-primary t)

;; -----------------------------------------------------------------------
;; @ddskk
;; (find-file "~/app/ddskk-15.1/etc/dot.emacs")

;; @@ keybind
(setq orig-binding (key-binding "\C-j"))
(progn
(global-set-key "\C-j" nil)
(global-set-key "\C-j" 'skk-mode)
)
;; (global-set-key "\C-j" orig-binding)


;; @@ 基本の設定

;; カタカナ/ひらがな キーで SKK を起動する
(global-set-key [hiragana-katakana] 'skk-mode)

;; ~/.skk にいっぱい設定を書いているのでバイトコンパイルしたい
(setq skk-byte-compile-init-file t)
;; 注) 異なる種類の Emacsen を使っている場合は nil にします

;; SKK を Emacs の input method として使用する
;; C-\ で DDSKK が起動します
(setq default-input-method
"japanese-skk" ; (skk-mode 1)
;; "japanese-skk-auto-fill" ; (skk-auto-fill-mode 1)
)

;; SKK を起動していなくても、いつでも skk-isearch を使う
(setq skk-isearch-mode-enable 'always)

;; @@ 応用的な設定

;; migemo を使うから skk-isearch にはおとなしくしていて欲しい
(setq skk-isearch-start-mode 'latin)

;; YaTeX のときだけ句読点を変更したい
(add-hook 'yatex-mode-hook
(lambda ()
(require 'skk)
(setq skk-kutouten-type 'en)))

;; 文章系のバッファを開いた時には自動的に英数モード(「SKK」モード)に入る
(let ((function #'(lambda ()
(require 'skk)
(skk-latin-mode-on))))
(dolist (hook '(find-file-hooks
;; ...
mail-setup-hook
message-setup-hook))
(add-hook hook function)))

;; Emacs 起動時に SKK を前もってロードする
(setq skk-preload t)
;; 注) skk.el をロードするだけなら (require 'skk) でもよい。上記設定の
;; 場合は、skk-search-prog-list に指定された辞書もこの時点で読み込んで
;; 準備する。Emacs の起動は遅くなるが,SKK を使い始めるときのレスポンス
;; が軽快になる。

;; ---------------------------------------------------------
;; @mew
(add-to-list 'load-path
"/usr/local/share/emacs/site-lisp/mew")

;;; どんな容量でもダウンロードしてしまう。
(setq mew-pop-size 0)
(setq mew-imap-size 0)

(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)

(setq mew-ssl-verify-level 0)

;; パスワードをメモリに記憶する
(setq mew-use-cached-passwd t)

;; 自動取得する
(setq mew-use-biff t)
;; 自動間隔(分)
(setq mew-pop-biff-interval 10)

;; 起動時取得
(setq mew-auto-get nil)
;; 引用付き返信を行なった場合のカーソル位置を引用文の文頭に
(defvar mew-message-insert-last-message-hook nil)
(defun mew-draft-mode-newdraft-hook0 ()
(delete-other-windows)
(when (memq this-command '(mew-summary-reply-with-citation))
(run-with-timer
0.3 nil
(lambda ()
(run-hooks 'mew-message-insert-last-message-hook)
;; body
(goto-char 1)
(search-forward "\n----" nil t)
(forward-line 5) ;先頭からどれだけ下げるか
(when (eobp)
(goto-char (point-min))
(end-of-line))
(set-window-start (selected-window) 1)))))
(add-hook 'mew-draft-mode-newdraft-hook 'mew-draft-mode-newdraft-hook0)

;;署名の自動挿入(ホームディレクトリに.signatureを作っておく)
(add-hook 'mew-draft-mode-newdraft-hook
(function
(lambda ()
(let ((p (point)))
(goto-char (point-max))
(insert-file "~/.signature")
(goto-char p)))))
#+END_SRC
** .skk
#+BEGIN_SRC emacs-lisp :results silent :tangle ~/.skk
; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-

;; @@ 基本中の基本の設定

;; SKK が検索する CDB 形式辞書 (DDSKK 14 以降)
(setq skk-cdb-large-jisyo "/usr/share/skk/SKK-JISYO.L.cdb")

;; ja-dic.el を利用したかな漢字変換(DDSKK 14.2〜)を無効とする
(setq skk-inhibit-ja-dic-search t)

;; 前候補/前候補群に戻る操作
(setq skk-previous-candidate-keys (list "x" "\C-p"))

;; @@ 表示の設定

;; 各種メッセージを日本語で通知する
(setq skk-japanese-message-and-error t)

;; 変換時に注釈 (annotation) を表示する
(setq skk-show-annotation
t ; 常に表示
)

;; 注釈を表示するまでの遅延を秒で指定する
(setq skk-annotation-delay 0)

;; 変換前/変換中にエコーエリアに冗長なメッセージを表示
(setq skk-verbose t)

;; @@ 基本的なユーザ・インターフェース

;; ▼モードで Enter キーを押したとき
;; nil => 確定と改行(デフォルト)
;; non-nil => 確定するのみ。改行しない。
(setq skk-egg-like-newline t)

;; 対応する閉括弧を自動的に挿入する
(setq skk-auto-insert-paren t)

;; 動的な補完を使う
(setq skk-dcomp-activate t)

;; @@ 変換動作の調整

;; 送り仮名が厳密に正しい候補を優先して表示する
(setq skk-henkan-strict-okuri-precedence t)

;; 辞書登録のとき、余計な送り仮名を送らないようにする
(setq skk-check-okurigana-on-touroku 'auto)

;; 変換の学習
(require 'skk-study)

;; @@ 検索に関連した設定

;; look コマンドを使った検索を行う
(setq skk-use-look t)

(when skk-use-look
;; look が見つけた語を見出し語として検索する
(setq skk-look-recursive-search t)
;; ispell を look と一緒に使うのはやめる
(setq skk-look-use-ispell nil)
;; look に渡すコマンドラインオプションの設定。補完時と検索時それぞれに
;; ついて設定できる。
;; look で case を見るときは、それ専用の辞書を sort コマンドで作る必要
;; がある (look の引数 -d, -f は sort の引数 -d, -f と一致させておく必
;; 要がある)。
;; (*) 補完時には引数 -d を指定すると dcomp との併用時に問題あることが
;; 報告されているため、-d を指定しないことをお勧めします。
(setq skk-look-completion-arguments "%s /usr/share/dict/words")
(setq skk-look-conversion-arguments "-df %s /usr/share/dict/words")
;; `skk-abbrev-mode' で skk-look を使った検索をしたときに確定情報を
;; 個人辞書に記録しないようにする
(add-hook 'skk-search-excluding-word-pattern-function
;; KAKUTEI-WORD を引数にしてコールされるので、不要でも引数を取る
;; 必要あり
#'(lambda (kakutei-word)
(and skk-abbrev-mode
(save-match-data
;; `skk-henkan-key' が "*" で終わるとき、または
;; `skk-henkan-key' が数字のみのとき
(or (string-match "\\*$" skk-henkan-key)
(string-match "^[0-9]*$" skk-henkan-key)))))))

;; 数値変換機能を使う
(setq skk-use-numeric-conversion t)

(when skk-use-numeric-conversion
;; 数値変換の検索から除外する辞書検索プログラムを指定する
(setq skk-non-numeric-prog-list
'(skk-look
skk-tankan-search
(skk-search-jisyo-file "/usr/share/skk/SKK-JISYO.jinmei" 10000))))

;; Lookup を利用した変換を行う
(if (featurep 'skk-lookup)
(setq skk-search-prog-list (skk-nunion skk-search-prog-list
'((skk-lookup-search)))))

;; 送りあり変換を送りなし変換と同じ操作でできるようにする
(setq skk-auto-okuri-process t)

;; カタカナ語を変換候補に加える。1、2 を好みで選んでください
;; 例 1) 単純にカタカナに変換したものを加える
;; (setq skk-search-katakana t)
;; 例 2) 全角カタカナの候補と半角カタカナの候補を共に加える
(setq skk-search-katakana 'jisx0201-kana)
;; 注) `skk-search-prog-list' を手動で設定している場合はこの機能の
;; 動作は保証されません。

;; サ行変格活用の動詞も送りあり変換出来るようにする
(setq skk-search-sagyo-henkaku t)
;; 注) `skk-search-prog-list' を手動で設定している場合はこの機能の
;; 動作は保証されません。

;; 単漢字変換を行う ▽よみ@<SPC>
;; DDSKK 14.2 からは特段の設定の必要なしに標準で単漢字変換が行えます。
(set-face-attribute 'skk-tankan-face nil
:foreground "yellow"
:height 150)

(set-face-foreground 'skk-tankan-radical-name-face
"gray40")

;; Microsoft Windows の IME のようにファンクションキーにいくつかの変換機能を割り当てる
;; conversion => skk-search-prog-list-{1-9,0} を実行できる。
;; kanagaki => かなキーボード入力用の設定になる。
;; nil => 自動設定しない(自分で好きな設定ができる) デフォルト
(setq skk-j-mode-function-key-usage 'conversion)
;; 注) 標準では以下の変換機能が割り当てられます。
;; [F5]単漢字 [F6]無変換 [F7]カタカナ [F8]半角カナ [F9]全角ローマ [F10]ローマ
;; (setq skk-verbose t) と併用すると上記の割り当て情報がメッセージされます。

;; @@ かな入力関連の設定

;; 半角カナ入力メソッドを使う
(setq skk-use-jisx0201-input-method t)

;; @@ 個人辞書に関する設定

;; 複数の Emacsen を起動して個人辞書を共有する
(setq skk-share-private-jisyo t)

;; 10 分放置すると個人辞書が自動的に保存される設定
(defvar skk-auto-save-jisyo-interval 600)
(defun skk-auto-save-jisyo ()
(skk-save-jisyo)
;; skk-bayesian.el を使っていなければ以下の 2 行はコメントアウト
;; (skk-bayesian-save-history)
;; (skk-bayesian-corpus-save)
)
(run-with-idle-timer skk-auto-save-jisyo-interval
skk-auto-save-jisyo-interval
'skk-auto-save-jisyo)
;; (cancel-function-timers 'skk-auto-save-jisyo)

;; 単語登録/単語削除のたびに個人辞書を保存する
(setq skk-save-jisyo-instantly t)

;; @@ 辞書登録に関する設定

;; @@ SKK abbrev mode
;; 見出し語の補完において Lisp シンボルも補完する
(add-to-list 'skk-completion-prog-list
'(skk-comp-lisp-symbol) t)

;; @@ その他いろいろ

;; かなモードで、モード変更を行なわずに
;; 長音(ー)を ASCII 数字の直後では `-' に、全角数字の直後では `−' に
;; 句点(。)を ASCII 数字の直後では `.' に、全角数字の直後では `.' に
;; 読点(、)を ASCII 数字の直後では `,' に、全角数字の直後では `,' に
(setq skk-rom-kana-rule-list
(append '(("-" nil skk-hyphen)
("." nil skk-hyphen)
("," nil skk-hyphen))
skk-rom-kana-rule-list))

(defun skk-hyphen (arg)
(let ((output (cdr (assq (skk-last-command-char)
'((?- . ("ー" "-" "−" "ー"))
(?, . ("、" "," "," "、"))
(?. . ("。" "." "." "。"))))))
(c (char-before (point))))
(cond ((null c) (nth 0 output))
((and (<= ?0 c) (>= ?9 c)) (nth 1 output))
((and (<= ?0 c) (>= ?9 c)) (nth 2 output))
(t (nth 3 output)))))

;;
(define-key skk-j-mode-map (kbd "M-,") 'skk-toggle-kutouten)
(define-key skk-j-mode-map (kbd "C-M-j") 'skk-undo-kakutei)

;; `$' skk-display-code-for-char-at-point で使用するフェイス
(set-face-attribute 'skk-display-code-prompt-face nil
:foreground "cyan"
:bold t)

(set-face-attribute 'skk-display-code-char-face nil
:height 150
:foreground "white"
:background "black")

;; AZKI
;; http://d.hatena.ne.jp/rubikitch/20101101/azik
(setq skk-use-azik t)
; 英語キーボードの場合は 'en を指定
(setq skk-azik-keyboard-type 'jp106)

#+END_SRC
** .mew.el
#+BEGIN_SRC emacs-lisp :results silent :tangle ~/.mew.el
; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-

; Stunnel
(setq mew-prog-ssl "/usr/bin/stunnel4")

;; IMAP 用
(setq mew-proto "%")
(setq mew-user "hogehoge@gmail.com")
(setq mew-mail-domain "gmail.com")

(setq mew-imap-server "imap.gmail.com")
(setq mew-imap-user "hogehoge@gmail.com")
(setq mew-imap-auth t)
(setq mew-imap-ssl t)
(setq mew-imap-ssl-port "993")
(setq mew-smtp-auth t)
(setq mew-smtp-ssl t)
(setq mew-smtp-ssl-port "465")
(setq mew-smtp-user "hogehoge@gmail.com")
(setq mew-smtp-server "smtp.gmail.com")
#+END_SRC
** ~/.signature
#+BEGIN_SRC emacs-lisp :results silent :tangle ~/.signature
clothoid
#+END_SRC

0 件のコメント:

コメントを投稿