ラベル Cygwin の投稿を表示しています。 すべての投稿を表示
ラベル Cygwin の投稿を表示しています。 すべての投稿を表示

2015年9月29日火曜日

【Cygwin】MD5 sum did not match, exiting

概要

apt-cyg 実行時にタイトルのエラーが出現したので対応しました

環境

  • Windows7 64bit
  • Cygwin 2.2.1
  • apt-cyg 0.59

apt-cyg のコマンドを編集

apt-cyg コマンドを /usr/bin/apt-cyg にインストールしているものとします

  • cp /usr/bin/apt-cyg{,.back}
  • vim /usr/bin/apt-cyg
    で以下となるように編集してください
$ diff /usr/bin/apt-cyg{,.back}
343,344c343
<     #digactual=`md5sum $file | awk '{print $1}'`
<     digactual=`sha512sum $file | awk '{print $1}'`
---
>     digactual=`md5sum $file | awk '{print $1}'`

md5sum となっている部分を sha512sum に書き換えます
これで再度 install を実施すれば該当のエラーは出なくなると思います

apt-cyg のバージョンによっては書き換える部分が異なると思いますので注意してください

参考サイト

2015年8月21日金曜日

Cygwin 上で growlnotify を実行する方法

概要

Growl for Windows をインストールして Cygwin 上でコマンド実行する方法
オプションの指定方法とかいつも忘れるのでメモ

環境

  • Cygwin 1.7.32
  • Growl for Windows 2.0.9

実行方法

$ /c/Program\ Files\ \(x86\)/Growl\ for\ Windows/growlnotify.exe "/t:タイトル" "メッセージ" 2>&1 | nkf -Lu

オプションはダブルクオートでくくると良い
最後のリダイレクトとnkfはなくてもOK、エラーの場合に日本語が化けるので対応しているだけ
スペースをバックスラッシュでエスケープ

2015年3月31日火曜日

Cygwin 上に jq をインストールする方法

概要

jqはコマンドラインで簡単にJSONを整形することができるツールです
Cygwin上でも動作させることができたのでインストール方法を紹介します

環境

  • Windows 7 64bit
  • Cygwin 1.7.32
  • jq 1.4

インストール方法

Cygwin環境下で以下のコマンドを実行すればOKです

cd /usr/bin && wget http://stedolan.github.io/jq/download/win64/jq.exe

P.S 20150928
URLが変わっていました

cd /usr/bin && wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-win64.exe
mv jq-win64.exe jq.exe
chmod 755 jq.exe

バージョンを確認します

  • jq -V
jq-1.4

使い方

使い方は簡単
基本はパイプに食わせる感じです

echo '{"key":"value"}' | jq '.'

例えばJSON形式で取得できるREST-APIみたいなのがあったら

curl 'https://mb.api.cloud.nifty.com/' 2> /dev/null | jq '.'

とすることで

{
  "code": "E404002",
  "error": "None service."
}

こんな感じで取得できます

改行コードを変更したい場合はsedと組み合わせると好きな改行コードで出力できます

curl 'https://mb.api.cloud.nifty.com/' 2> /dev/null | jq '.' | nkf -Lu

自分はemacsユーザなのですがemacsと組み合わせると以下のようなこともできるようです
これは便利です

あとはわからないことがあれば公式を読めばOKかと思います

2015年2月4日水曜日

Cygwin+svnでcolordiff

概要

cygwin上でsvn diffした際に色をつける方法を紹介します
事前にCygwinやsvnコマンドのインストールは実施しておいてください

環境

  • Windows7 64bit
  • Cygwin 1.7.32

設定手順

colordiffのインストール

apt-cyg install colordiff

apt-cygのインストール方法はこちらから
apt-cygがあればsvnコマンドのインストールも一瞬です

.subversion/configの設定

~/.subversion/config
に以下を記載します

diff-cmd = colordiff

どこでもいいですが、diff-cmdを定義している部分があるのでその辺りに書くといいと思います

確認

svn diff | less -R

less に「-R」がないと色が表示されません
またsvn diffだけだとザーッと表示が流れてしまうのでlessしています

2015年1月20日火曜日

Cygwin上でWindowsのプロセスをkillする方法

概要

Cygwin上で動作したプロセスはkillコマンドで停止できますがWindows上で動作しているプロセス(例えばexplorer.exeとか)はkillコマンドでは停止できません
Windows上のプロセスを停止したい場合はタスクマネージャを起動してそこから停止したいプロセスを停止します

いちいちタスクマネージャを起動するのも面倒なのでCygwin上でWindows上のプロセスを停止する方法を紹介します

環境

  • Windows7 64bit
  • Cygwin 1.7.32

実行方法

まずはWindows上で動作してしているプロセスのプロセス番号を取得します
普通は「pa aux」とかを使うと思いますがこれだとWindows上のプロセスを表示することができません

以下のコマンドでWindows上のプロセス番号を確認することができます

ps -efW

上記のオプションを使うことでCygwin上でWindows上のプロセス番号を調べることができます
例えば「ps -efW | grep explorer」とか実行するとexplorer.exeのプロセス番号を取得できます

プロセス番号がわかったら実際にkillしてみます
普通は「kill 9999」みたいな感じでkillしますがWindows上で動作しているプロセス番号を指定すると「No such process」と言われてkillできません

代わりに「taskkill.exe」というコマンドを使用します
使い方は以下の通り

cmd /c taskkill.exe /pid 9999 /F

ちょっと長いですが「9999」の部分にWindows上のプロセス番号を指定してください
上記の例では「/F」を指定していますがこれは強制終了のオプションです
killコマンドで言うところの「-9」にあたります
普通は指定しなくてもいいですが、プロセスが停止できない場合には指定してみてください

2014年11月26日水曜日

Cygwin上にRedisをインストール

概要

過去にWindows上にRedisをインストールする方法を紹介しましたが、この方法だと実はCygwin上では使えません
今回はCygwin上で実行できるRedisのインストール方法をご紹介します

環境

  • Windows7 64bit
  • Cygwin 1.7.32-1
  • apt-cyg 0.59
    • make, gcc-core
    • 事前にapt-cygでmakeに必要なパッケージをインストールしておいてください、apt-cygのインストール方法はこちらから
  • Redis 2.6.14

インストール

インストールはRedisのソースコードをmakeビルドしてインストールします

Redisインストール

まずはソースをダウンロードして解凍します

wget https://redis.googlecode.com/files/redis-2.6.14.tar.gz
tar zvxf redis-2.6.14.tar.gz

既存のソースコードをCygwin でビルドできるように修正します

cd redis-2.6.14/src/
vim redis.h

redis.hはすでに存在するファイルでこれに追記します
追記する箇所は「Data types」の上に以下を追記します
(左の番号は行数なのでコピペしないでください)

307 #ifdef __CYGWIN__
308 #ifndef SA_ONSTACK
309 #define SA_ONSTACK 0x08000000
310 #endif
311 #endif
312
313 #if defined(__CYGWIN__)
314 #define strtold(a,b)    ((long double)strtod((a),(b)))
315 #endif
316
317 /*-----------------------------------------------------------------------------
318  * Data types
319  *----------------------------------------------------------------------------*/

追記できたらあとはビルドします

make

P.S 20160822
make 時に「エラー: 不明な型名 ‘u_int’ です」となってエラーになる場合は以下のように実行してみてください
CFLAGS='-D_GNU_SOURCE'

成功すると最後は以下のようになりました
警告でまくりでしたがうまく成功しているようです

...この前にもいろいろビルドログが出ている...

...

redis-check-aof.c: 関数 ‘process’ 内:
redis-check-aof.c:118:17: 警告: 関数 ‘strcasecmp’ の暗黙的な宣言です [-Wimplicit-function-declaration]
                 if (strcasecmp(str, "multi") == 0) {
                 ^
redis-check-aof.c: 関数 ‘main’ 内:
redis-check-aof.c:177:5: 警告: 関数 ‘fileno’ の暗黙的な宣言です [-Wimplicit-function-declaration]
     if (redis_fstat(fileno(fp),&sb) == -1) {
     ^
redis-check-aof.c:198:17: 警告: 関数 ‘strncasecmp’ の暗黙的な宣言です [-Wimplicit-function-declaration]
                 strncasecmp(buf,"y",1) != 0) {
                 ^
    LINK redis-check-aof

Hint: To run 'make test' is a good idea ;)

実行するのはmakeだけでOKです(make testやmake installは不要)

動作確認

バイナリファイルが存在するか確認しましょう
redis-2.6.14/src/配下でls -ltrを実行して以下のファイルがあればOKです

-rwxr-xr-x 1 user None 2056256 11月 26 15:51 redis-server.exe
-rwxr-xr-x 1 user None 2056256 11月 26 15:51 redis-sentinel.exe
-rw-r--r-- 1 user None  139609 11月 26 15:51 redis-cli.o
-rwxr-xr-x 1 user None  424068 11月 26 15:51 redis-cli.exe
-rw-r--r-- 1 user None   52283 11月 26 15:51 redis-benchmark.o
-rwxr-xr-x 1 user None  337399 11月 26 15:51 redis-benchmark.exe
-rw-r--r-- 1 user None   44586 11月 26 15:51 redis-check-dump.o
-rwxr-xr-x 1 user None  114399 11月 26 15:51 redis-check-dump.exe
-rw-r--r-- 1 user None   23556 11月 26 15:51 redis-check-aof.o
-rwxr-xr-x 1 user None   84892 11月 26 15:51 redis-check-aof.exe

あとは

cd redis-2.6.14/src/
./redis-server.exe

でredis-serverを立ち上げて別のcygwinターミナルから

cd redis-2.6.14/src/
./redis-cli.exe

すれば問題なく使えると思います

自分の場合は何も失敗することなくスムーズにmakeビルドできましたが、makeする環境が整っていないとエラーになると思います
その場合はapt-cygがあればapt-cygで必要なライブラリやモジュールをインストールすれば問題ないと思います

参考サイト

2014年8月5日火曜日

Cygwin上でpercolをインストールして使ってみた

pipからインストールする方法を紹介します
pipが使えるようになるまでが大変でした

■環境
Windows7 64bit
Cygwin 1.7.30
pt-cyg 0.59
Python 2.7.5
easy_install 0.6.34
pip 1.4.1

■インストール
Cygwin, apt-cyg のインストールまでは済ませておいてください

apt-cyg install python python-setuptools
easy_install https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
pip install percol
mkdir ~/.percol.d
touch ~/.percol.d/rc.py
emacs ~/.percol.d/rc.py

percol.view.PROMPT  = ur"Let's percol > %q"

# Emacs like
percol.import_keymap({
    "C-h" : lambda percol: percol.command.delete_backward_char(),
    "C-d" : lambda percol: percol.command.delete_forward_char(),
    "C-k" : lambda percol: percol.command.kill_end_of_line(),
    "C-y" : lambda percol: percol.command.yank(),
    "C-t" : lambda percol: percol.command.transpose_chars(),
    "C-a" : lambda percol: percol.command.beginning_of_line(),
    "C-e" : lambda percol: percol.command.end_of_line(),
    "C-b" : lambda percol: percol.command.backward_char(),
    "C-f" : lambda percol: percol.command.forward_char(),
    "M-f" : lambda percol: percol.command.forward_word(),
    "M-b" : lambda percol: percol.command.backward_word(),
    "M-d" : lambda percol: percol.command.delete_forward_word(),
    "M-h" : lambda percol: percol.command.delete_backward_word(),
    "C-n" : lambda percol: percol.command.select_next(),
    "C-p" : lambda percol: percol.command.select_previous(),
    "C-v" : lambda percol: percol.command.select_next_page(),
    "M-v" : lambda percol: percol.command.select_previous_page(),
    "M-<" : lambda percol: percol.command.select_top(),
    "M->" : lambda percol: percol.command.select_bottom(),
    "C-m" : lambda percol: percol.finish(),
    "C-j" : lambda percol: percol.finish(),
    "C-g" : lambda percol: percol.cancel(),
})

ポイントはpipが1.4.1でないとインストールできない点でした
理由はわかりませんが、1.5.6の2014/08/01時点での最新版はインストールに失敗します

あとはpercolでgrep中のキーバインドをemacs風にする設定とプロンプトの表示をカスタマイズしています
キーバインドとプロンプトのカスタマイズはお好みで実施してください

2014年7月22日火曜日

Cygwin設定メモ

インストール

Cygwinの公式サイトからインストーラをダウンロードし実行
setup.exe時にインストールする追加パッケージは以下

  • wget, wget-debuginfo
  • vim, vim-common

設定

基本設定

ルートパス変更

vim /etc/passwd

/home/username
↓
/cygdrive/c/Users/username

※ P.S 20150929
/etc/passwd と /etc/group がない場合は以下のコマンドで生成してください

mkpasswd -l > /etc/passwd
mkgroup  -l > /etc/group

cd / && ln -nfs /cygdrive/c/
cd / && ln -nfs /cygdrive/e/

SSH用の設定ファイル作成

mkdir .ssh
touch .ssh/config
vim .ssh/config

ServerAliveInterval 15

作業用ディレクトリ作成

mkdir -p ~/data/repo
mkdir -p ~/Documents/work

bashの設定ファイル作成 

touch .bashrc
vim .bashrc

#!/bin/sh

alias ls='ls --show-control-chars --color'
alias tmuxclean='rm -rf /tmp/tmux'
alias ifconfig='ipconfig | nkf -w'
alias tailf='tail -f'
alias ps='ps -efW'

if [[ "$OSTYPE" =~ "cygwin" ]];then
  # Chocolatey
  alias choco="echo -ne '\n' | cmd /c choco"
  alias cinst='cmd /c cinst'
  alias cup='cmd /c cup'
  alias cuninst='cmd /c cuninst'
fi

touch .bash_profile
vim .bash_profile

#!/bin/sh

if [ -f $HOME/.bashrc ]
then
  source $HOME/.bashrc
fi

.bashrc と .bash_profile の改行コードをLF、文字コードをUTF-8にする

bash補完時のignore-case設定

vim /etc/inputrc

set completion-ignore-case on

カーソルの色を変更する

左上のアイコンから -> Options -> Looks -> Colours -> Cursor でCyanぽい色に変更する

apt-cyg

wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
mv apt-cyg /usr/bin
chmod +x /usr/bin/apt-cyg

apt-cyg install openssh automake gcc-core libevent2.0_5 libevent-devel ncurses libncurses-devel pkg-config make vim git procps emacs util-linux
apt-cyg install ruby subversion
apt-cyg install libgmp-devel libcrypt-devel curl

gem install bundler

※P.S 20150929
Cygwin のバージョンが2以上の場合は apt-cyg のソースコードを直接編集する必要があります
http://kakakikikeke.blogspot.jp/2015/09/md5-sum-did-not-match-exiting.html

emacs

mkdir -p ~/.emacs.d/backup
mkdir -p ~/.emacs.d/site-lisp
touch ~/.emacs.d/site-lisp/init.el
vim .emacs

package.el

cd ~/.emacs.d/site-lisp
wget http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el
emacs ~/.emacs.d/site-lisp/init.el

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives  '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

package.el が 404 で見つからない場合は以下から取得する
http://kakakikikeke.blogspot.jp/2015/10/emacs23-package-el.html

package-install でインストールするパッケージ一覧

  • パッケージのインストール方法
    M-x package-install [package-name]
    or
    M-x package-list-packages
    iでインストールするパッケージを選択してxでインストールを実行する
  • require
    • anything
    • anything-config
    • anything-match-plugin
    • auto-complete
    • flycheck
      • gem install ruby-lint
      • 各言語ごとに必要なsyntax checkerはインストールすること
    • twittering-mode
    • php-mode
    • markdown-mode
    • highlight-symbol
  • options
    • flymake
    • w3m
    • Navi2ch
  • emacs ~/.emacs.d/site-lisp/init.el
;;; .init.el --- init config emacs

;;; Commentary:
;;;; Author: kakakikikeke
;;;; Version: 0.1

;;; Code:
; for package.el
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives  '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

; for anything
(require 'anything-startup)
(keyboard-translate ?\C-h ?\C-?)
(add-to-list 'anything-sources 'anything-c-source-emacs-commands)

; for auto-complete
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20140618.2217/dict")
(ac-config-default)
(setq ac-use-menu-map t)
(define-key ac-menu-map "\C-n" 'ac-next)
(define-key ac-menu-map "\C-p" 'ac-previous)

; for flymake
(add-hook 'after-init-hook #'global-flycheck-mode)

; for twittering-mode
(require 'twittering-mode)
;(setq twittering-proxy-use t)
(setq twittering-use-master-password t)

; highlight-symbol
(require 'highlight-symbol)
(setq highlight-symbol-colors
      '(
        "DarkOrange" "DodgerBlue1" "DeepPink1"
        "goldenrod3" "orchid2" "chartreuse3"
        "yellow3" "firebrick1" "green2"
        "IndianRed3" "SeaGreen3" "turquoise1"
        "SlateBlue2" "medium orchid" "sea green"
        ))
(global-set-key "\C-x," 'highlight-symbol-at-point)

;;; init.el ends here

nkf

http://sourceforge.jp/projects/nkf/downloads/59912/nkf-2.1.3.tar.gz/ からブラウザを使ってダウンロード
cd ~/Downloads
tar zvxf nkf-2.1.3.tar.gz
cd nkf-2.1.3
make && make install

tmux

http://sourceforge.net/projects/tmux/files/tmux/tmux-1.9/tmux-1.9a.tar.gz/download?use_mirror=jaist からブラウザを使ってダウロード
https://tmux.github.io/ の Download から最新版をダウンロードしてください

tar zvxf tmux-1.9a.tar.gz
cd tmux-1.9a
./configure && make && make install

touch ~/.tmux.conf
emacs ~/.tmux.conf
これを記載する

git

git config –global color.ui true

vim ~/.gitconfig

[alias]
    tr = log --graph --pretty='format:%C(yellow)%h%Creset %s %Cgreen(%an)%Creset %Cred%d%Creset'

percol

apt-cyg install python-setuptools
easy_install https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
pip install percol
mkdir ~/.percol.d
touch ~/.percol.d/rc.py
emacs ~/.percol.d/rc.py

percol.view.PROMPT  = ur"<bold><yellow>Let's percol ></yellow></bold> %q"

# Emacs like
percol.import_keymap({
    "C-h" : lambda percol: percol.command.delete_backward_char(),
    "C-d" : lambda percol: percol.command.delete_forward_char(),
    "C-k" : lambda percol: percol.command.kill_end_of_line(),
    "C-y" : lambda percol: percol.command.yank(),
    "C-t" : lambda percol: percol.command.transpose_chars(),
    "C-a" : lambda percol: percol.command.beginning_of_line(),
    "C-e" : lambda percol: percol.command.end_of_line(),
    "C-b" : lambda percol: percol.command.backward_char(),
    "C-f" : lambda percol: percol.command.forward_char(),
    "M-f" : lambda percol: percol.command.forward_word(),
    "M-b" : lambda percol: percol.command.backward_word(),
    "M-d" : lambda percol: percol.command.delete_forward_word(),
    "M-h" : lambda percol: percol.command.delete_backward_word(),
    "C-n" : lambda percol: percol.command.select_next(),
    "C-p" : lambda percol: percol.command.select_previous(),
    "C-v" : lambda percol: percol.command.select_next_page(),
    "M-v" : lambda percol: percol.command.select_previous_page(),
    "M-<" : lambda percol: percol.command.select_top(),
    "M->" : lambda percol: percol.command.select_bottom(),
    "C-m" : lambda percol: percol.finish(),
    "C-j" : lambda percol: percol.finish(),
    "C-g" : lambda percol: percol.cancel(),
})

other

ant

wget http://ftp.kddilabs.jp/infosystems/apache//ant/binaries/apache-ant-1.9.4-bin.tar.gz
tar zvxf apache-ant-1.9.4-bin.tar.gz
mv apache-ant-1.9.4 /usr/bin/
cd /usr/bin
ln -nfs /usr/bin/apache-ant-1.9.4/bin/ant ant

maven

wget http://ftp.kddilabs.jp/infosystems/apache/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.tar.gz
tar zvxf apache-maven-3.2.2-bin.tar.gz
mv apache-maven-3.2.2 /usr/bin
cd /usr/bin
ln -nfs /usr/bin/apache-maven-3.2.2/bin/mvn mvn

jq

http://kakakikikeke.blogspot.com/2015/03/cygwin-jq.html

Tips

uname -a でcygwinのバージョンを確認することができる
ps -efW でWindowsで動作しているプロセスの一覧も確認できる