Bashは人のための間違った実行可能ファイルを探しています。

Bashは人のための間違った実行可能ファイルを探しています。

私は最近TeX-Liveをインストールし、そのmanをmanpathに追加してみました。うまくいかず、アイテムが見つからず、あまり気にしませんでした。しかし、システムを再起動した後、manコマンドは完全に機能しないようです。

:~$ man man
bash: /mnt/HDD/texlive/2021/bin/x86_64-linux/man: cannot execute binary file: Exec format error

なぜTeX Liveのバージョンを探しているのかわかりません。

:~$ whereis man
man: /usr/bin/man /usr/local/man /usr/share/man /mnt/HDD/texlive/2021/bin/x86_64-linux/man /usr/share/man/man7/man.7.gz /usr/share/man/man1/man.1.gz

私は両方を~/.bashrc修正/etc/manpath.configしました。この回答は許可されました。、両方回復しました。新しいbashrcファイルを試したり、ログアウトしたり、再度ログインしたり、システムを再起動したが再び動作sourceできないようです。man

ここで何が問題であり、どのように回復でき、man何を無視できますか?明らかに、マンページにTeX Liveを正常に追加することには興味がなく、コマンドが再びman機能したいと思います。


編集:追加情報

パス変数は次のとおりです。 (ここで読みやすいように、出力intを複数行に分割してコロンを削除しました。)

:~$ echo $PATH
/mnt/HDD/texlive/2021/bin/x86_64-linux
/home/<username>/.local/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin:/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

一番上にあるのはラテックスプロジェクトを構築するために必要なものでなければならないので、問題が発生するとは思いません。

また、echo $MANPATH何も印刷されません。

私がしたことは、これら2つのファイルを変更する以外に何もしませんでした。

次の行を追加しました。$HOME/.bashrc

PATH=/mnt/HDD/texlive/2021/bin/x86_64-linux:$PATH; export PATH
MANPATH=/mnt/HDD/texlive/2021/texmf-dist/doc/man:$MANPATH; export MANPATH
INFOPATH=/mnt/HDD/texlive/2021/texmf-dist/doc/info:$INFOPATH; export INFOPATH

# set up PATH to MANPATH mapping次に、セクションの最後に次の行を追加しました。/etc/manpath.config

MANPATH_MAP /mnt/HDD/texlive/2021/bin/x86_64-linux    /mnt/HDD/texlive/2021/texmf-dist/doc/man

その後、source ~/.bashrc任意のTeXエントリのマニュアルページを実行してアクセスしようとしましたが、関連エントリが見つからないというメッセージが表示されました。したがって、TeXでは動作しなくてもmanコマンドは動作し続けます。

私はそれをここに残し、数日後に私が説明した問題を発見したと思います。私が言ったように、上記のすべての内容をキャンセルします。

時間がかかるので、必ず何をしていたのか、特にファイルに何があったのか分からず、他のことをしたかもしれませんが、他のことをした記憶がありmanpath.configません。そのような問題を引き起こす可能性のある措置に関する提案がある場合、またはいかなる場合でもこの問題を解決する方法(もちろん、Linuxを再インストールするなどの作業は含まれていません)がある場合は感謝します。

ベストアンサー1

珍しいことが必要な場合は、 " MANPATH"はコマンドがページをman見つける場所を制御します。manデフォルトの場所を有効にするには、設定しないでください。man manこの問題をいつ解決したかを確認してください。

$PATH」はコロンで区切るシェルが実行可能プログラムを検索するディレクトリのリストです(別名、関数、または組み込み以外のものを入力する場合)。に最初の項目を入れると
(機能しない)コマンドが表示されます。いつ修正されたのか見ますか?最後に入れてください。行を次に変更します。/mnt/HDD/texlive/2021/bin/x86_64-linuxPATHtexlivemanman bash
texlivePATH.bashrc

PATH=$PATH:/mnt/HDD/texlive/2021/bin/x86_64-linux

再起動するには、ログアウト/ログインしてください。

「コロンで区切られた」リストをbashデータ型として使用する方法の詳細については、2000年のLinux Journalで説明されているStephen Collyerのbash_path_funcsを使用してください。

https://www.linuxjournal.com/article/3645 https://www.linuxjournal.com/article/376​​ 8 https://www.linuxjournal.com/article/3935

addpathこの関数は、最初にそのエントリがパスに存在しない場合にのみパスにエントリを追加します。delpath -nパスに存在しないディレクトリを削除します。

pathfunc.tgzからファイルを受け取ることができます。https://web.archive.org/web/20061210054813/http://www.netspinner.co.uk:80/Downloads/pathfunc.tgz

おすすめ記事