カテゴリー
UNIX/Linux

Homebrew のエラー

いつものように Homebrew をアップデートしようとすると以下のようなエラーが吐き出されました。

Warning: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.
You should probably change the ownership and permissions of /usr/local
back to your user account.
Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours, this is a long time in brewland!
To update Homebrew, run `brew update`.

なので調べてみると

$ ls -lad /usr/local
drwxr-xr-x  17 root  wheel  578  2  3 06:02 /usr/local

とのこと。では、所有者をユーザーに替えてみる

$ sudo chown -R `whoami` /usr/local
$ ls -lad /usr/local
drwxr-xr-x  18 userName  wheel  612  3  1 02:55 /usr/local

すると、今度は違うエラーが吐き出される

Warning: You have uncommitted modifications to Homebrew
If this a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason.
    cd /usr/local/Library && git stash && git clean -d -f
Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours, this is a long time in brewland!
To update Homebrew, run `brew update`.

エラー内容の指示に従って

$ cd /usr/local/Library && git stash && git clean -d -f
$ brew update

を実行してすべて解決!
先日の OS X Mavericks 10.9.2 アップデートで書き変わっちゃったのかな。

カテゴリー
UNIX/Linux

brew link エラー

Xcode 5.0.1 からコマンドラインツールのインストールが変更になったのかな? これまでだったら「環境設定」からインストールできていたのに出来なくなっていました。と、云うことでコマンドラインからインストール。

$ xcode-select --install

コマンドラインツールのインストール

このコマンドを実行すると「コマンドを実行するには、コマンドライン・デベロッパ・ツールが必要です。ツールを今すぐインストールしますか?」と聞いてくるので「インストール」ボタンを押してインストールを完了。

Xcode がアップデートされると毎回表示されるエラーメッセージ。

Warning: You have unlinked kegs in your Cellar Leaving kegs unlinked can lead to build-trouble and cause brews that depend on those kegs to fail to run properly once built. Run brew link on these:

git

リンクが切れてるよ! ってことなので $ brew link git を実行すると

Error: Could not symlink file: /usr/local/Cellar/git/1.8.4.3/bin/git-upload-pack Target /usr/local/bin/git-upload-pack already exists. You may need to delete it. To force the link and overwrite all other conflicting files, do: brew link --overwrite formula_name

To list all files that would be deleted: brew link --overwrite --dry-run formula_name

こんなエラーが出たので

$ brew link --overwrite git

とやって強制的に書き換えました。あとは $ brew doctor とやって先生に診てもらって異常がなければ大丈夫。

カテゴリー
UNIX/Linux

MacPortsをクリーニング

MacPortsで入れているソフトウェアをアップグレードしていくと、その残骸であるテンポラリファイルや古いバージョンで塵が積もるようにディスクスペースを圧迫してきます。たまにクリーニングしてあげることですっきりさせてあげましょう。
まずはディスクスペースをどれくらい使っているかの確認
du -sh /opt
次にテンポラリファイルの整理
sudo port clean –all installed
そして古いバージョンの整理
sudo port -f uninstall inactive
あまりソフトウェアを入れていない私の環境でも591M => 347Mに節約できることが出来ました。アップグレードの度にクリーニングを行っているのでこれくらいで収まっていると思います。

カテゴリー
UNIX/Linux

ターミナルの設定ファイル

ターミナルのテーマおよび設定ファイル
Snow Leopardになって変わっている部分もあるのでアップデートしました。設定ファイルで使わないだろうという部分は削っています。

カテゴリー
UNIX/Linux

command拡張子が便利

シェルスクリプトについて調べていたら偶然にcommnad拡張子が使えることを知りました。shの代わりにcommandと付けておくとスクリプトファイルをダブルクリックするだけでシェルスクリプトが実行されるのです。sudo認証が必要な時は、ターミナル.appが自動的に起動してパスワードを要求して入力が終わるとウインドウが閉じます。
shellscript.command
試しに先日エントリーした「Snow LeopardでVolume Logicを使う」の一連のファイル操作をシェルスクリプトで書いてみました。

カテゴリー
UNIX/Linux

MacPortsの再構築

なんとなくMacPorts環境とGitHub環境を再構築しました。不具合が生じたとか、ファイル構造がおかしくなったとかじゃないんですけど、いろんなコマンドをいじり倒したのでここでクリーンな環境に戻して使い続けようかなと。現段階だと再構築しても被害が少ないので。再構築手順も押さえておきたいという気持ちから行いました。
まずは MacPortsのアンインストール から

sudo rm -rf \
    /opt/local \
    /etc/manpaths.d/macports \
    /etc/paths.d/macports \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0

インストール はディスクイメージから行いました。インストールが完了したら .bash_profile へパスを書き入れておきましょう。コマンドパスとmanページの表示を行う上で重要です。

# MacPorts Path --------------------------
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/share/man:/opt/local/man:$MANPATH

お好みのものをインストール。私は、bash, vim, git-core, lv, nkf をとりあえず入れておきました。

カテゴリー
UNIX/Linux

MacPortsのアップグレードでエラー

コマンドラインツールのインストールや更新に便利なパッケージ管理ソフト The MacPorts を使っている訳ですが、インストールされているコマンドツールが更新されていたのでアップグレードしたところ、いくつかのエラーが出てインストールされないものが出たのでした。
– cyrus-sasl2
– curl
この2つがエラーをはいてインストールされない。cyrus-sasl2 についてはエラー内容を読むと、アンインストールしてからインストールするように書かれていたので、その手順でやるとインストールできました。
$ sudo port -f uninstall cyrus-sasl2
$ sudo port install cyrus-sasl2
次に、curl なんですが、エラー内容を読んでもよくわからないので
$ sudo port clean curl
$ sudo port install curl
と実行したら、なんかうまくいったみたい。ふぅ〜、よかった。

カテゴリー
UNIX/Linux

SayKanaコマンド

SayKana : かな入力したものを合成音声で喋らせるコマンドラインツール

(Via SayKana: わかばマークのMacの備忘録.)

面白そうなので入れてみた。

$ saykana "こんにちわ、いいてんきですね。"
カテゴリー
UNIX/Linux

.xzという新しい圧縮フォーマット

GNUプロジェクトから3月5日にGNU tar 1.22がリリースされました。新しいバージョンでは、新たに「xz圧縮フォーマット」をサポートする“–xz”オプションが追加されています。(“-J”にショートカットがアサインされている)。
.tar.xzフォーマットでは、圧縮時間が約7倍かかるものの一般的に利用されている.tar.gzフォーマットと比べ約40%のサイズまで圧縮効率が向上しています。
この目新しい.tar.xzフォーマットでアーカイブ圧縮して配布することはないとしても、このフォーマットをダウンロードして伸張解凍することはあるだろうなぁということで環境を整えました。そのうちGUIアプリケーションで対応するものが出てくるとは思いますが、現時点では対応するアプリケーションがないのでコマンドラインから行うしかないようです。
404 Blog Not Found:tips – xzってどうよ!?
xzコマンドとGnu Tar 1.22以降をMacPorts経由でインストール
$ sudo port selfupdate
$ sudo port install gnutar xz-devel
伸張解凍には、aliasを.bashrcに書き込んでおくと便利かもね。
alias unxz=”/opt/local/bin/gnutar Jxvf”

カテゴリー
UNIX/Linux

SSHパスワードなしでログイン

エントリー「SSH 秘密鍵を利用する | appling weblog」の続きになります。
パスワード(パスフレーズ)を指定することなくログインできる秘密鍵を作成できることを知りました。パスワードを指定していてもキーチェインに登録できるので、パスワード入力の煩わしさを感じていなかったんだけどパスワードなしでログインできるのはそれはそれで便利かなと導入してみることに。
404 Blog Not Found:tips – sshでパスワード無しログイン
ssh-keygenオプション「`-N ”`」を利用するのがポイント。
$ ssh-keygen -d -f ~/.ssh/nopass-dsa -N ”
リモート先の認証ファイルを書き換えたとして、試しにログインしてみましょう。
$ ssh -i ~/.ssh/nopass-dsa remote.example.com
当然ですが、使用感はこれまでと変わりません。