склонные zsh - добираются, автоматическое заполнение не работает с поддельным корнем

Мы используем поддельную корневую среду на работе. В основном это - набор каталогов, которые эмулируют apt-get и dpkg если некоторые переменные среды установлены. Т.е. Вы работаете apt-get install xxx и пакет xxx устанавливается в эту среду, но не в систему.

Когда я использовал удар, склонный - добираются, автоматическое заполнение работало отлично. Когда я ввел apt-get install <Tab><Tab>, это показало мне список локальных пакетов, если я был в поддельном корне и глобальном списке иначе.

Однако то, когда я переключился на zsh странные вещи, произошло. В настоящее время только глобальные пакеты обнаруживаются в списке, хотя он не всегда имел место. Вот полная история.

  1. Я устанавливаю Ubuntu и устанавливаю поддельный корень и zsh.
  2. Я переустанавливаю Ubuntu с нуля, сохраняя /home который был на отдельном разделе.
  3. Теперь автоматическое заполнение zsh всегда показывает мне пакеты от поддельного корня, независимо установили ли мне огибающий Вар.
  4. Я переустанавливаю zsh и zsh-распространенный. Теперь завершение всегда не работает никаким поддельным корнем, существуют. Одновременно я понимаю, что после переустанавливают папку Ubuntu исчезнувший от /usr/share/zsh/functions/Completion, теперь склонный - добираются, правила завершения взяты от Debian папка.

Вы могли объяснить меня, что могло произойти здесь и как я могу установить zsh работу завершения и с системой и с поддельной Кв. - добираются?

Я использую Ubuntu 16.04.2.

P.S. Мой поддельный корень не связан с fakeroot команда.

1
задан 31 July 2017 в 09:22

1 ответ

Ну, я наконец понял это. Кэши механизма завершения Zsh несколько вещей, включая список доступных пакетов, возвращенных Кв. Теперь моя история кажется четкой: когда автоматическое заполнение всегда предлагало меня пакеты от поддельного корня, это было, потому что в первый раз я выполнил zsh в поддельной корневой среде, и соответствующий список пакета вошел в кэш.

Если Вы хотите переопределить его (предположение, что Вы используете oh-my-zsh), просто добавляют следующий код в Ваш .zshrc прежде, чем назвать oh-my-zsh:

if [[ check for fakeroot ]]; then
  export ZSH_CACHE_DIR=desired-cache-dir-name
fi

Это разделяет завершение, кэширующееся между поддельным корнем и основной системой, и решает проблему из сообщения.

1
ответ дан 7 December 2019 в 15:32

Другие вопросы по тегам:

Похожие вопросы: