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아무것도 인쇄되지 않습니다.

제가 한 일은 이 두 파일을 수정하는 것 외에는 아무것도 하지 않았습니다.

다음 줄을 추가했습니다.$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

답변2

실행 파일을 복원하려면 다음 줄을 제거하세요.

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

man및 각각에 대한 문서 검색 경로를 복원하려면 다른 두 줄을 제거하십시오 info.

관련 정보