経緯
Ctrl+d で落ちない python コンソールなんてありえない!
方法
python3-pip と python3-zmq を cygwin のインストーラで入れる.
(英語サイトでは bundled zmq とか書かれてるやつ)
pip3 install jupyter
他にも何か pip で入らなさそうなモジュールとかあったら,bundled を探してみるとあるかも.
Now, http2 is available if your browser accept it.
Ctrl+d で落ちない python コンソールなんてありえない!
python3-pip と python3-zmq を cygwin のインストーラで入れる.
(英語サイトでは bundled zmq とか書かれてるやつ)
pip3 install jupyter
他にも何か pip で入らなさそうなモジュールとかあったら,bundled を探してみるとあるかも.
cron と cygrunsrv を cygwin でインストール済とする.
合わせて,nkfも入れてあると便利.
nkf を入れる場合,gcc-coreとmakeも入れておくこと.
昔は cygrunsrv を叩いていたが,今は cron-config でできる.
要,管理者権限.
予断だが ssh-server なんかも ssh-host-config でできるらしい.
yes/no で聞かれているところは基本 yes.
入力を促されるところは CYGWIN は空欄,パスワードは Windows のログオンパスワード.
もしエラーが起こった時に,日本語で読みたい場合は,
cron-config 2>&1 | nkf -u
とかしておくと便利.
うまく開始する条件がよく分からんが,たまに上でうまく動作しないことがある.
一応,こうなっていれば成功のはずなのに,なぜかスクリプトの出力をファイルにリダイレクトさせたはずの出力が得られないことがある.
$ cygrunsrv -Q cron Service : cron Display name : Cron daemon Current State : Running Controls Accepted : Stop Command : /usr/sbin/cron -n
そういう時は,サービスの再起動が良い.
要管理者権限.
$ net stop cron 2>&1 | nkf -u $ net start cron 2>&1 | nkf -u
これはメッセージが日本語確定なので,nkfを使う.
で,その後ステータスを見て, Current State が Runnning でなければ,cygrunsrv で開始させる.
$ cygrunsrv -S cron
gitなどで設定ファイルを管理していて,どのマシンでも同じ設定をgit cloneですぐに引っ張れるようにしている.
こうするとスタートアップは用意であるものの,環境依存の設定のためエラーを吐いたり最悪の場合は動作しないことがある.
今回はその中でも vim の場合.
vimの設定は.vimrcや.gvimrc(vim.gtkなど)などで設定する.
.vimrcなどの中では条件分岐が使える.
1を返す関数がTrueを,0を返す関数がFalseを意味する.
has('feature')が便利で,OSによる分岐や:versionで出力されるfeatureの有無(+/-)による分岐が可能.
例えば,pluginのsingletonはclientserverを必要とするが,cygwinでコンソールでのみvimを使う場合にエラーを吐く.
これを防ぐためには
if has('clientserver') call singleton#enable() endif
などとすればどちらにも対応できる.
以前,WinXP でも起こったんだけど,いつの間にか直ったので気にしていなかった.
cygwin を入れて c:\cygwin\bin
へ path を通して zsh を実行すると,下記のようなエラーが出る.
(cygwin.bat はもう何年も使っていないので分かりません.)
12 [main] zsh 3704 C:\cygwin\bin\zsh.exe: *** fatal error - unable to remap C:\cygwin\lib\zsh\4.3.4\zsh\newuser.dll to same address as parent(0x410000) != 0x990000
[LOOX U] Cygwinのzshが動かない によれば,ashからrebaseallコマンドを実行すると良いらしい.
※ hadacchi はエラー起こしていた窓を閉じてしまい,もうエラーが出ないので,上記サイトのエラー文をコピペさせていただいた.
早速,タスクマネージャから zsh を全て落として,ash を起動し rebaseall と打つと,タスクマネージャ上で色んなタスクのPIDががらっと代わった.
で,また zsh を起動すると,.zshenv がないよとかいうメッセージが出てきて,成功.
ちなみにこの rebaseall というコマンドを bash から実行しようとしたところ,「ash か dash からしか実行できないよ」ってエラーが出てきた.
つまり,今後は cygwin 入れる時に ash は外せないということか.
[hadacchi_blog : memcachedとpython (修正追記)](/p_blog/article.php?id=706)で書いた記事に更に追記.
cygwinのpythonにパッケージを追加したくなったので,やってみた.
$ tar xzf setuptools-0.6c9.tar.gz # ファイル解凍
$ cd setuptools-0.6c9
$ ./setup.py build
$ ./setup.py install # なんで,buildとinstallがいるのかよく分からん
$ ./setup.py build; ./setup.py install # 1行にまとめただけ