Heavy Watal

開発環境

Linux

ユーザ追加

ユーザーを作って管理権限を与える:

# adduser USERNAME
# gpassed -a USERNAME sudo

すぐ入れるパッケージ

sudo apt-get install:

build-essential
zsh
tmux
git

これらシステム標準のものが古すぎたり、 管理者権限がなくて自由にインストールできない場合は 次の Linuxbrew を利用してユーザのホームに入れる。

Linuxbrew

http://linuxbrew.sh/

Macの Homebrew をLinuxに移植したパッケージマネージャ。

  1. RHEL/CentOS 6系の場合まずlibcurlが古すぎるので、 最新のcurlをソースコードからインストール:

    % wget -O- https://curl.haxx.se/download/curl-7.59.0.tar.gz | tar xz
    % cd curl-7.59.0/
    % ./configure --prefix=${HOME}/opt/local
    % make -j4
  2. git --version を確認して 1.7.12 未満だったら 最新のgitをソースコードからインストール:

    % wget -O- https://github.com/git/git/archive/v2.16.3.tar.gz | tar xz
    % cd git-2.16.3/
    % autoreconf -i
    % ./configure --prefix=${HOME}/opt/local --with-curl=${HOME}/opt/local
    % make -j4
    % make install
  3. 上記の自前curl/gitを利用するために環境変数をセット:

    export PATH=${HOME}/opt/local/bin:$PATH
    export HOMEBREW_NO_ENV_FILTERING=1
  4. Linuxbrewを ~/.linuxbrew にインストール:

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
  5. gccをインストール: brew install gcc

    OS標準のgccやglibcが古すぎて glibc cannot be built with any available compilers と怒られる場合は、 まずglibc抜きでgccをインストールし、そのgccでglibcをビルドして、 gccを入れ直す、という手間が必要:

    HOMEBREW_BUILD_FROM_SOURCE=1 brew install gcc --without-glibc
    brew install glibc
    brew remove gcc
    brew install gcc

    それでもうまくいかないときは HOMEBREW_NO_ENV_FILTERING=1 brew install --force-bottle glibc とかでいいのか…

  6. あとは欲しいものを brew install ___

    zsh --without-etcdir
    tmux
    pyenv
    boost
    

Mac

Command Line Tools

コンパイラや make などはOSに付いてこないので別途インストールが必要。 https://developer.apple.com/downloads/ からダウンロードするか、 ターミナルから以下のコマンドを実行:

% xcode-select --install

インストールされているバージョンなどを確認するには:

% pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
% clang -v

総合開発環境 Xcode をインストールしたければ、App Store から Xcode を選択。

パッケージ管理ツール

その他のプログラム

リソースフォークを無視

tar などでリソースフォークを無視:

if [ $(uname) = Darwin ]; then
    export COPYFILE_DISABLE=true
    export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
fi

共通

Python

C++

R

/rstats/config

エディタ

Trash

rm はゴミ箱を経由せず削除してしまうので、 間違って消してしまっても基本的には元に戻せない。 以下のような対策によりその危険が少しは減るかも。

alias rmi='rm -i'

ホントに消していいかどうか確認してくれるようなオプションつきのエイリアスを .zshrc に設定しておく。

% rmi .DS_Store
rm: remove regular file '.DS_Store'?

エイリアス名を rm そのものにしてしまうと、 結局ろくすっぽ確認せず y を押す癖や、 いちいち確認されないように rm -rf する癖がつくので逆に危険。 普段は rmi を使う癖をつけ、必要なときたまに rm を使い、 -f はよほどのことが無い限り使わないようにする。

trash-cli

Python製なので pippip install trash-cli して入れる。 すると以下のようなコマンドがインストールされる:

restore-trash
trash
trash-empty
trash-list
trash-put
trash-rm

ちなみにLinuxのゴミ箱は ~/.local/share/Trash

rmtrash

Macでも trash-cli を使えないことはないが、 ゴミ箱のパスがMac標準の ~/.Trash ではなく Linuxのものになってしまうので Homebrewrmtrash を入れる:

% brew install rmtrash