ChocolateyでCygwin(C:¥に)インストール・設定する


普通にインストールするとProgram Filesにインストールされてしまうので、それを変更する

Cygwinのインストール

C:¥> cinst cygwin -o -ia "-q -N -R C:\ -l C:\Cygwin\packages --packages wget, tar, gawk, xz, bzip2, gcc-core -s http://ftp.iij.ad.jp/pub/cygwin/"

-oでオプションを上書きすることを示す(OverrideArguments flag)
-iaでオプションを上書きするインストールオプションを指定する(InstallArguments)
シングルクオーテーションに囲まれた部分がCygwinに関連する部分で、例えば、
--packagesでパッケージも一緒に指定できる。

ちなみに %USERPROFILE%\AppData\Local\Temp\chocolatey\Cygwin にCygwinInstall.exeがインストールされるので、以下のように打ち込めばパッケージをインストールできます。(このやり方は通常せずに後述するapt-cygを使います。)

C:¥> %USERPROFILE%\AppData\Local\Temp\chocolatey\Cygwin\CygwinInstall.exe with -q -N -R C:\ -l C:\Cygwin\packages gcc-core

以上で C:¥ 直下にCygwinができました。例えば、Cygwin上の/binはWindows上のC:¥binになります。

Cygwinパッケージをコマンド上でインストールできるようにする

以下のようにapt-cygファイルを/binに入れて、chmod 755 /bin/apt-cygをする

$ wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg -P /bin
$ cd /bin
$ chmod 755 /bin/apt-cyg

その後は以下のように普通にCygwin上でapt-cygを利用する

$ apt-cyg install git

Cygwin上でchocolateyを利用する設定

Cygwin上でChocolateyコマンドを利用したいが、

1.$tempという環境変数がwindows形式のパスでCygwinでは利用できないし、必要ないので、Cygwin上では削除する
2.Cygwin上では、$ cmd /c chocoと入力するのが面倒なので、aliasを設定する
なので以下のように.bashrcに記述します。

if [[ "$OSTYPE" == "cygwin" ]];then
  unset tmp temp
  alias choco='cmd /c choco'
  alias cinst='cmd /c cinst'
  alias cup='cmd /c cup'
  alias cuninst='cmd /c cuninst'
fi

 
上記の設定後、管理者権限でcygwinを動かし、以下のようなことがcygwin上でできるようになります。

$ cinst jdk8

コマンドプロンプト上でCygwinコマンドを動かす

以下に記述されていることをします。
http://news.mynavi.jp/articles/2013/11/25/zerokaracygwin/

  • C:\bin\cygwin1.dllC:\Windows\System32 にコピーする
  • windowsの環境変数PATHに次を通す C:\bin;C:\usr\bin;C:\usr\local\bin;
  • windowsの環境変数LD_LIBRARY_PATHを作成するC:\lib;C:\lib\w32api;C:\usr\local\lib;

(この記事の場合は、C:¥直下にCgywinをインストール指定しています。通常はC:¥cygwin¥binになります)

これでコマンドプロンプト上でlsなどのコマンドも利用できます。
(.exeで提供されているコマンドだけです。apt-cygなどはシェルスクリプトなので利用できません)

Cygwin上でコマンドを動かす

普通に~/.bash_profileにPATHを設定する。
例えば、$ cinst jdk8をしていたら、以下のように記述する

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
PATH=$HOME/.nodebrew/current/bin:$PATH
JAVA_HOME=/cygdrive/c/Program Files/Java/jdk1.8.0_25
export JAVA_HOME
export _JAVA_OPTIONS="-Dfile.encoding=UTF-8"
PATH=${JAVA_HOME}/bin:$PATH

参考