Unix에서 이 심볼릭 링크를 만드는 방법은 무엇입니까?

Unix에서 이 심볼릭 링크를 만드는 방법은 무엇입니까?

make를 실행할 때 gmake를 실행하고 싶어서 심볼릭 링크를 생성하고 있습니다. 내 gmake가 그 안에 있습니다 /usr/local/dist. 내 브랜드는 inisde 입니다 /usr/ccs/bin.

이것이 올바른 명령입니까?ln -s /usr/local/dist/gmake /usr/ccs/bin/make

내 혼란은, 내가 신경쓰나요 /usr/ccs/bin/make? 심볼릭 링크를 만드는 중이므로 아무 곳에나 "make"를 입력하면 /usr/local/dist오른쪽에서 gmake가 실행되어야 합니까?

그러면 명령은 다음과 같아야 합니다: ln -s /usr/local/dist/gmake make?

답변1

시스템 바이너리를 기호적으로 연결하는 것은 종종 올바른 접근 방식이 아닙니다. 이로 인해 특정 바이너리 이름이 특정 알려진 동작과 일치할 것으로 예상하는 이후의 다른 소프트웨어가 복잡해집니다. 당신이 원하는 것은 별칭인 것 같습니다. 셸에서 실행합니다.

alias make=gmake

이제 make를 입력할 때마다 gmake가 자동으로 실행됩니다. 영구적으로 만들려면 쉘의 rc 파일(예 ~/.bashrc: )에 이 줄을 추가하세요.

답변2

mkdir -p ~/bin &&
  ln -s /usr/local/dist/gmake ~/bin/make &&
  PATH=~/bin:$PATH

이렇게 하면 호출되는 프로세스(사용자의 위치가 있는 프로세스 PATH) 를 제어할 수 있습니다 .~/bin/usr/ccs/bingmakemake

답변3

예를 들어 에서 이전 gmake에 링크해야 합니다 . 링크가 현재 어디에 있는지 확인하십시오 (링크가 있는 경우).PATHmake/usr/binmaketype make

/usr/binPATH의 디렉터리가 발견된 디렉터리보다 오래된 경우 make다음 명령을 사용하여 해당 디렉터리에 연결할 수 있습니다.

ln -s /usr/local/dist/gmake /usr/bin/make

링크를 생성하려면 기존 링크를 덮어써야 할 수도 있습니다. 이것이 패키지 업데이트에 얼마나 안전한지 잘 모르겠습니다.

관련 정보