it-swarm-ko.tech

어디서나 프로그램을 실행 가능하게 만드는 방법

현재 디렉토리에 관계없이 주어진 프로그램을 실행하려면 어떻게해야합니까? /bin 폴더에 프로그램에 대한 심볼릭 링크를 만들어야합니까?

79
aneuryzm

명령 줄에 export PATH=$PATH:</path/to/file> 만 입력하면 세션 기간 동안 만 지속됩니다.

영구적으로 변경하려면 ~/.bashrc 파일에 export PATH=$PATH:</path/to/file>를 영구적으로 추가하십시오 (끝 부분에는 문제가 없습니다).

55
oadams

짧은 대답은 디렉토리를 불문하고 프로그램을 실행하려면 검색 경로에 프로그램 디렉토리가 있어야한다는 것입니다. 프로그램을 해당 경로에 이미있는 폴더에 넣거나 경로에 새 폴더를 추가하면 문제를 해결할 수 있습니다. 가장 좋은 대답은 다음에 달려 있습니다.

이 프로그램은 소스에서 직접 컴파일 한 다운로드 프로그램입니까?

설치 메커니즘이 이미있을 것입니다. 프로그램을 컴파일 한 폴더에서 root로 'make install'을 실행하십시오.

이 프로그램은 컴퓨터의 표준 프로그램의 일부로 사용 가능하게하려는 다운로드 된 프로그램입니까?

이러한 응용 프로그램을 표준 폴더에 넣는 것이 좋습니다. 이러한 프로그램에/usr/local/bin과 같은 디렉토리를 사용하는 것이 일반적입니다. 이를 위해서는 루트 액세스 권한이 필요합니다.

이 프로그램은 귀하가 직접 작성했거나 컴퓨터에 특별한 권한이없는 프로그램입니다.

홈 디렉토리에 'bin'이라는 폴더를 작성하고 거기에 프로그램을 배치하십시오. 이 폴더에 전체 경로를 추가하려면 로그인 스크립트를 편집해야 할 수 있습니다 (예 :/usr/home/jeremy/bin)

현재 디렉토리를 검색 경로에 추가 할 수는 있지만 모든 새 프로그램에서이 작업을 계속 수행해야하며 장기적으로 더 많은 작업이 필요합니다.

24
Michael Shaw

/bin 디렉토리에 파일에 대한 링크를 배치하는 것은 여러 가지 이유로 최선의 방법이 아닙니다.

  • 실제 실행 파일이 일부 사용자가 보거나 실행할 수없는 위치에 있으면 해당 파일이 잘못된 링크 또는 기능 장애 프로그램으로 간주됩니다.
  • /bin 디렉토리는 시스템을 실행하는 데 필요한 프로그램 (chmod, mkdir 등)을 위해 예약되어 있어야합니다.

실제로 실행 파일을 /usr/bin/ 또는 /usr/local/bin/에 배치 (설치) 할 수 있습니다. 물론 그 시점에서 프로그램을 수동으로 설치했습니다. 배포판이 나머지 프로그램의 방식을 추적하지는 않습니다. 필요할 때 수동으로 업그레이드하고 원하는 경우 수동으로 제거해야합니다. 또한 패키지가 의존하는 패키지를 알아야합니다 (이미 프로그램을 사용하고있는 것처럼 들리므로 일반적으로 처리됩니다 ...).

다른 사용자가 사용할 것으로 예상되는 프로그램을 설정하지 않는 한, 그것은 내가 보통하는 일이 아닙니다. 나는 홈 디렉토리에 나를 위해 bin 디렉토리를 만들고, 쉘 프로파일을 편집하여 ~/bin/를 추가합니다. 내 PATH 환경 변수에. 시스템의 나머지 부분과 분리되어 있기 때문에 설치 한 프로그램을 쉽게 추적 할 수 있습니다.

17
Shawn J. Goff

쉘이 현재있는 디렉토리에서 foo 명령을 실행하려면 기본적으로 두 가지 옵션이 있습니다.

  1. 쉘 프롬프트에서 ./foo를 입력하십시오.

  2. . 디렉토리를 추가하십시오 (.는 "현재 디렉토리"의 이름입니다). PATH 환경 변수에 추가하십시오. 이 작업을 수행하는 방법은 사용중인 쉘에 따라 다릅니다.

    • bourne 유형 쉘 (bash, zsh, ksh 등)의 경우 다음과 같이 작성하십시오 (자세한 내용은 이 페이지 참조).

      export PATH=$PATH:.
      
    • csh 유형 쉘 (tcsh, csh)의 경우 다음을 작성하십시오 (자세한 내용은 이 페이지 참조).

      set path = ( $path .)
      

2.는 다중 사용자 시스템의 보안 위험입니다. cd 디렉토리 /tmp에 대해 악의적 인 사용자가 ls라는 맬웨어 바이너리를 생성했다고 가정하십시오.

6
Riccardo Murri

PATH을 사용하면 실수로 악성 프로그램을 실행할 수 있습니다. 표준은 /usr/local 아래에 "로컬"항목을 설치하는 것입니다 ( FHS 참조, 유닉스 사용법을 설명합니다. , /usr/local/bin는 일반적으로 모든 사용자에 대해 PATH에 있습니다.

내 "로컬로 설치된"프로그램은 $HOME/bin에 있으며 ./configure --prefix=$HOME ...에 의해 표준 댄스에서 설정되며 몇 개의 (bash) 별칭과 결합되어 예를 들어 시스템 하나에 자체 빌드 된 git (충돌하지 않는 것들은 맨 끝에 PATH에 있습니다.

1
vonbrand