LoginSignup
6
2

More than 5 years have passed since last update.

cask コマンドがエラーを出し始めたら

Last updated at Posted at 2017-09-06

はじめに

ある日突然(というか最近)Caskがうまく動かなくなったので,解決策を模索しました.

以下の要件に合致する人向けの記事です.

  • MacOSX ユーザ
  • Emacs のパッケージを Cask で管理している
  • depends-on のオプションで URI を指定している(特に Github の)
  • Dependency で始まる謎のエラーが発生して処理が止まる

現象

cask install あるいは cask update を発行すると,次のようなエラーが表示されて処理が止まってしまう.

error
Dependency moom failed to install: Command ’(env LC_ALL=C
git remote show -n origin)’ exited with non-zero status 128:
fatal: Not a git repository (or any of the parent directories): .git

Dependency の後ろがインストールが失敗するパッケージ名で, Cask ファイルに次のように記載されている(一例).

Cask
(depends-on "moom" :git "https://github.com/takaxp/moom.git")

これは MELPA等のリポジトリに登録されていないパッケージを URIを直接指定してインストールするための設定です.

(余談)最近 MELPA から除外された yatex を管理するには,次の設定を使います.
(後日談)パッケージオーナー様にご協力いただき,yatex はめでたく MELPA に戻りました.

Cask
(depends-on "yatex" :hg "http://www.yatex.org/hgrepos/yatex")

対策

temporary-file-directory の値を確認して,Cask用の一時フォルダを削除する

手順

(留意点)以下は自己責任で実施してください.著者は一切の責任を負いません.

  1. Emacs を起動して temporary-file-directory の値を確認する
    • 例:/var/folders/dj/hk----------g28--v5f----------/T/
  2. 当該ディレクトリに移動して cask ディレクトリを特定する
    • 例:./T/cask のはずです.
  3. 特定したcaskディレクトリを削除する(それ以外のディレクトリには触れないこと)

おわりに

この問題は,「~/.emacs.d/.cask 以下に置かれるファイル群を削除しても意味がない」のが落とし穴です.上に示した場所にあるファイル群を削除することで読者の問題が解決することをお祈り申し上げます.

繰り返しますが(他のプログラムが使用しているであろう)Caskに関係ない一時フォルダには触らないようにしてください.

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2