Узнайте, почему возникает ошибка _comp_deprecate_func в терминале Bash. Предлагаем быстрое и эффективное решение проблемы с автодополнением команд.
Каждый системный администратор или опытный пользователь Linux привык к удобной функции автодополнения команд в терминале. Однако иногда при выполнении команд многие сталкиваются с раздражающей ошибкой:
/etc/bash_completion.d/000_bash_completion_compat.bash: line 3: _comp_deprecate_func: command not found /etc/bash_completion.d/000_bash_completion_compat.bash: line 4: _comp_deprecate_func: command not found /etc/bash_completion.d/000_bash_completion_compat.bash: line 5: _comp_deprecate_func: command not found ...и так далее для каждой строки файла
Ошибка повторяется десятки раз, захламляя вывод терминала и мешая работе. В этой заметке мы разберём, почему это происходит и как быстро вернуть терминал в рабочее состояние.
Причина возникновения ошибки
Корень проблемы кроется в неправильном порядке загрузки файлов автодополнения. В системе есть два ключевых компонента:
- Основная библиотека
bash-completion, которая определяет все необходимые функции, включая_comp_deprecate_func. - Файлы совместимости в директории
/etc/bash_completion.d/, которые обеспечивают обратную совместимость со старыми скриптами.
В нормальной ситуации сначала должна загружаться основная библиотека, а затем — файлы совместимости. Однако в некоторых конфигурациях (особенно при использовании локалей, отличных от C или en_US.UTF-8, например cs_CZ.UTF-8) порядок загрузки нарушается.
Файл 000_bash_completion_compat.bash выполняется раньше, чем основная библиотека, и пытается вызвать функцию _comp_deprecate_func, которой в этот момент ещё не существует. Отсюда — лавина ошибок на каждую строку этого файла.
Решение проблемы
Способ 1. Переустановка пакета (рекомендуемый)
Самый надёжный и правильный способ — переустановить пакет bash-completion. Это обновит все файлы до актуальных версий и исправит возможные битые ссылки или несоответствия версий.
Выполните в терминале:
sudo apt install --reinstall bash-completion
После этого закройте и откройте терминал заново — ошибки должны исчезнуть.
Способ 2. Очистка и переустановка (если способ 1 не помог)
В некоторых случаях может потребоваться более жёсткая очистка. Переместите старую директорию с файлами совместимости и переустановите пакет:
sudo mv /etc/bash_completion.d /etc/bash_completion.d.old sudo apt install --reinstall bash-completion
Способ 3. Временное отключение (не рекомендуется)
Если вам нужно быстро убрать ошибки, но нет возможности выполнить переустановку, можно просто отключить проблемный файл:
sudo mv /etc/bash_completion.d/000_bash_completion_compat.bash /etc/bash_completion.d/000_bash_completion_compat.bash.disabled
Однако это лишь маскирует проблему, а не решает её, поэтому лучше использовать первые два способа.
Важное замечание о директориях
Разработчики Debian помечают директорию /etc/bash_completion.d/ как устаревшую. Новые пакеты с автодополнениями следует размещать в /usr/share/bash-completion/completions/. При переустановке пакета все современные дополнения автоматически попадают в правильную директорию.
Заключение
Ошибка _comp_deprecate_func: command not found — это досадный, но легко исправимый баг, связанный с порядком загрузки компонентов автодополнения. Простая переустановка пакета bash-completion возвращает терминал к нормальной работе и не требует дополнительных манипуляций с конфигурационными файлами.
Если вы столкнулись с этой ошибкой после обновления Debian — не паникуйте, пара команд в терминале решат проблему за минуту.

