Как удалить bash 3.2 с Mac OS?

Вопрос или проблема

как удалить “старый” bash с Mac OS? Я установил homebrew, установил bash 5.2 и настроил его как основной. Я отключил SIP и выполнил две команды, на которые получил следующие ответы:

sudo rm /bin/bash

  • перезаписать r-xr-xr-x root/wheel ограничено, сжато для /bin/bash? y
  • rm: /bin/bash: Файловая система только для чтения

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

  • ln: /bin/bash: Файл существует

Согласно инструкциям, которые я следую, это должно сработать. Я пытаюсь удалить установленный Apple по умолчанию bash 3.2 и перенаправить его на недавно установленный /usr/local/bin/bash, но даже с отключенным SIP я все равно получаю блокировку.

Вы не можете удалить версию bash для macOS, так как она является (в текущих версиях ОС) частью защищенного системного тома, доступного только для чтения.

Что, возможно, еще важнее, в этом нет необходимости. Установите homebrew, а затем установите bash. В таком случае установка осуществляется либо в /usr/local для архитектуры Intel, либо в /opt/homebrew для Apple Silicon.

После установки ваша переменная PATH будет настроена так, чтобы сначала искать в соответствующем каталоге. Таким образом, современная версия bash может быть найдена раньше, чем древний стандарт от Apple.

Документация по homebrew находится здесь.

Вы можете установить новую версию bash через homebrew и использовать
#!/usr/bin/env bash вместо #!/bin/bash, что, видимо, все равно лучше.

Ответ или решение

Удаление старой версии Bash (3.2) из macOS невозможно, поскольку она является частью защищенного системного тома, который является только для чтения в современных версиях операционной системы. Тем не менее, можно установить новую версию Bash и настроить систему так, чтобы использовать ее по умолчанию. Вот подробные шаги по этому процессу:

  1. Установка Homebrew:
    Если у вас еще не установлен Homebrew, выполните следующую команду в терминале:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. Установка новой версии Bash:
    После установки Homebrew выполните команду:

    brew install bash

    Это установит последнюю версию Bash в директорию /usr/local/bin/bash для систем Intel или в /opt/homebrew/bin/bash для Apple Silicon.

  3. Добавление в список разрешенных оболочек:
    Чтобы ваша новая версия Bash могла использоваться как оболочка по умолчанию, вам необходимо добавить ее в список разрешенных оболочек. Для этого выполните следующую команду:

    sudo bash -c 'echo /usr/local/bin/bash >> /etc/shells'

    Убедитесь, что вы заменили /usr/local/bin/bash на путь к новой версии Bash, если вы используете Apple Silicon.

  4. Смена оболочки по умолчанию:
    Чтобы изменить оболочку на новую версию Bash, выполните команду:

    chsh -s /usr/local/bin/bash

    Опять же, замените путь, если необходимо.

  5. Использование новой оболочки:
    Перезапустите терминал или выполните exec bash для применения изменений. Теперь вы должны использовать более новую версию Bash.

  6. Используйте Shebang:
    В скриптах вы можете использовать #!/usr/bin/env bash вместо #!/bin/bash. Это более гибкий подход, который ищет Bash в пользовательском окружении и обеспечивает использование установленной версии.

В заключение, удалить старую версию Bash не требуется. Новая версия будет использована с изменением переменной окружения PATH, и вы сможете использовать все преимущества более новых функций Bash. С этими шагами вы сможете настроить свою систему для работы с последней версией Bash без необходимости удалять предустановленную системную версию.

Оцените материал
Добавить комментарий

Капча загружается...