내 연구실 연구를 위해 업데이트된 Docker 컨테이너를 실행하려고 할 때 사용 중이던 패키지 중 하나에서 "run"이라는 누락된 셸 명령과 관련된 오류가 발생했습니다. 특히 MIRTK 패키지의 DrawEM 스크립트에 있으며 그 중 하나는 다음에서 찾을 수 있습니다.https://github.com/DevelopmentalImagingMCRI/MCRIBS/blob/master/MIRTK/MIRTK/Packages/DrawEM/scripts/preprocess.sh
(라인 41은 이 명령에 대한 첫 번째 호출입니다 run mirtk convert-image T2/$subj.nii.gz N4/${subj}_rescaled.nii.gz -rescale 0 1000 -double
.)
이전 Docker 이미지와 파생 컨테이너가 동일한 패키지를 사용했지만 이 문제가 없었고 동일한 종속성이 설치되어 있다는 점을 고려하면 이는 이상합니다. 이를 위해 bash 쉘을 사용합니다.
내 시스템이나 docker 컨테이너에서 이 명령이나 해당 매뉴얼 페이지를 볼 수 없지만 온라인 매뉴얼 페이지는 여기에서 찾을 수 있습니다. https://linux.die.net/man/1/run
또한 이를 통해 제작자의 메일링 리스트 대화 중 일부를 보게 되었습니다. https://lkml.org/lkml/2001/12/10/226
도구에 대한 작업이 업데이트되는 위치에 대한 (깨진) 링크를 제외하고: http://www.ccur.com/realtime/oss
WayBack 시스템을 확인하십시오(https://archive.org) 이 사이트에서는 이전 패키지나 대체 링크를 얻을 수 있는 방법을 찾지 못했습니다.
또한 이 문제를 암시하는 온라인에서 찾은 유일한 다른 스레드는 다음과 같습니다. https://www.linuxquestions.org/questions/linux-newbie-8/bash-run-command-not-found-316132/
새로운 사용자 중 한 명은 Linux에서 명령을 실행하는 표준 절차가 "실행"이라고 잘못 믿었고, 일부 사용자는 이것이 불필요하다고 설명했으며, 어떤 사용자는 실제로 그러한 명령이 존재하지 않는다고 지적했습니다.
마지막으로, 다운로드할 수 있는 도구 버전을 검색하면
apt-cache search run
이름이나 설명에 "run"이 포함되어 있지만 기본 실행 명령은 없는 많은 도구가 나왔습니다.
나는 내 자신을 Linux 초보자라고 생각하지 않지만 이것은 확실히 내 머리를 긁적입니다. 내 연구에서 도구에 대한 희박한 참조를 찾을 수 있었고 "bash 실행 명령", "bash 실행을 찾을 수 없음", "실행 명령을 찾을 수 없음" 등과 같은 키워드가 있다는 사실을 검색했기 때문에 적은 숫자는 아닙니다. 관련 없는 쿼리가 너무 많습니다. 또한 우리가 사용하는 특정 패키지에 대한 지원은 매우 제한적입니다.
이 도구를 수동으로 설치/다운로드하는 방법을 알고 있는 사람이 있거나 내 컨테이너/시스템에 이를 인식하도록 지시하는 방법을 알고 있거나 내가 생각하지 못한 대체 해결 방법/솔루션을 알고 있다면 크게 감사하겠습니다!
감사해요
답변1
@JeffSchaller 및 @G-ManSays 'ReinstateMonica'에게 감사드립니다.
나는 도구 자체에서 사용되는 다양한 첨자에 정의된 bash 함수 "run"에 대한 별도의 정의가 부족하여 문제가 발생한다는 것을 발견했습니다. 우리가 받은 빌드에는 스크립트에서 이러한 정의가 누락된 것 같아서(따라서 "명령: 실행을 찾을 수 없음") 이를 다시 추가하고 테스트를 계속할 수 있었습니다. 나는 우리가 사용하고 있던 도구의 이전 버전을 참조하고 이전에 포함된 정의가 한 번에 존재했지만 제거된 것을 확인함으로써 이를 알아냈습니다. 현재 도구/경로 누락으로 인해 몇 가지 다른 문제가 발생하고 있지만 디버깅 프로세스를 꽤 잘 진행하여 이 문제를 해결했습니다. 하지만 이 스레드가 시작한 문제는 해결되었습니다!
미래의 사람들을 위해: bash 함수의 스크립트 내 정의를 확인하십시오. 그렇지 않으면 해당 기능을 놓치거나 무시할 수 있습니다.