早崎トップ 研究(気候気象) 研究(大気汚染) データリスト Linux Tips Mac Tips

Linux個人設定 (研究用途)

インストール/アップグレード前の準備

Linux だけをインストールしてある計算機であることが前提. デュアルブートなど設定が面倒だし,2つのOSをインストールしても結果的に メインで使うのは一つになる(私の場合). 2つのOSを使いたいのなら,エミュレータ上で動かすか, PC2台用意する方がはるかにマシ.

個人的経験に基づく習慣だが, 既存Linuxをアップグレードする場合でも,

可能な限り新規インストールをお薦めする.

アップグレードインストールは, 想定外のトラブルの原因になりやすい. 仕事で使う計算機なら,トラブル発生による仕事の遅延は最も避けたい. そこで,これまで使用していたHDDは安全のために取り外して保存, まっさらな新規HDDへインストールする方が良いと思う.

過去ファイルを参照したいときには, 取り外して保管してある旧システムのHDDを外付けHDDとして接続,マウントする (See also HDD 取扱メモ (hysk))

事前バックアップしておいた設定ファイルなどは, 本来の置き場所とは異なるディレクトリ階層に展開する.

なお,新システムの同一箇所に丸ごと上書きコピー,というやり方はお薦めしない. バージョンアップに伴い, 設定ファイル書式を変更している可能性がある. 安定稼働を最優先するなら,面倒でもパラメータを確認しながら手作業でコピーする.

  事前バックアップとるモノ

特に重要なのは,以下の3箇所:

  • /etc
  • /var
  • /home

これらは,インストール前にバックアップをしておく. とはいえ,インストール時には忘れている事が多いので, cron などで自動バックアップしておくのが無難. See also システム管理関連 > /etc & /var 自動バックアップ

インストール時

 パーティション設定方針 (version: 2012-06-23)

  • デフォルト設定 (/ と /boot だけ)に比べ,かなり細分化する(理由は後述)
  • 実使用量は,私がデータ解析で使用しているデスクトップ機(CentOS 5.6 - 7.2 あたり)からの抜粋. 公開サーバ用途ではない. したがって,これを見た人が自分の計算機の使用目的も考えずに 下記のサイズを参考にすると,痛い目にあう(かもしれない). もし自分で使用目的を決められないなら,素直にデフォルト設定に従うべき
  • 研究で使う計算機(と周辺機器)の発展次第で,下記のパーティション設定を変更する. 実際,これまでにも何度も変更をしてきた. カギになるのは,HDD容量とバックアップメディア容量 (参考: /home 領域拡大の歴史).
パーティション設定の例(CentOS 7.x での実使用量から概算した必要量. 自分がメインの研究用に使ってるデスクトップPCでの運用実態を記録; check 2016-03-10)
パーティション名 目安サイズ 実使用量の目安 メモ
/ 20 - 30 GB ~7 GB ルート./usr も含む. / と /usr を分割する意味がほとんどない.CentOS 6.x から引き続き,7.x でも同様に一括指定. 使用量の大部分が /usr で占められている. 操作ミス等で filesystem full になる事態は避けたいので,大きめに設定.
/boot 500 MB 260 MB カーネルイメージ(initramfs-*)が6個置いてあり,27 ~ 39 MB程度. SSD でも数百GB,HDD なら数TBが使える現代では,ほぼ誤差範囲.
/tmp 11 GB -
(使用状況により大きく変動)
各種プログラムの一時使用領域. 平常使用時・アイドル時には,使用量が1 - 2%程度である事がほとんど. 暴走・誤作動による filesystem full を避けるため,/ とは分離. ただし,/tmp が溢れるようなトラブルは,過去6-7年間で経験なし (2016-03-10).
/usr/local/ 21 GB 13 GB 手動インストールなどで追加したプログラム・ライブラリ類 (GMT, NetCDF, HDF, TeX, ...)の置き場所. /usr とは分離するのが私の流儀. 同一ソフトのバージョン違いを併用することが多いため,使用量が大きくなる傾向にある. 使わなくなった古いバージョンは,(全てではなくても)一部削除すべき.
/var 14 GB ~2 GB ログ置き場 & RPMパッケージ置き場. 丸2年運用しても,ログは lotate で古いものが消えてるからおおきく変動しない. また,自分個人 web も /var/www に置いてないので,使用量が少なめ.
/home 45 GB 33 GB 最重要パーティション.自分の $HOME が6 - 7 GB, 自分PCのローカルWeb (外部非公開なので /home/ 以下に置いている)が max. 10 GBくらい. WRF など数値モデル関連は./home/model/ 以下において,/home/(マシン名)/hayasaki とは分離. 合計容量が BluRay (2層; 正味45GB程度)で1枚に収まるサイズを目安.
/data 使えるだけ全部. -- システムディスクとは物理的に異なる HDD に設定する. 現在(2016-03-10)は 6 TB HDD (4個)を搭載, 各HDDは結合しないのが私的な第一方針.ディスク障害時の被害を最小限にするため. ドライブ単体ごとに用途を分けて使用(保存用オリジナル,一時作業領域,加工データ置き場,など).

パーティション設定の例(CentOS 6.x での実使用量から概算した必要量; check 2014-02-24)
パーティション名 目安サイズ 実使用量の目安 メモ
/ 20 - 30 GB 4 - 6 GB ルート./usr も含む. / と /usr を分割する意味がほとんどないようなので,CentOS 6.x からは分離しないことにした. 使用量の大部分が /usr で占められている. 操作ミス等で filesystem full になる事態は避けたいので,大きめに設定.
/boot 300 - 500 MB 60 - 100 MB カーネルイメージ2つ置いて 60 MB程度. HDD単体で数TBが使える現代では,ほぼ誤差範囲.
/tmp 5 - 10 GB -
(使用状況により大きく変動)
各種プログラムの一時使用領域. 平常使用時・アイドル時には,使用量が1 - 2%程度である事がほとんど. 暴走・誤作動による filesystem full を避けるため,/ とは分離. ただし,/tmp が溢れるようなトラブルは,おそらく過去4-5年間は経験してない (2014-02-24).
/usr/local/ 15 - 30 GB 10 GB 弱 手動インストールなどで追加したプログラム・ライブラリ類 (GMT, NetCDF, HDF, TeX, ...)の置き場所. /usr とは分離するのが私の流儀. 同一ソフトのバージョン違いを併用することが多いため,使用量が大きくなる傾向にある.
/var 10 - 15 GB 1 - 2GB ログ置き場 & RPMパッケージ置き場.
/home 40 - 45 GB 30 - 25 GB 最重要パーティション.自分の $HOME が6 - 7 GB, 自分PCのローカルWeb (外部非公開なので /home/ 以下に置いている)が max. 10 GBくらい. 合計容量が BluRay (2層; 正味45GB程度)で1枚に収まるサイズを目安.
/data 使えるだけ全部 -- システムディスクとは物理的に異なる HDD に設定する.

パーティション設定の例(CentOS 5.x での実使用量から概算した必要量; check 2012-06-23)
パーティション名 目安サイズ 実使用量の目安 メモ
/ 8 - 10 GB せいぜい 1 GB 強 ルート. 操作ミス等で filesystem full になる事態は避けたいので,大きめに設定. ディスクに余裕がある場合は,/tmp も分割(数GB - 10GB程度). そうすれば,ルートファイルシステムが溢れる可能性はかなり低下する.
/boot 150 - 200 MB 20 - 60 MB カーネルイメージ5つ置いても60 MB程度. HDD単体で数TBが使える現代では,ほぼ誤差範囲.
/usr 10 - 15 GB 5 - 6 GB Desktop & Sever & Development Tools 入れると、6 GB 近くになる. なお,ディストリビューションによっては,/ と /usr との分割を許さないものもある(ex. Fedora 17). 個人的には大きなお世話なので,そのような流儀をとるものは使用しない. パーティション設定くらい,自分の流儀でやらせてくれよ...
/usr/local/ 15 - 30 GB 10 - 15 GB 個人的に追加したプログラム・ライブラリ類 (GMT, NetCDF, HDF, ...)の置き場所. /usr と一緒にしても良いが,昔からの習慣 & 個人的趣味の問題で分離. システムクラッシュなどが原因で同一バージョンを再インストールする場合, フォーマットせずに残せば,かなり素早く復旧できる. なお,アップデートインストールの際には, まっさらフォーマットすべき(これも個人的趣味・習慣の問題).
/var 10 GB 1 - 2GB ログ置き場 & RPMパッケージ置き場. CentOS デフォルトでは,www も /var 以下だが,個人的にはそこは好きじゃない. 外部非公開の自分用メモしか置いてないし, バックアップの容易さも勘案して置き場所を /home/ 以下に移動. だから,本来なら /var にこんなデカいスペース不要だが, 計算ジョブのログを大量に吐くこともあるので念のため.
/home 40 - 45 GB 30 - 25 GB 最重要パーティション.自分の $HOME が6 - 7 GB, 自分PCのローカルWeb (外部非公開なので /home/ 以下に置いている)が max. 10 GBくらい. 合計容量が BluRay (2層; 正味45GB程度)で1枚に収まるサイズを目安.
/data 使えるだけ全部 -- データ領域はいくらあっても不足. 使用者(研究スタイル)により,必要量は数オーダー異なるので, 「万人に受け入れられる目安容量」など,設定するのは不可能. ただし,オリジナルデータと自分が解析して得た二次処理データ置き場は 絶対に分離する(物理的に異なるHDDに置く)方が良い.

  その他,雑多な事

  • メインメモリが十分に多い(目安として4GB以上; 多分2010-2011年頃に書いた)なら,swap を作らない. 作らなくても十分に使える. むしろ,swap が存在するために, 勝手にswap in/out されてしまう(かもしれない)のが嫌だ.
  • /opt/ は使わない. インストール後に削除して,/usr/local/ に symbolic link を張る. /opt/ にインストールする流儀は好かん.
  • $HOME には,プログラム・スクリプト類とドキュメント類のみ置く. データの類も数MB程度までなら $HOME に置くこともあるが,あくまでもサンプルデータとして. 解析に使うデータは,全て /data/ 以下に置く. そうする事で,$HOME の肥大化を防ぐことが出来るし,その結果としてバックアップが容易になる. 私の研究スタイル(既存データの解析)での「本当に重要なファイル」は,データそのものではなく, データを処理するためのプログラム & 文書類であるため. なお,観測・分析屋さんのように, 「(自分が観測・分析で取得した)世界で唯一のデータ」を持っていたら, それは最優先のバックアップ対象である.
  • デフォルト設定では,自分にとっての重要パーティション (/home/ 以下 & /data/ 以下)の 使用容量を(df コマンドで)チェックできないのが嫌だ. パーティション細分化したことで,filesystem full になる可能性はデフォルトより高くなるが, 「異常事態(無限ループによる巨大ファイル作成とか?)になっていることを気づかずに使いつづける」 方が,私にとって恐い事なので.
  • 自分のメインマシンには LVM を設定しない. 構成がシンプルである方がメンテナンスが容易だし,システムトラブルの可能性も減らせる. ディスクの使用量が非効率(利用されない「無駄な」スペースが生じやすい)になるが, 自分の研究環境を正常に稼働させ続ける事を最優先とする.

インストール後

 インストール後の設定(概要版)

私の利用スタイルでのインストール後の設定(post install settings)は,おおよそ以下の手順:

  1. セキュリティ対策 (まずは /etc/host.deny などのアクセス制限などを. インストール直後が最も危険なので)
  2. sudo の使用許可(早い段階から自分のアカウントでも管理業務が出来るように)
  3. GNOME or Xfce デスクトップのデフォルトからの変更 (使い勝手が違うと作業効率悪くなる.精神的ストレスになる. これも早い段階で,「自分スタイル」に変更)
    • CapsLock を additional Ctrl key に割り付け
    • 「マウスが移動したウィンドウを選択」(Active window は,マウスカーソルの位置で決める)
    • ダブルクリック時: roll-up
    • 自分ルールの Function key 割り当て (F1: raise-lower, F2: minimize, F3: change window size, F4: move window
    • 特殊キーボードおよびマウスを使用してる時には,/etc/X11/xorg.conf を修正
  4. リモートアクセス関連の設定 (私は職場では複数の計算機を使用するのが普通. ある計算機のセットアップ中,他の計算機にリモートアクセスして, そこの環境設定をコピー & ペーストすることも多い. そのため,インストールの初期段階でネットワーク関連の情報を入れる)
    • 関係するホスト情報の記入(/etc/hosts に.記入すべきIPのリストを少しでも事前作成しておくと楽)
    • ~/.ssh/known_hosts を旧環境から新環境に移行.メインのデスクトップ機の設定時には, 公開鍵の再作成や ssh-agent 関連の設定も忘れるな)
    • slogin hoge をエイリアス化,~/.bashrc に追記
  5. ホスト名の設定.CentOS 7.x からは /etc/hostname に記述.
  6. 必要なサービスの追加,起動時のサービス開始の設定 (chkconfig or systemctl コマンド)
    • httpd (自分メモを自分PC内webに置いている. 自分自身が参照したいセットアップ情報がかなりたくさんあるので,早いうちに. daemon は yum install で良いが,conf の修正を早めに)
    • UPS管理(UPS監視デーモン.対象サーバの電源の安全確保のため)
      • OMRON製UPSの場合: (under costruction)
      • APC製UPSの場合: apcupsd
    • NTP/chrony 関連: (2020-12-15) CentOS 7系列から,ntpd ではなく chronyd が時刻合わせデーモン.設定ファイルの編集,リスタート,コマンド実行で終了.後は稼働し続ければ良いだけ. (Cent 7, 8系列ともに) sudo vi /etc/chrony.conf ; sudo systemctl enable --now chronyd ; sudo systemctl restart chronyd ; timedatectl ; chronyc sources
    • NTP 関連 (最初は時間のズレが大きいはずなので, ntpdate で強制的に時刻あわせ. 正確な時刻情報が必須のサーバ機の場合は,ntpd も起動)
    • samba (mobile PC との同期を取るため.Windows 機の場合は,ブリーフケースを設定して同期とる); MacOS に移行したので rsync で同期可能.これにより,samba も停止可能になった (2014-02-24).
    • proftpd: 自分用FTPサービス設定(ssh や samba 経由とは別手段でのアクセスも多い.研究室内でのデータ受け渡しも容易になる)
    • munin: 監視ツール設定(研究室共用マシンだと,やっておくと何かと便利なことが多い.後回しにしてると,つい忘れる)
  7. 手動インストールソフト・ライブラリの追加 (必要な環境変数を /etc/profile または /etc/profile.d/hoge.conf に追記).下記は実行順序
    1. 開発ツール関連のインストール (yum groupinstall を使用)
    2. Fortran 環境の準備 (NetCDF のインストール前に準備しておけ)
    3. HDF/HDF5 (衛星データ関連に多い.NetCDF のインストール前に実行必須)
    4. NetCDF (GMT に必須)
    5. GMT (自分が使うメイン作図ツール.必須.NetCDF インストール後,すぐにインストール)
    6. GrADS (バイナリ展開するだけなのですぐに終わる)
    7. wgrib/wgrib2 (急ぎだったらとりあえず yum install でも良いが,出来れば手動インストールしたい)
  8. プリンタ設定 (CUPS の設定.参照:プリンタの設定)
    ただし,使用OSが CentOS 6.x 以後(Feb2014以後)では,プリンタ設定しなくなった. Linux から「紙に印刷する」必要性がほとんど無くなったため.
  9. TeX設定 (TeX Live セットアップ. 計算機の移行期間前後で緊急に必要とする場合もあるので, 確実に動作する環境を別PCや VMware の仮想OS上に保持しておく.
  10. システム用 & 個人アカウントの crontab とスクリプトの復元. ネットワーク経由のデータ入手やそれを用いた計算などの自動化, 自作スクリプトのcron実行によるバックアップを設定
  11. (remote login hostの場合) run level の変更.

インストール後設定に関するメモ

上記の手順であれば,半日から1日で「とりあえずの作業環境構築」を終える. というか,終えねばならない. そんなに時間をかけたくない.

自分の場合,最初から「完全な環境構築」を目指すと,余計な時間を使ってしまう(暴走する)傾向もある. 最低限のセットアップ済めば,後は使いながら「気づいたときに設定」 というスタイルの方が,仕事が遅延する影響少ない.

  ログインシェルスクリプト

bash の場合,主に4つのファイルで構成されている(参照:日経Linux 2006年8月号,p.77).

ファイル名 説明
/etc/bashrc 全ユーザに対する共通設定.bash起動時に読み込まれる. ディストリビューションによっては,/etc/bash.bashrc
/etc/profile 全ユーザに対する共通設定.ログイン時に読み込まれる./etc/profile.d/ 以下のシェルスクリプトを実行(大抵のディストリビューションでは,/etc/profile の末尾付近にて実行されているはず)
~/.bash_profile ユーザごとの設定.ログイン時に読み込まれる
~/.bashrc ユーザごとの設定.bash 起動時(例: ターミナル起動時)に読み込まれる

これらのファイルに記述する設定項目は何でもよいのだが, 私個人のルールとして,以下のような使い分けをしている:

変数設定(例:PATH や MANPATH)
profile 関連ファイル(/etc/profile または ~/.bash_profile)
alias 設定など
bashrc 関連ファイル(/etc/bashrc または ~/.bashrc)

これも私個人のルールだが, 研究用途で利用するソフトウェア・ライブラリ群の環境変数 (PATH, MANPATH, LD_LIBRARY_PATH, その他ツール独自に多様なモノあり) であれば,/etc/profile に設定している. See also ちょっと便利なコマンド # ライブラリのサーチパス追加

家庭で使うとかノートPCで使う計算機であれば,~/.bashrc に記載しても 特に問題ない. しかし,大学の研究室などで使う共用計算機をセットアップする場合は, 上記のような 複数人が利用する可能性がある環境変数は /etc/profile に記載すべきだと思う.

私が .bashrc に設定を入れないもう一つの理由は,過去の経験にある. パスの設定など (PATH=/hoge/bin:$HOME のように既存変数に追加する形式)を bashrc 関連に入れると, bash 起動のたびに PATH 変数が長くなっていく場合があった (最近のLinuxディストリビューションではそうならない事が多いだろう. 個人的経験では,1990年代の FreeBSD or Linux などで『パスの無限増殖』を体験したように記憶)

  /etc 以下のシステム全般に関する設定

/etc/cron.daily

  • 計算機のスペックなどの情報バックアップ (サンプルスクリプト: setting_files.personal)
  • /var/spool/clientmqueue の掃除 (cleanup_clientmqueue; find により30日以上経過を削除)

/etc/hosts

  • ホスト名がデフォルト(localhost.localdomain)以外になっていたら,少なくとも自分自身のホスト名& IPアドレスだけでも追記しておく. 自分自身が登録されていない場合,proftpd 動作失敗の原因となる. See proftpd セットアップ (hysk)

  個人的な特殊用途に関係する設定

Samba 設定

  • 主な用途は,HOME の重要ファイルを Windows note PC のブリーフケースに同期させるため.
  • その他,note PC から Linux にアクセスして, 必要なデータ&プログラム類を Win の explorer でコピーする
    • ppt プレゼン資料の準備の際,画像ファイルを必要なものけ選択する時間が無いので, Linux 上で作成したものをディレクトリごとごっそりコピー. 会議・学会などでの発表資料は,出張時の移動中や宿泊先ホテルで完成させる
  • ノートPCが MacBook に移行した以後,Samba も不要になった. CentOS 6.x 以後では使用せず.

httpd 設定

  • 自分用メモページ(外部非公開; 研究室内LANでは,一部を除き原則公開)
  • 個人web (別サーバで外部公開; 研究室内LANでは常時公開)のテスト
  • web ベースでのシステム管理(samba, CUPS, SQL DB など)にも使う. ただし,これら管理用webインタフェースは,localhost のみ許可
  • 一応,webalizer も入れておくが,アクセスは localhost のみ許可
  • 詳しくはhttpd_settings (hysk)に記載

munin

  • 自分のメインマシンで,自分が管理する計算機群のモニタリングを実施
  • 主に計算機の温度&ディスク使用状況把握を目的
  • ジョブ投入する際の CPU load やネットワーク転送状況などもたまに参照
  • 導入手順の詳細は,サーバ監視 munin (hysk)を参照

cron

  • 定時実行するスクリプトなどを登録. 記述時点(2011-06-20)では,デスクトップ機だと4個のスクリプトが早朝・夜間に稼働
  • 自分管理のデータサーバの場合,定時ダウンロード,解析の前処理,ルーチン化した処理など, 少なくとも20個以上のスクリプトを実行. 実行タイミングはモノによって異なるが, 毎時・数時間間隔・毎日・毎週(特定曜日)・毎月・年に一度, などのバリエーションあり

CUPS

  • 自分が実施したCUPS関連作業記録は, 『管理コマンド情報』プリンタ設定 に記載.
  • ここ数年は,日常作業でプリントする頻度が激減したので, インストール後の設定を忘れることが多い.いざ使うときになってから慌てる
  • CentOS 6.x (自分PCでは Feb2014)以後では未使用. 必要性がほぼ皆無になったため,設定すらしてない.

GNOME

  • ほぼデフォルト設定だが,細かい所で修正.
  • $HOME 以下のディレクトリ名はASCII文字のみに限定(マルチバイト文字は使用しない). コマンドライン生活なユーザにとって,日本語ファイル・ディレクトリ名は単なる邪魔者. 下記コマンドで変更 (参照: ホームディレクトリのフォルダ名を日本語から英語に変更する, atmark IT)
    $ LANG=C xdg-user-dirs-gtk-update
  • 仮想画面(workspace)は6個. うち,1つは「維持管理用(Admin)」,1つは「ブラウザ & mail閲覧専用(Web)」として使う. 括弧内はワークスペース名. 実質的な作業領域は4個.これには特に明確な使用基準無し
  • Admin では,(1) Samba 経由での NotePCとのsync, (2) システム作業(主にコマンドラインベースでの software updateなど). Web では,(1) Web での情報収集・管理作業,(2) 自分ホームページの修正加筆, などを実施.
  • GNOME の「システム」「設定」「ウィンドウの設定」にて, マウスフォーカス(マウスが移動したウィンドウを選択 & no-raise-lower)・ タイトルバーアクション(巻き上げ roll-up)を修正
  • GNOME の「システム」「設定」「キーボードショートカット」にて, 『ウィンドウの管理』部分を修正. F1 (raise-lower), F2 (minimize), F3 (change window size), F4 (move window) と Ctrl + {up,down,left,right} (workspace の上下左右への移動) を割り当て
  • GNOME terminal の初期起動時のサイズを修正. ランチャボタンの実行コマンド部分に,サイズ指定オプション "--geometry 100x35" を追記. /usr/share/applications/gnome-terminal.desktop の Exec 部分に上記サイズ指定オプションを 追記すれば,ランチャ以外からの起動でもサイズ統一できる. ただし,自分の場合はボタンからの起動が多いこと, 複数ユーザが使用する可能性があるマシンであること,などを考慮して GNOME のランチャボタンでの設定とした. ウィンドウの挙動は,使用者ごとに好みが違う. 自分設定での対処が何かと不都合が少なかろう
  • CentOS 7.x (Oct2014)以後,GNOME は使っていない. 重すぎるし,メニューの外観・操作性が好きじゃない.挙動の軽い Xfce に変更.

vim (~/.vimrc 含む)

  • $HOME/.vimrc を自分向け設定に修正(サンプル .vimrc)
  • default 設定との違い,細かいところは覚えてない. とにかく,自分の使いかたでの主な特徴は,『タブは2文字,expandtab (Makefile は例外), 長い行の自動折り返し禁止』などのはず.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim

set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,cp932,iso-2022-jp,euc-jp

set backspace=2

highlight tabs ctermbg=green guibg=green

set nobackup
set noautoindent
set expandtab
set shiftwidth=2
set tabstop=2
set softtabstop=0
set textwidth=0

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
set showcmd            " Show (partial) command in status line.
"set showmatch          " Show matching brackets.
set ignorecase         " Do case insensitive matching
"set smartcase          " Do smart case matching
set incsearch          " Incremental search
"set autowrite          " Automatically save before commands like :next and :make
"set hidden             " Hide buffers when they are abandoned
"set mouse=a            " Enable mouse usage (all modes) in terminals


"set list
"set number

" show the cursor position all the time
set ruler
set history=50

"set smartindent

" Copied from .vimrc on home-viper (Vine 4.2; used until Feb2009)
if has("autocmd")
 augroup cprog
  " Remove all cprog autocommands
  au!

  " When starting to edit a file:
  "   For C and C++ files set formatting of comments and set C-indenting on.
  "   For other files switch it off.
  "   Don't change the order, it's important that the line with * comes first.
  autocmd FileType *      set formatoptions=tcql nocindent comments&
  autocmd FileType html,xml,xsl   source ~/.vim/scripts/closetag.vim
  "autocmd FileType c,cpp  set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
  "autocmd FileType c,cpp  set formatoptions=croql nocindent comments=sr:/*,mb:*,el:*/,://
  autocmd BufRead Makefile setlocal noexpandtab  "Must be used to edit a Makefile
 augroup END
endif

 研究用途に関係する設定

Fortran 関連

F90/F95 個人ルール参照.

 PC移行・OS更新時の作業工程

PC移行時(OS更新)時の作業工程メモ. 今回は,CentOS 5.11 より CentOS 7.0 への移行について(2014-10-27).

  • OS install, 思いつく限りで必要な環境を構築(CentOS 6.x: 2014-02-07, CentOS 7.0: 2014-09-24), しばらくは旧PC (CentOS 5.x) と同時運用. 日常的な作業は旧PCでおこなうが,折を見て新PCでもテスト実行. Fortran (ex. NetCDFやHDF形式データの読み書き),作図(GMT, GrADS),TeXコンパイルやPDF作成など.
    • CentOS 7.0 は,2014年夏にリリース. こんなに最新のものを入れたくはなかった. CentOS 6.x では,GNOME 関連コマンドが正常起動しなかった問題を解決できなかった (トラブル解決メモ (hysk) # GNOME アプリが落ちる)ため, やむを得ず最新版への移行を決意.
    • 初期インストール後のセットアップは,正味1日あれば完了. 後は,日常作業をしつつ時折テスト実行し, 3-4日程度で「移行できそう」というメドがついた(2014年9月末頃). 少なくとも,CentOS 6.x で未解決だった問題はクリアできていた. ただし,CentOS 7 で採用されたGNOMEは,非常に使い勝手が悪い・見た目が気持ち悪いので却下. デスクトップ環境は Xfce に変更. あとは,自分の仕事で一息付けるタイミングを探して,本格移行を待った.
    • 2014年の秋の気象学会@福岡の終了後,職場の停電(定期検診のため)があった. まさに「移行するなら,ここしかない」というタイミング.
    • 自分のメイン計算機としては,学生時代から数えて11代目(のはず). 平均すると約2年で更新していることになるが, ほとんどの場合は旧型機と新型機は並行運用している(約半年-1年程度). 実質的なメインPCとして運用する期間は,約3年.PCの進歩を考えれば,こんなもんだろう.
  • 省電力モードへの移行を強制停止. 原因不明だが,なぜかホスト画面が入出力を受け付けなくなるので, 抜本的な解決方法ではないのは承知しているが,これをやったらフリーズしなくなったのは確か. firewall-config の実行. (2014-10-27)
  • firewall-config の実行. private LAN 内からの munin用ポート & http アクセスを許可.(2014-10-28) 自分PCへのhttpアクセスできない原因を特定するのに,想定以上に時間がかかった(約1.5日).
    • CentOS 5.x & 6.x とは大きく異なる部分があったため. iptables の設定がどこにいったのか,特定できなかった.
    • chkconfig でなく,systemctl を使うことに慣れていなかった. chkconfig に慣れすぎていたため,新たな方式が頭に入らない.
$ sudo yum -y install libups-devel
(Omron UPS の自動シャットダウンツールのコンパイルのため.
コンパイルオプション変更することで
コンパイルは何とか終了する.しかし,
daemon 起動スクリプトがCentOS 7用でないため,ひとまず pending. 2014-10-29)

雑記

/home 領域拡大の(個人的)歴史

これは個人的な「思い出話」みたいなもの. 書き出してみたものの, 自分が CD-R や DVD-R などを使いはじめた 正確な時期は不明 (2011-06-24 時点; Update 2014-10-29).

  • 1990年代前半 (1993 - 1995頃)

    卒業研究時(FY1993): Max 30 MB,大学院(いわゆる前期課程): Max 50 MB だったと思う. 学生全員(10-20名)が共用ワークステーション(SunOS 4.x とか Solaris 2.x あたりのはず) を使用していたため, 容量制限がかなり厳しかった. HDDサイズが小さかった(高額なWSであっても,数百MB〜1GB程度だったかな?)ため,仕方のないこと. 自分で好きなように研究するためには,計算機(PC UNIX搭載)を自費で用意せざるを得なかった. /home 領域の話からは逸脱するが, twice-daily の客観解析データ(当時は格子間隔: 5度x5度だったと思う)を10年分解析したい... と思っても, 8 mm テープにおさめたデータを 作業領域 (例えば /work のような名前)に 数ヶ月分読み出し,処理終了後には削除する, という事を繰り返すしかなかった時代.

  • 1990年代後半 (1995 - 1998頃?)

    「CD-R/RWに格納可能な容量」.Max. 600MB 程度. ただし,CD-RW に焼くことは(結果的に)少なかった. 「書き換え可能だからごみが減らせる」 and 「CD-R と違って何度も書き換えできるから,お金を節約できる」 , と考えた (初期の頃,バックアップ用光学メディアは私費購入せざるを得なかったので, 貧乏学生にとってカネの問題は重要だった). しかし,RW への書き込み速度があまりにも遅い事, 読み出せるドライブが限られていた事などが原因で, RW への書き込みをしなくなった. なお,初期の頃はPD (当然,自費で購入)にバックアップを取っていた. PDと言ってわかる人,少ないだろうけど...

  • 2000年代初期 (2003頃まで?)

    「DVD-Rに格納可能な容量」.Max. 4 GB 程度. この時も,「DVD-RAM or RW を使えば...(以下,上記と同じなので略)」 と考えたが,やはり書き換え可能メディアの使用頻度は極めて低かった. このあたりでようやく write at once メディアしか使わないことに 決めた.

  • 2000年代中期〜後期 (2008頃まで?)

    「DVD-R DLに格納可能な容量」.Max. 9 GB 程度. さすがに,頑張っても 4GB 程度におさめるのがムリになってきた. 途中からメールフォルダのバックアップも諦めた. 2000年代に入ってから,PowerPoint の普及や仕事上の都合もあって, サイズの大きなファイルが メール添付される事が多くなった. これも /home 肥大化要因のひとつであった. 1件あたり数MB程度であっても,それが数十通・数百通となれば, 無視出来ない量になる

  • 2008頃以後〜現在 (初回記入時: 2011-06-24, 更新: 2016-02-27)

    「BD-R DLに格納可能な容量」.Max. 45 GB 程度. あと2-3年くらいはもつだろうが,デジタルコンテンツの大容量化 のスピードも早いので,遠くない将来不足するだろう. 2012年以後,Linux 上でメール読むのも諦めた. BluRay 以後の次世代メディアに期待したいが如何に? 「リムーバブルメディアに保存する」という時代ではなくなるかもしれないが...

更新履歴

Date Changes
2020-12-15 「インストール後の設定」部分の修正.vimrc 関連のメモ追記など
2019-05-20 「インストール後の設定」部分の修正.古いスタイルの情報削除,現行スタイルの追記など
2016-02-21 ページ内の参照用IDを付け替え. 番号付けのルールは, Linux tips (hysk) # 自分専用ルール・HTML に従う.
2014-10-27 CentOS 7.x 対応の記述を追加
2014-02-24 パーティション設定例 (CentOS 6.x版)
2012-06-22 パーティション設定例 (CentOS 5.x版)
2011-06-24 雑記の/home 領域拡大の(個人的)歴史を記載. 自分の脳内記憶から消しても良い情報を「外部移植」するために作成したはず.
2009-xx-xx 多分,このくらいの時期に記載開始.