Mac
MacにPowerShellをインストールしました
MacPowerShell

MacにもPowerShellがインストールできるので試してみました。

https://github.com/PowerShell/PowerShell
にあるように、pkgファイルを落としてインストールコマンドを実行します。

[f_prg@~] $ sudo installer -pkg powershell-6.0.0-alpha.9.pkg -target /

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

Password:
installer: Package name is powershell-6.0.0-alpha.9
installer: Installing at base path /
installer: The install was successful.

インストールできたか、確認してみます

[f_prg@Downloads] $ which powershell
/usr/local/bin/powershell

Aliasを見てみます。

[f_prg@~] $ powershell                                                            [~/Downloads]
PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS /Users/f_prg> Get-Alias

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ? -> Where-Object
Alias           % -> ForEach-Object
Alias           cd -> Set-Location
Alias           chdir -> Set-Location
Alias           clc -> Clear-Content
Alias           clear -> Clear-Host
Alias           clhy -> Clear-History
 :
 :
 :

さっき入れたPHPもみれます。

PS /Users/f_prg> php -v
PHP 7.0.9 (cli) (built: Aug 27 2016 15:17:57) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.9, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans

補足

AWS Tools for Windows PowerShell

Azure PowerShell
はexeのインストーラーなので使えないですねぇ。
もしかしたらできるかなーと思って、試したんですけど。
期待通りでしたね。(笑)
AWS CLIかAzure CLIがあるので、対応もないような気がしてます。

golang
Goxによるコンパイルの紹介
GoxMacgolang

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
Goxというクロスコンパイルするパッケージがあるので紹介したいと思います。
go言語の管理ツールのgom(Go Manager)を使うの記事で扱っておりましたので、内容はほぼ同じようになります。

Gomfileを作成します

[f_prg@gom] $ gom gen gomfile
[f_prg@gom] $ ls
Gomfile
[f_prg@gom] $ vim Gomfile
[f_prg@gom] $ cat Gomfile
gom "github.com/mitchellh/gox"

パッケージをインストールします

[f_prg@gom] $ gom install
downloading github.com/mitchellh/gox
[f_prg@gom] $ ls
Gomfile _vendor

パッケージを使って、ビルドします

goxを使ってビルドをすると各種プラットフォームの実行ファイルが生成されます。
windowsのexeも作られます。

[f_prg@gom] $ gom exec gox -build-toolchain
The toolchain build can't be parallelized because compiling a single
Go source directory can only be done for one platform at a time. Therefore,
the toolchain for each platform will be built one at a time.

--> Toolchain: darwin/386
--> Toolchain: darwin/amd64
--> Toolchain: linux/386
--> Toolchain: linux/amd64
--> Toolchain: linux/arm
--> Toolchain: freebsd/386
--> Toolchain: freebsd/amd64
--> Toolchain: openbsd/386
--> Toolchain: openbsd/amd64
--> Toolchain: windows/386
--> Toolchain: windows/amd64
--> Toolchain: freebsd/arm
--> Toolchain: netbsd/386
--> Toolchain: netbsd/amd64
--> Toolchain: netbsd/arm
--> Toolchain: plan9/386
[f_prg@gom] $ gom exec gox
Number of parallel builds: 4

-->      darwin/386: _/Users/f_prg/Documents/dev/gom
-->    darwin/amd64: _/Users/f_prg/Documents/dev/gom
-->       linux/386: _/Users/f_prg/Documents/dev/gom
-->     linux/amd64: _/Users/f_prg/Documents/dev/gom
-->       linux/arm: _/Users/f_prg/Documents/dev/gom
-->     freebsd/386: _/Users/f_prg/Documents/dev/gom
-->   freebsd/amd64: _/Users/f_prg/Documents/dev/gom
-->     openbsd/386: _/Users/f_prg/Documents/dev/gom
-->   openbsd/amd64: _/Users/f_prg/Documents/dev/gom
-->     windows/386: _/Users/f_prg/Documents/dev/gom
-->   windows/amd64: _/Users/f_prg/Documents/dev/gom
-->     freebsd/arm: _/Users/f_prg/Documents/dev/gom
-->      netbsd/386: _/Users/f_prg/Documents/dev/gom
-->    netbsd/amd64: _/Users/f_prg/Documents/dev/gom
-->      netbsd/arm: _/Users/f_prg/Documents/dev/gom
-->       plan9/386: _/Users/f_prg/Documents/dev/gom
[f_prg@gom] $ ls
Gomfile                 gom_linux_386           gom_openbsd_amd64
_vendor                 gom_linux_amd64         gom_plan9_386
gom_darwin_386          gom_linux_arm           gom_windows_386.exe
gom_darwin_amd64        gom_netbsd_386          gom_windows_amd64.exe
gom_freebsd_386         gom_netbsd_amd64        main.go
gom_freebsd_amd64       gom_netbsd_arm
gom_freebsd_arm         gom_openbsd_386

goxで生成された実行ファイルを実行してみます

[f_prg@gom] $ ./gom_darwin_amd64
Hello, Gom

まとめ

GomとGoxを組み合わせると
パッケージ管理とクロスプラットフォームの構築が容易になりそうです。

補足、おまけ

windowsのexeは、検証しておりません。

参考資料・リンク

https://github.com/mitchellh/gox

golang
go言語の管理ツールのgom(Go Manager)を使う
Macgolanggom

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
go言語の管理ツールのgom(Go Manager)を使ってみようと思います。

gomのセットアップをします

goコマンドのgetでセットアップします。

[f_prg@gom] $ go get github.com/mattn/gom

確認してみます。

[f_prg@Documents] $ which gom
/Users/f_prg/.goenv/shims/gom

Gomfileを作成します

[f_prg@gom] $ gom gen gomfile
[f_prg@gom] $ ls
Gomfile
[f_prg@gom] $ vim Gomfile
[f_prg@gom] $ cat Gomfile
gom "github.com/mitchellh/gox"

パッケージをインストールします

[f_prg@gom] $ gom install
downloading github.com/mitchellh/gox
[f_prg@gom] $ ls
Gomfile _vendor

main.goファイルを用意します

[f_prg@gom] $ cat main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello, Gom")
}

パッケージを使って、実行してみます

Goxパッケージを使ってみました。

[f_prg@gom] $ gom exec gox -build-toolchain
The toolchain build can't be parallelized because compiling a single
Go source directory can only be done for one platform at a time. Therefore,
the toolchain for each platform will be built one at a time.

--> Toolchain: darwin/386
--> Toolchain: darwin/amd64
--> Toolchain: linux/386
--> Toolchain: linux/amd64
--> Toolchain: linux/arm
--> Toolchain: freebsd/386
--> Toolchain: freebsd/amd64
--> Toolchain: openbsd/386
--> Toolchain: openbsd/amd64
--> Toolchain: windows/386
--> Toolchain: windows/amd64
--> Toolchain: freebsd/arm
--> Toolchain: netbsd/386
--> Toolchain: netbsd/amd64
--> Toolchain: netbsd/arm
--> Toolchain: plan9/386
[f_prg@gom] $ gom exec gox
Number of parallel builds: 4

-->      darwin/386: _/Users/f_prg/Documents/dev/gom
-->    darwin/amd64: _/Users/f_prg/Documents/dev/gom
-->       linux/386: _/Users/f_prg/Documents/dev/gom
-->     linux/amd64: _/Users/f_prg/Documents/dev/gom
-->       linux/arm: _/Users/f_prg/Documents/dev/gom
-->     freebsd/386: _/Users/f_prg/Documents/dev/gom
-->   freebsd/amd64: _/Users/f_prg/Documents/dev/gom
-->     openbsd/386: _/Users/f_prg/Documents/dev/gom
-->   openbsd/amd64: _/Users/f_prg/Documents/dev/gom
-->     windows/386: _/Users/f_prg/Documents/dev/gom
-->   windows/amd64: _/Users/f_prg/Documents/dev/gom
-->     freebsd/arm: _/Users/f_prg/Documents/dev/gom
-->      netbsd/386: _/Users/f_prg/Documents/dev/gom
-->    netbsd/amd64: _/Users/f_prg/Documents/dev/gom
-->      netbsd/arm: _/Users/f_prg/Documents/dev/gom
-->       plan9/386: _/Users/f_prg/Documents/dev/gom
[f_prg@gom] $ ls
Gomfile                 gom_linux_386           gom_openbsd_amd64
_vendor                 gom_linux_amd64         gom_plan9_386
gom_darwin_386          gom_linux_arm           gom_windows_386.exe
gom_darwin_amd64        gom_netbsd_386          gom_windows_amd64.exe
gom_freebsd_386         gom_netbsd_amd64        main.go
gom_freebsd_amd64       gom_netbsd_arm
gom_freebsd_arm         gom_openbsd_386

goxで生成された実行ファイルを実行してみます

[f_prg@gom] $ ./gom_darwin_amd64
Hello, Gom

まとめ

rubyのbundlerと同様のように、パッケージ管理が簡単になります。

補足、おまけ

https://github.com/mattn/gom
に従うとエラーをしておりました。
サイトに従って作成して用意します。

gom 'github.com/mattn/go-runewidth', :tag => 'go1'
gom 'github.com/mattn/go-scan', :commit => 'ecb144fb1f2848a24ebfdadf8e64380406d87206'

# Execute only in the "test" environment.
group :test do
    gom 'github.com/mattn/go-sqlite3'
end

# Execute only for the "custom_group" group.
group :custom_group do
    gom 'github.com/golang/lint/golint'
end

サイト上では

gom 'github.com/mattn/go-runewidth', :tag => 'go1'

となってましたが、tagがないようなので

gom 'github.com/mattn/go-runewidth'

としました。

参考資料・リンク

https://github.com/mattn/gom

golang
goenvをセットアップする
Macgoenvgolang

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
goenvをセットアップしてみます。goenvはrbenvと同様に、golangのバージョンを管理し使用するものです。

goenvをインストールします

[f_prg@Documents] $ git clone https://github.com/wfarr/goenv.git ~/.goenv
Cloning into '/Users/f_prg/.goenv'...
remote: Counting objects: 73, done.
remote: Total 73 (delta 0), reused 0 (delta 0), pack-reused 73
Unpacking objects: 100% (73/73), done.
Checking connectivity... done.

パスの設定をします

~/.zshrcに記述します。または~/.bashrcですね。
記述後は、sourceコマンドで読むか下の2つのコマンド自体を実行しておきます。

export PATH="$HOME/.goenv/bin:$PATH"
eval "$(goenv init -)"

golangのインストールをします

今回は1.4をえらびました。

[f_prg@Documents] $ goenv install 1.4
  :
省略
  :
[f_prg@Documents] $ goenv versions
1.4

rbenvと同様にgolangを使えるように設定する

[f_prg@Documents] $ goenv global 1.4
Set /Users/f_prg/.goenv/version to use 1.4
[f_prg@Documents] $ goenv rehash
[f_prg@Documents] $ go version
go version go1.4 darwin/amd64

まとめ

これで、golangが使えるようになりました。

参考資料・リンク

https://golang.org/
https://github.com/wfarr/goenv

python
pyenvをMacにインストールしました。
Macpippyenvpython

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
pyenvをMacにインストールしましたので、方法のご紹介になります。

インストール

brewによりインストール

brew install pyenv-virtualenv pyenv
vim /Users/f_prg/.bashrc

.bashrcには下記を追記しておきます。

# pyenv
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
fi

pythonをインストールします。

pyenv -v
pyenv install -l
pyenv install 2.7.8
pyenv versions
pyenv global 2.7.8
pyenv versions
pyenv rehash

2.7.8をインストールし、設定しました。

pipのインストール

すでにMacに入っていたの3つをインストールしておきます。

pip install awscli
pip install sphinx
pip install ansible

まとめ

今回は、既存のMacのsystemからの移行を行いました。
パッケージの一覧を保存し、pipインストールを忘れないことが重要です。

補足、おまけ

下記のセットアップもしておくと、自動的にrehashがされるようです。
https://github.com/yyuu/pyenv-pip-rehash

参考資料・リンク

今回はございません。

Node.js
Macにパッケージで入れたNode.jsをアンインストールする
MacNode.jsnvm

Macにパッケージで入れたNode.jsをアンインストールする

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
nvmを使おうとしたところ、私のMacには既にpkgファイルからダウンロードしたnodeを使っていたので
削除した際の内容を紹介しようと思います。

アンインストール

コマンド

下記コマンドでアンインストールできます。

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
  sudo rm /usr/local/${i}
done
sudo rm -rf /usr/local/lib/node \
     /usr/local/lib/node_modules \
     /var/db/receipts/org.nodejs.*

まとめ

私は最初なんかWarningが出てきまして2回目で成功しました。
コマンドをコピペしてやったので、sudoでパスワード確認が通らなかった部分があったようです。
一回sudoをしてパスワード確認が入らないようにしておくとよいと思います。

参考資料・リンク

http://stackoverflow.com/questions/9044788/how-do-i-uninstall-nodejs-installed-from-pkg-mac-os-x

Ruby
MacにRubyのrbenvを構築する
MacRubyrbenv

MacにRubyのrbenvを構築する

はじめに

こんにちは。インフラエンジニアレベル001のf_prgです。
Ruby徹底攻略 (WEB+DB PRESS plus) という本を購入して、Macにrbenvの環境を作りましたので、その際の実行ログです。

構築

インストール

[17:57:57][f_prg@mba:~]# brew install openssl libyaml readline gmp
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/openssl-1.0
######################################################################## 100.0%
==> Pouring openssl-1.0.1g.mavericks.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, so it was not symlinked into /usr/local.

Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

The OpenSSL provided by OS X is too old for some software.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include

==> Summary
🍺  /usr/local/Cellar/openssl/1.0.1g: 429 files, 15M
Error: libyaml-0.1.5 already installed
To install this version, first `brew unlink libyaml'
Warning: It appears you have MacPorts or Fink installed.
Software installed with other package managers causes known problems for
Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/readline-6.
######################################################################## 100.0%
==> Pouring readline-6.3.5.mavericks.bottle.tar.gz
==> Caveats
This formula is keg-only, so it was not symlinked into /usr/local.

OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/readline/lib
    CPPFLAGS: -I/usr/local/opt/readline/include

==> Summary
🍺  /usr/local/Cellar/readline/6.3.5: 40 files, 2.1M
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/gmp-6.0.0a.
######################################################################## 100.0%
==> Pouring gmp-6.0.0a.mavericks.bottle.tar.gz
🍺  /usr/local/Cellar/gmp/6.0.0a: 15 files, 3.2M
[17:59:14][f_prg@mba:~]# git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Cloning into '/Users/f_prg/.rbenv'...
remote: Counting objects: 1889, done.
remote: Total 1889 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1889/1889), 297.15 KiB | 216.00 KiB/s, done.
Resolving deltas: 100% (1182/1182), done.
Checking connectivity... done.
[21:25:50][f_prg@mba:~]# git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/Users/f_prg/.rbenv/plugins/ruby-build'...
remote: Counting objects: 3548, done.
remote: Total 3548 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3548/3548), 601.68 KiB | 331.00 KiB/s, done.
Resolving deltas: 100% (1709/1709), done.
Checking connectivity... done.
[21:31:36][f_prg@mba:~]# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[21:31:59][f_prg@mba:~]# echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[21:33:27][f_prg@mba:~]# source ~/.bash_profile
[21:33:40][f_prg@mba:~]# rbenv install --list
Available versions:
  1.8.6-p383
  1.8.6-p420
  1.8.7-p249
  1.8.7-p302
  1.8.7-p334
  1.8.7-p352
  1.8.7-p357
  1.8.7-p358
  1.8.7-p370
  1.8.7-p371
  1.8.7-p374
  1.8.7-p375
  1.9.1-p378
  1.9.1-p430
  1.9.2-p0
  1.9.2-p180
  1.9.2-p290
  1.9.2-p318
  1.9.2-p320
  1.9.2-p326
  1.9.3-dev
  1.9.3-p0
  1.9.3-p125
  1.9.3-p194
  1.9.3-p286
  1.9.3-p327
  1.9.3-p362
  1.9.3-p374
  1.9.3-p385
  1.9.3-p392
  1.9.3-p429
  1.9.3-p448
  1.9.3-p484
  1.9.3-p545
  1.9.3-p547
  1.9.3-preview1
  1.9.3-rc1
  2.0.0-dev
  2.0.0-p0
  2.0.0-p195
  2.0.0-p247
  2.0.0-p353
  2.0.0-p451
  2.0.0-p481
  2.0.0-preview1
  2.0.0-preview2
  2.0.0-rc1
  2.0.0-rc2
  2.1.0
  2.1.0-dev
  2.1.0-preview1
  2.1.0-preview2
  2.1.0-rc1
  2.1.1
  2.1.2
  2.2.0-dev
  jruby-1.5.6
  jruby-1.6.3
  jruby-1.6.4
  jruby-1.6.5
  jruby-1.6.5.1
  jruby-1.6.6
  jruby-1.6.7
  jruby-1.6.7.2
  jruby-1.6.8
  jruby-1.7.0
  jruby-1.7.0-preview1
  jruby-1.7.0-preview2
  jruby-1.7.0-rc1
  jruby-1.7.0-rc2
  jruby-1.7.1
  jruby-1.7.10
  jruby-1.7.11
  jruby-1.7.12
  jruby-1.7.13
  jruby-1.7.2
  jruby-1.7.3
  jruby-1.7.4
  jruby-1.7.5
  jruby-1.7.6
  jruby-1.7.7
  jruby-1.7.8
  jruby-1.7.9
  jruby-9000+graal-dev
  jruby-9000-dev
  maglev-1.0.0
  maglev-1.1.0-dev
  maglev-2.0.0-dev
  mruby-1.0.0
  mruby-dev
  rbx-1.2.4
  rbx-2.0.0
  rbx-2.0.0-dev
  rbx-2.0.0-rc1
  rbx-2.1.0
  rbx-2.1.1
  rbx-2.2.0
  rbx-2.2.1
  rbx-2.2.10
  rbx-2.2.2
  rbx-2.2.3
  rbx-2.2.4
  rbx-2.2.5
  rbx-2.2.6
  rbx-2.2.7
  rbx-2.2.9
  ree-1.8.6-2009.06
  ree-1.8.7-2009.09
  ree-1.8.7-2009.10
  ree-1.8.7-2010.01
  ree-1.8.7-2010.02
  ree-1.8.7-2011.03
  ree-1.8.7-2011.12
  ree-1.8.7-2012.01
  ree-1.8.7-2012.02
  topaz-dev
[21:39:38][f_prg@mba:~]# rbenv install 2.1.2
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/f_prg/.rbenv/versions/2.1.2

[22:01:48][f_prg@mba:~]# rbenv global 2.1.2
[22:01:49][f_prg@mba:~]# rbenv rehash
[22:01:58][f_prg@mba:~]# ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]

まとめ

簡単にできました。
今後、OS入れ替えた際にまた必要になりそうですね。
次回は、Centos版も業務でやったので投稿しようと思います。

参考資料・リンク

rbenv
ruby-build