Homebrew를 통해 Bash를 업그레이드해도 안전합니까?


81

저는 OS X를 처음 사용합니다. MacBook Pro에서 OS X Lion을 실행하고 있습니다. Homebrew를 사용하여 bash 쉘을 업그레이드하는 것이 안전합니까?

$ brew install bash

안전하다면 터미널을 통해 실행되는 쉘의 기본 인스턴스로 어떻게 설정합니까?

감사!


2
이 질문은 갑자기 매우 관련이되었다, 셸 쇼크 참조
ecnepsnai

예. 10 자
shrx

답변:


105

바이너리는 /{,usr/}{,s}bin/일반적으로 다른 파일로 대체해서는 안됩니다. 다른 프로그램은 OS X과 함께 제공되는 버전 일 것으로 예상하고 OS 업그레이드로 대체됩니다.

을 실행 한 후 brew install bash다음을 통해 기본 셸을 안전하게 변경할 수 있습니다.

  • 추가 /usr/local/bin/bash/etc/shells
  • 실행 중 chsh -s /usr/local/bin/bash입니다.

터미널 또는 iTerm 2의 설정은 일반적으로 변경할 필요가 없습니다. 둘 다 기본 쉘의 로그인 쉘을 사용하여 새 창을 여는 것이 기본값입니다.

기본 셸은 시스템 환경 설정 또는 dscl을 사용하여 변경할 수도 있지만 세 가지 옵션은 모두 수정 /var/db/dslocal/nodes/Default/users/$USER.plist입니다.


작동하는 것처럼 보이며 문제가 발생하면 롤백하기 쉬워야합니다! 감사!
Rudy

고급 옵션 페이지가 있다는 것을 몰랐습니다. 단!
lemonginger

2
/etc/shellsBREW 설치 bash를 포함하도록 편집 하는 데 필요한 정보가 필요합니다. 그렇지 않으면 (적어도 내 컴퓨터에서는) 터미널이 시작되지 않습니다.
brendanjerwin

2
Mavericks 10.9.2에서는 세 번째 명령 (csh -s)이 더 이상 필요하지 않은 것으로 보입니다.
브렌트 파우스트

2
나는 brew install bash이것이 작동 하기 위해해야했습니다. (즉, 수정할 필요가 없음 /etc/shells)
Daniel

4

여기에 잘못되었을 수 있지만 시스템 기본 설정이 (and )에서 작동하는 동안 brew가 작동하기 때문에 brew자체 인스턴스 인을 설치하는 것으로 알고 있습니다.bash/usr/local/bin/bin/usr/bin

터미널에 대해 사용자 정의 명령으로 쉘을 열 수 있습니다. 환경 설정> 시작으로 이동하여 다음 명령으로 쉘 열기 : 명령 (전체 경로)을 선택하십시오 . 새로운 bash부라 의 경로를 입력하십시오 !

그것이 도움이되기를 바랍니다!

BTW : 백업! 이 상황에서 최고의 조언!


이 답은 실제로 매력처럼 작동합니다.
castiel

0

무엇이든하기 전에 현재 파일을 백업하십시오 (물론 항상 말해야합니다).

sudo cp /bin/bash /bin/bash.3.2.bk

그런 다음 Homebrew가 다운로드 한 bash 실행 파일에 대한 심볼릭 링크를 만듭니다. / usr / local / Cellar에있을 것이라고 생각합니다.

sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash

이제 / bin / bash는 usr / local 디렉토리의 파일을 가리 킵니다.


3
시스템 버전에 새 bash를 배치하는 단점은 OS를 업데이트하면 선호하는 셸을 지울 수 있다는 것입니다. 아마도 OP는 OS가 "오래된 OS보다 최신 버전이지만"사용자 정의보다 오래된 "버전의 bash를 설치하면 중단 될 수있는 새로운 기능을 사용하려고합니다. 기본 경로를 변경하거나 사용자 셸 변수를 변경하는 것이 좋습니다.
bmike

글쎄, usr / local 디렉토리의 bash 버전을 덮어 쓰지 않기 때문에 새로운 simlink를 만들 수 있습니다. 그러나 당신은 맞습니다, Daniel의 방법은 더 나을 것입니다
lemonginger

Ooh-답을 먼저 수정 해주세요 (두 번째 대안으로 선호하는 경우 독창적 인 아이디어를 유지하십시오-나는 훨씬 더 좋아하고 투표를 취소 할 수있는 기회를
원합니다

1
흠, 그 말은 내가 말한 것이지만 각 단계가 조금 더 잘하는 것을 명확히하기 위해 편집했습니다. 여전히 최고 등급의 답변이 나을 것이라고 생각합니다. :)
lemonginger

이것은 시스템 쉘을 변경하는 데 매우 위험한 방법 인 것 같습니다.
Samuel Mikel Bowles

0

방금 시작하면 안전하다고 생각합니다

brew install bash

그런 다음 기본 쉘로 추가하십시오.

chsh -s /usr/local/bin/bash

현재 사용자 만 수정하기 때문입니다. 그러나 기본 ~ / .profile

if [ "/bin/bash" == $BASH ]; then
    source ~/.bashrc
fi

업데이트해야합니다. 나는 그것을 바꿨다.

if [ "bash" == $(basename $BASH) ]; then
        source ~/.bashrc
fi

chsh혼자서 충분하지 않은 이유 는 다른 답변을 참조하십시오 . 또한 업데이트 된 .profile 스 니펫은 원본과 동일하게 보입니다.
nohillside

@patrix : 지적 해 주셔서 감사합니다. 두 번째 스 니펫을 업데이트했습니다. brew install bash추가 조치가 필요하지 않으면 좋을 것입니다. 업데이트 된 프로필로 공유하지 않습니다. 이것이 다른 사람들을 도울 수 있기를 바랍니다.
Gianluca Casati
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.