나는 일부 프로그램(bash 스크립트, Python 스크립트, Java 프로그램, C 프로그램)을 작성하거나 다운로드하여 /home/t/program_files/
.각 프로그램에 대해 경로 아래에 디렉토리를 만들고 해당 프로그램의 모든 파일을 해당 디렉토리에 배치했습니다. 주제별 유사성을 기준으로 프로그램을 그룹화하고 , , 및 과 같은 디렉토리를 추가로 만들고 OS
각 network
프로그램 document
의 디렉토리를 해당 디렉토리 중 하나로 이동했습니다.이런 방식은 프로그램을 논리적인 방식으로 구성하는 데 도움이 되고, 프로그램 파일을 더 빨리 찾을 수 있다고 생각합니다.
프로그램을 실행하려면 모든 프로그램에 대한 검색 경로를 지정해야 합니다 PATH
. 각 스크립트 또는 실행 파일의 경로를 수동으로 찾아 $PATH
이를 수행하는 빠른 방법은 다음과 같습니다.PATH
모든 하위 디렉토리 에 재귀적으로 추가/home/t/program_files/
, 그러나 이 방법의 문제점은 실행 파일이나 스크립트 파일을 직접 포함하지 않고 다른 파일(예: Java 및 C 소스 파일)을 포함하는 디렉터리를 추가하고 PATH
검색할 경로가 셸에 너무 많다는 것입니다. 꽤 오랜 시간 동안 명령을 실행했습니다.
위의 문제를 해결하는 좋은 방법은 무엇입니까?
자일스의 대답추천집어 챙겨 넣다. Stow에 대해 조금 읽은 후 나는 그것이 심볼릭 링크를 생성하고 심볼릭 링크가 여전히 대상 파일과 동일한 방식으로 구성된다는 것을 알게 되었습니다. 제가 맞다면 프로그램의 검색 경로를 지정하는 문제에는 도움이 되지 않습니다. . 내 문제를 해결하는 데 도움이 될 수 있는 Stow에 대한 일부 정보를 놓쳤습니까?
다른 방법내가 알고 싶은 것은
/home/t/program_files/
각 파일이 아래에서 실행 가능한지 재귀적으로 확인하고, 그렇다면 아래에 심볼릭 링크를 만들고/home/t/bin/
상위 디렉터리의 경로 이름을PATH
.또한 사람들이 타사 프로그램을 만들고 다운로드하여 자신의 홈 디렉터리에 설치하려는 경우가 매우 일반적이라고 생각합니다. 그러한 프로그램을 구성하는 데 권장되는 방법은 무엇입니까? 프로그램을 정리할 때 각 프로그램의 모든 파일을 자신의 디렉토리에 넣지 않습니까?
감사해요.
답변1
저는 경험이 없고 stow
잘 모르지만 귀하의 질문에 대한 답변으로 몇 가지 논리를 제안하거나 링크를 사용할 수 있습니다.
작성한 대로 프로그램 을 /home/t/program_files/
.GHR_Communicator
communicators
ghrc
/home/t/program_files/communicators/GHR_Communicator/ghrc
이제 개인 실행 파일에 대해 공용 폴더를 지정한다고 가정합니다 . 이 폴더가 변수에 포함해야 하는 유일한 폴더 /home/t/bin
입니다 . PATH
일부 배포판에는 기본적으로 포함되어 있으므로 버전을 PATH
확인 PATH
하고 필요한 경우 추가하세요.
이 간단한 이름으로 호출 하려면 실행 파일에 대한 링크를 ghrc
만들기만 하면 됩니다 .~/bin
$ ln -sr ~/program_files/communicators/GHR_Communicator/ghrc ~/bin
이제 다음과 같이 전화하세요 ghrc
.
$ ghrc
당신은 그것을 실행했습니다.
답변2
저는 Stowe가 아마도 해당 작업에 적합한 도구라는 Giles의 의견에 동의합니다. Stow의 기본 모델은 각 소프트웨어마다 하나씩 특정 디렉터리에 소프트웨어를 설치하는 것입니다.매뉴얼 로딩/usr/local/stow/perl
예제로 사용된 Perl과 Emacs는 각각 및 에 설치되어 있습니다 /usr/local/stow/emacs
. 이 디렉토리 내에는 일반적인 구조 bin
등이 있습니다 share
. Stow는 디렉터리 및/또는 파일을 대상(일반적으로)에 심볼릭 링크하여 소프트웨어를 "설치"합니다 /usr/local
. 설치하면 다음과 같이 사용할 수 perl
있습니다 . 따라서 PATH 만 추가하면 됩니다 ./usr/local/stow/perl/bin/perl
/usr/local/bin/perl
/usr/local/bin
Stow에게 다음을 사용하라고 지시할 수 있습니다.여러 저장소 디렉터리, 그러면 문제가 해결될 것입니다. 아래의 일반적인 디렉토리 구조와 일치하는 디렉토리 구조를 갖고 있는 한 각각의 개별 소프트웨어 부분은 /usr/local
Stow를 통해 관리될 수 있습니다 .
Stow는 또한 홈 디렉토리에 저장된 프로그램 및 다양한 구조와 함께 작동합니다. 이를 통해 프로그램을 별도의 디렉토리에 설치하면서도 단일 공유 디렉토리(예를 들어 ~/.local/bin
).
소스에서 프로그램을 빌드할 때 Stow에 대한 일반적인 접근 방식은 ./configure
최종 대상 접두사( /usr/local
)(또는 이에 상응하는 항목)를 사용하여 실행하고 Stow 디렉터리 내의 대상 디렉터리를 사용하여 소프트웨어를 설치하는 것입니다(예: /usr/local/stow/perl
매뉴얼에 /usr/local/Programming/perl
있음 ). /usr/local/Programming
Stow 디렉터리 로 사용됨 ) . 그런 다음 Stow를 사용하여 적절한 기호 링크를 추가하여 소프트웨어를 사용할 수 있게 만들 수 있습니다.