====== CYGWIN ====== Windows上にLinux環境を入れる方法は - [[http://www.vmware.com/jp/products/player/|VMware player]]でLinuxを動かす。 - [[http://wubi-installer.org/|Wubi]]でubuntu環境をwindoows上にインストール - [[http://www.cygwin.com/|Cygwin]]でなんちゃってLinux環境を構築する。 - [[http://www.mingw.org/|MinGW]]でなんちゃってLinux環境を構築する。 という方法がある。 * gfortranプログラムを動かすだけであれば、3.Cygwin か4.MinGW で十分。 * Lapackなんかをmakeする場合は3.Cygwinが一番手っ取り早そう。ということでCygwinをインストール。 ===== Cygwinの特徴 ===== * windowsとフォルダが共有できる。(VMware Playerではwindows側から見れないFIXME。) * さくさく動く(VMware Playerはメモリが少ないともっさりする。) * makeが簡単。(MinGWは面倒くさそう。ネットを見る限りでは) * intelのLinux版コンパイラが入らない。 ===== インストール ===== ネット収集した情報をもとにインストール。以下、そのまとめ。 * [[http://www.cygwin.com/]]からsetup.exeをダウンロード * setup.exeの実行。サーバーはjpから選択。 * パッケージの選択。 |Math |gnuplot | | | |bc | | |Devel |gcc4-gfortran |fortranコンパイラ | | |gdb |デバッガ | | |make |lapackやslatecをインストールするため | |Editors |emacs-x11 | | | |emacs-el | | | |vim | | |Net |ncftp | | | |openssh | | |Web |wget |プロキシの設定は/etc/wgetrcか~/.wgetrc | |X11 |X-start-menu-icons |startxwin.batなどをインストール | | |font-adobe-dpi75 | | | |font-adobe-dpi100 | | | |font-misc-misc | | | |font-sony-misc | | | |font-jis-misc | | | |gv | | | |xorg-server | | | |xterm | | * 環境変数の設定 windows側で環境設定 |HOME |C:\cygwin/c/home/hoge | hogeのところに自分のアカウントを. * .bashrcの設定 そのままでは.bashrcを見に行かないので、.bash_profileに以下のように書き込む((こんな感じで。 HOMEの設定はwindows側の環境変数でされているのでなくてもよい. $ echo "source ~/.bashrc" > ~/.bash_profile))。 source ~/.bashrc .bashrcの中身 if [ -f /etc/bashrc ]; then . /etc/bashrc fi export SHELL=/bin/bash export HOME=/home/hoge export TMPDIR=/tmp export TZ=JST-09 export MAKE_MODE=unix PATH=/usr/local/sbin:/usr/sbin:/sbin:.:~/bin PATH=/usr/local/bin:/usr/X11R6/bin:/usr/bin:/bin:$PATH PAGER=less JLESSCHARSET=japanese-sjis export PATH PAGER JLESSCHARSET PS1="$HOSTNAME:\w$ " if [ -n ${DISPLAY} ]; then export DISPLAY=localhost:0.0 fi if [ ! -n "${TERM}" ]; then TERM=cygwin fi alias rm="rm -i" alias cp="cp -i" alias mv="mv -i" * cygwin/bin/startxwin.batでxtermが起動する。 * デスクトップにショートカットを作っておくと便利。 ===== lapackのインストール ===== * gcc4-gfortranとmakeが必要。 * 基本的にはubuntuと同じようにできる。[[fortran:netlib#lapack]] * compilerをgfortran-4.exeとする必要がある。 xterm上で以下を実行。 $ wget http://www.netlib.org/lapack/lapack-3.1.1.tgz $ tar xzvf lapack-3.1.1.tgz $ cd lapack-3.1.1/ $ cp INSTALL/make.inc.gfortran ./make.inc make.incを変更。 PLAT = _CYGWIN (略) FORTRAN = gfortran-4.exe OPTS = -O2 DRVOPTS = $(OPTS) NOOPT = -O0 LOADER = gfortran-4.exe LOADOPTS = $ make blaslib $ make lapacklib $ make tmglib blas_CYGWIN.a, lapack_CYGWIN.a, tmglib_CYGWIN.aなどのライブラリができる。 Liblaryパスを通すなり、一緒にコンパイルするなりして使う。 ===== pgplot ===== 書きかけ #!/usr/bin/sh g77 #1 /usr/local/pgplot/libpgplot.a -X11 -Xm ===== .emacs.el ===== ;;; -*- mode: emacs-lisp; syntax: elisp -*- ;;; ;;; .emacs.el ;;; (setenv "LANG" "C") (setenv "TZ" "JST-9") (setenv "RCSINIT" "-z+09:00") ;;; cygwin "df" always checks the floppy drives, which is annoying ;;; in the dired mode. (setq directory-free-space-program nil) ;;; misc settings (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) ;;; 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) ;;; make splash-screen visible, which is not shown if server-start is ;;; used. please refer ;;; http://tsukuba.m17n.org/mule-ja-archive/2002-3/msg00006.html. (add-hook 'emacs-startup-hook '(lambda nil (if (and (string-equal "*scratch*" (buffer-name)) (zerop (buffer-size))) (display-splash-screen)))) ;;; custom (use M-x customize-option) (load-library "custom") (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(archive-zip-use-pkzip nil) '(auto-compression-mode t nil (jka-compr)) '(diff-switches "-u")) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. ) (put 'narrow-to-region 'disabled nil) (mouse-wheel-mode t) (setq mouse-wheel-follow-mouse t) (set-terminal-coding-system 'sjis-dos) (set-keyboard-coding-system 'sjis-dos) (set-language-environment "Japanese") (set-buffer-file-coding-system 'sjis-dos) (set-selection-coding-system 'sjis-dos) (set-next-selection-coding-system 'sjis-dos)