![경로에 패키지 추가를 처리하는 "올바른" 방법](https://linux55.com/image/142612/%EA%B2%BD%EB%A1%9C%EC%97%90%20%ED%8C%A8%ED%82%A4%EC%A7%80%20%EC%B6%94%EA%B0%80%EB%A5%BC%20%EC%B2%98%EB%A6%AC%ED%95%98%EB%8A%94%20%22%EC%98%AC%EB%B0%94%EB%A5%B8%22%20%EB%B0%A9%EB%B2%95.png)
Haskell 플랫폼을 다운로드하여 설치했습니다. 다음 위치에 설치됩니다(기본값)./usr/local/haskell/
/usr/local/haskell/bin/
내 경로에 바이너리를 추가하고 싶습니다 . 하지만 (가능하다면) 진로를 바꾸고 싶지는 않아요..
여기서 가장 좋은 조치는 무엇입니까? 경로에 하스켈 폴더를 추가하는 것이 가장 좋은 방법 haskell/bin/*
입니까 ?local/bin
답변1
상당히 일반적인 대체 업데이트 방법은 예를 들어 에 $PATH
이미 나열된 바이너리에 대한 심볼릭 링크를 만드는 것입니다 .$PATH
/usr/local/bin
다음을 통해 이를 달성할 수 있습니다.
$ cd /usr/local/bin
$ sudo ln -s ../haskell/bin/* .
(그러나 이 작업을 수행하기 전에 바이너리 목록을 확인 /usr/local/haskell/bin/
하고 심볼릭 링크를 만드는 것이 적합한지 확인하십시오. 파일의 하위 집합만 심볼릭 링크하도록 결정할 수도 있습니다.)
당신이 이 일을 하려는 이유 중 하나아니요바이너리 자체를 이동하려는 이유는 타르볼로 배포되는 바이너리가 시스템의 어느 곳에서나 압축을 풀면 작동하는 방식으로 작성되는 경우가 많기 때문입니다. 이를 위해 그들은 종종 설치된 위치를 탐지하려고 합니다(가장 일반적으로 살펴봄). 이렇게 하면 필요한 다른 라이브러리와 파일을 찾을 것으로 예상되는 상위 디렉터리를 찾을 수 있습니다 /proc/self/exe
. /usr/local/haskell
심볼릭 링크를 생성해도 일반적으로 이러한 메커니즘을 방해하지 않습니다. 왜냐하면 심볼릭 링크는 여전히 실제 바이너리를 찾아서 /usr/local/haskell/bin
설치 경로를 성공적으로 찾을 수 있기 때문입니다.
바이너리를 이동하지 않는 또 다른 이유는 나중에 Haskell을 제거하려는 경우 별도의 작업 /usr/local/haskell
없이 전체 디렉터리를 삭제하면 되기 때문입니다.기억하다일부 바이너리는 이동되었으며 /usr/local/bin
, 이를 기억하더라도 어느 바이너리가 Haskell에 속하는지 기억할 필요가 없습니다(이 방법을 사용하여 여러 패키지를 설치했다고 가정).하다디렉토리를 삭제하여 Haskell을 제거하면 일부 깨진 심볼릭 링크가 생기지 /usr/local/bin
만 이는 무해하고 이름에 모두 포함되어 있으므로 어느 것이 Haskell에 속하는지 쉽게 식별할 수 ../haskell/bin
있으므로 청소도 쉽습니다. .