No Such Blog or Diary
cabal install で依存関係のバージョン上限を外す:--allow-newer
Hackage は基本的に「テストしたバージョンまでで依存パッケージのバージョン上限を設けとけよ」的なノリなので,実際には問題ないんだけど上限よりも上のバージョンの依存パッケージしか入れられないから目的のパッケージがインストール出来ない,とかいう状況がチラホラある.バージョン上限を書き換えるためだけにデプロイやり直すのも作者が面倒だろうし.
んで,この状況にハマった時には目的のパッケージのソースを持ってきて手動でコンパイルするかとかやってたのだけど,cabal install のヘルプを良く見てみたら --allow-newer とかいう便利なオプションがあることに(今更ながら)気づいた.これつけとくとバージョン上限を無視してくれる.ほんと便利.
閑話休題.
cabal install を使った時とパッケージのソースで runghc Setup.hs configure とかやった時とでオプション無しの時の振る舞いが異なっていてハマった.cabal install がデフォルトでユーザ個別にパッケージをインストールをする(--user オプションがデフォルト?)のに対して,手元に持ってきたパッケージで runghc Setup.hs configure とかやった時にはグローバルにインストールされたものを探しに行っていた(--global オプションがデフォルト).おかげで入れたはずのパッケージが見つからないと怒られて,でも ghci で確かめると普通に import できて,何がおかしいのか暫く悩みまくった. runghc Setup.hs configure --verbose=3 とかやったら ghc-pkg を呼ぶときに --global をつけているのが見えて分かったのだけど,ここらのデフォルトの違いはどこから出てきたのやら.
- Comments: 0
- TrackBack (Close): -
sshd_config の PermitRootLogin の without-password
- 2015-09-29 (Tue)
- ソフトウェア ( Linux/coLinux )
PermitRootLogin without-password とか書かれてパスワード無しで root が入れるのか? とか思ってしまったのだけど,man sshd_config してみたら次のように書かれていた.つまり逆.
If this option is set to “prohibit-password” or “without-password”, password and keyboard-interactive authentication are disabled for root.
without って ~以外 とかいう意味になるんだっけ? prohibit-password と書いてくれれば分かる.
- Comments: 0
- TrackBack (Close): -
BIND と SSH の挙動がおかしいと思ったら
- 2014-11-11 (Tue)
- ソフトウェア ( Linux/coLinux )
サーバの時刻が20年前になってたのが原因だった.
症状1: ssh の接続になぜか 15秒くらいかかる.
症状2:BIND が外部のDNSの問い合わせに失敗する(verify failed due to bad signature (keyid=XXXXX): RRSIG validity period has not begun とかいうメッセージが log に出てた).
時刻をそれなりに正しく設定するのはとても大事.
- Comments: 0
- TrackBack (Close): -
Ubuntu サーバに NAPT させる
- 2014-11-10 (Mon)
- ソフトウェア ( Linux/coLinux )
小さな PC クラスタへの入り口ノードを作るのに必要だったのでメモ.結局のところ ipsec の設定でやったとこと同じなのだけど.以下,ufw を使ってるとしての設定.
とりあえずパケットのフォワーディングを有効にする.
sudo vi /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
sudo vi /etc/ufw/sysctl.conf
net/ipv4/ip_forward=1
そんでNAPTの有効化を iptables のルールに書く.eth1 が外側のインターフェースだと思ってて,内側は 192.168.11.0/24 で.
sudo vi /etc/ufw/before.rules # nat Table rules *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.11.0/24 -o eth1 -j MASQUERADE COMMIT
あとは再起動しておわり.簡単だなぁ.
閑話休題.
masquerade って仮面舞踏会とか見せかけとかの意味なのか.しらんかった.
- Comments: 0
- TrackBack (Close): -
ssh でのエスケープ
- 2014-03-19 (Wed)
- ソフトウェア ( Linux/coLinux )
開業直後の ~ がエスケープキャラクタになってたとは.開業直後に ~? とかやるとヘルプが出る.
とりあえず,~C でポートフォワーディングを動的に追加(削除)できるってのは便利かも知れない.~C して出てきたプロンプトで help とやるとヘルプが出る.
全然知らんかった……
- Comments: 0
- TrackBack (Close): -
X復活
- 2014-01-08 (Wed)
- ソフトウェア ( Linux/coLinux )
カーネルのログを見てたら,カーネルモジュールのバージョンとXのモジュールのバージョンが違うぞボケというメッセージが出ていた.
kernel: [ 18.759371] NVRM: API mismatch: the client has the version 304.108, but kernel: [ 18.759372] NVRM: this kernel module has the version 304.88. Please kernel: [ 18.759373] NVRM: make sure that this kernel module and all NVIDIA driver kernel: [ 18.759374] NVRM: components have the same version.
nvidia-304-updates というパッケージで 304.108 のカーネルモジュールが入っているし X のログから X 側のモジュールも 304.108 となっていたので問題ないだろとか思ってたら…… 先に入っていた nvidia-304 というパッケージの 304.88 のカーネルモジュールがロードされとったと.このミスマッチのせいで月曜から X が立ち上がらなかった.
ということで,nvidia-XXX なパッケージを全部消してから nvidia-304-updates を入れなおしたら無事 X が立ち上がるようになった.とりあえず,パッケージのアップデートが不親切なんじゃないかなと思わなくもない.もしくは何かがバグってたのか.
- Comments: 0
- TrackBack (Close): -