ほぼ1年間機能していた私のoh-my-zshインストールが壊れたところです。ターミナルを開くと、次のようになります。
_/home/marcel/.oh-my-zsh/lib/theme-and-appearance.zsh:2: colors: function definition file not found
/home/marcel/.oh-my-zsh/oh-my-zsh.sh:78: compinit: function definition file not found
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:80: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:93: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:100: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:109: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:119: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:129: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:138: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:144: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:147: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:150: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:153: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:163: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:166: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:168: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:182: command not found: compdef
/home/marcel/.oh-my-zsh/plugins/git/git.plugin.zsh:193: command not found: compdef
$SPACESHIP_Prompt_TRUNC is deprecated. Use $SPACESHIP_DIR_TRUNC instead.
spaceship_setup:3: add-zsh-hook: function definition file not found
spaceship_setup:4: add-zsh-hook: function definition file not found
$SPACESHIP_Prompt_TRUNC is deprecated. Use $SPACESHIP_DIR_TRUNC instead.
spaceship_setup:3: add-zsh-hook: function definition file not found
spaceship_setup:4: add-zsh-hook: function definition file not found
_
私は周りを見回しましたが、他の多くの回答はcompaudit
を実行することを提案しています。これを実行すると、_zsh: compaudit: function definition file not found
_が得られます。
rm ~/.zcompdump*
_/usr/share/zsh/functions
_を_$fpath
_に追加するchown -R 755 /usr/share/zsh/functions
_zsh -f
_内でcompaudit
をロードして実行するuname -a
_:_Linux Hermes 4.11.6-1-Arch #1 SMP PREEMPT Sat Jun 17 08:19:42 CEST 2017 x86_64 GNU/Linux
_zsh --version
_:zsh 5.3.1 (x86_64-unknown-linux-gnu)
which zsh
_:_/usr/local/bin/zsh
_権限の問題であることを確認しました。私が行った場合
_Sudo zsh -f
autoload -U compaudit
compaudit
_
コマンドは期待どおりに機能します。それから私はしました
_Sudo chmod 777 /usr/share/zsh/ -R # Just for testing I promise
_
compaudit
を実行すると、まだ_zsh: compaudit: function definition file not found
_が表示されます。
私も試しました
_Sudo chown user:users /usr/share/zsh/ -R
_
そしてそれはまだ機能していません。これらすべてのファイルが私のユーザーによって所有されており、777である場合、zshはユーザーとしてではなくrootとしてどのように機能しますか?
colors、compinit、gitプラグイン#4757のインストールの問題 の手がかりによると、 "$ FPATH変数の内容 "には、問題の解決に役立つ関数をインストールした場所の正しいパスが含まれています。
さらに、zshの内容をルートや$FPath
ですでに定義されているパスなどの場所にコピーすると、この問題の解決にも役立つ場合があります。
最初に行うことは、FPATH変数の内容を確認することです:echo $ FPATH。通常の状況では、次のようなものを返します:
/home/charmander/.oh-my-zsh/plugins/git:/home/charmander/.oh-my-zsh/functions:/home/charmander/.oh-my-zsh/completions:/home/charmander/.oh-my-zsh/plugins/python:/home/charmander/.oh-my-zsh/plugins/pip:/home/charmander/.oh-my-zsh/plugins/git:/home/charmander/.oh-my-zsh/functions:/home/charmander/.oh-my-zsh/completions:/usr/share/zsh/site-functions:/usr/share/zsh/5.0.2/functions
。私の場合、それは戻りました:
/opt/intel/composer_xe_2011_sp1.7.256/mkl/include
。 .oh-my-zshを削除して実行しようとすると、zshのみが次のように返されます:/usr/share/zsh/5.0.2/scripts/newuser:6: zsh-newuser-install: function definition file not found
。 Webで検索このバグレポートを見つけました: zsh:多くの関数定義にzsh-newuser-install、compinitなどがありません インテル®コンパイラーによって変数が上書きされる可能性があると言っています:/したがって、このコマンドchsh -s $(which zsh)を実行できない場合、この問題の回避策は、.bash_profileに次の行を挿入することです。
FPATH=/home/modelagem/beatriz.fonseca/.oh-my-zsh/plugins/python:/home/modelagem/beatriz.fonseca/.oh-my-zsh/plugins/pip:/home/modelagem/beatriz.fonseca/.oh-my-zsh/plugins/git:/home/modelagem/beatriz.fonseca/.oh-my-zsh/functions:/home/modelagem/beatriz.fonseca/.oh-my-zsh/completions:/usr/share/zsh/site-functions:/usr/share/zsh/5.0.2/functions export FPATH
さらに、 colors:関数定義ファイルが見つかりません#4607 からの手がかりに従って、他の人が$HOME/usr/share/zsh/'version of zsh'/functions
を追加して、zshを$HOME/usr
としてインストールすることでこの問題を解決したようです。この問題を引き起こす可能性があります。
FPATH The search path for function definitions. The directories in this path are searched for a file with the same name as the function or command when a function with the -u attribute is referenced and when a command is not found. If an executable file with the name of that command is found, then it is read and executed in the current environ-ment. environment. ment. Unlike PATH, the current directory must be represented explicitly by . rather than by adjacent : characters or a beginning or ending :.
9.1自動読み込み機能
関数は、組み込みのautoload(または「functions-u」または「typeset-fu」)を使用して未定義としてマークできます。そのような機能には本体がありません。関数が最初に実行されるとき、シェルはfpath変数の要素を使用してその定義を検索します。
2つの別々のバージョンのZSHがインストールされている場合にも、このエラーが発生する可能性があるという短いメモを追加したいと思います。実際のログインシェルに使用しているZSHのバージョンと互換性のないものがFPATHにないことを確認してください。