Автор Тема: "не удалось войти в систему" после установки zsh  (Прочитано 8006 раз)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
Блин, размазали тему на 30 сообщений...

Что делать?
Во-первых запомнить, что скрипты предназначенные для других дистрибутивов нельзя выполнять в системе (особенно от рута), это справедливо для вообще любых ОС. Если таковая необходимость есть — обязательно нужно знать что, где и зачем лежит в целевой системе, как в ней работают компоненты, смотреть скрипт и исправлять для целевой системы. А уж потом выполнять.

Как исправить?
Вообще-то удалить всю постороннюю хрень. Потом посмотреть скрипт и убрать/исправить везде и всё что он делал.

Для баша
Посмотреть каким пакетам принадлежат файлы в /etc/bashrc.d/, /etc/skel/, /etc/bashcompletion.d, а также файл /etc/bashrc и переустановить эти пакеты с заменой файлов.
Посмотреть можно командой:
$ rpm -qf полный_путь_к_файлу_имя_файла

После переустановки пакетов скопировать файлы .bash_logout, .bash_profile, .bashrc из /etc/skel/ в домашний каталог, заменив то, что там из этого есть. Файл .bash_history в домашний каталог переносить не нужно, его там нужно удалить (если есть), новый файл будет создан при любой деятельности в терминале.

Ну и собственно, без умения пользоваться bash ни z ни какие-либо другие sh абсолютно никаких умений не дадут. Очевидно же, что без умения пользования исходного шелла не перейти на что-то другое. Так можно только сломать, что в данном случае и есть.
« Последнее редактирование: 21.01.2018 20:56:35 от stranger573 »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Похоже скрипт поменял /etc/bashrc
как тогда его вернуть?

- Обновить локальную  базу пакетов.
- Переинсталлировать пакет bash в режиме только скачать.
- Создать временный каталог.
- Через rpm2cpio распаковать в него пакет.
- Через /bin/cp заменить /etc/bashrc
Но будет отличаться время последней модификации файла:
# rpm -Vv bash|grep etc/bashrc$
.......T.  c /etc/bashrc

Можно, чтобы при проверке всё не отличалось:
- Удалить файл /etc/bashrc и прямой командой, через rpm переинсталлировать пакет из кеша apt.
См. опции --force и/или --replacepkgs в man rpm.
Тогда файл после проверки отличаться не будет от того, который имеется в пакете:
# rpm -Vv bash|grep etc/bashrc$
.........  c /etc/bashrc


Да, здесь приводится только общий принцип действий, чтобы вернуть файл /etc/bashrc в исходное состояние.
Сами команды не приводятся, предполагая, что вы уже освоились, о чём вы и сообщили в своём первом сообщении о замене bash на zsh.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
to Speccyfighter одним пакетом bash и файлом /etc/bashrc там скорее всего не отделаться. И чегой-то уж больно морочно вы предлагаете восстанавливать файлы, есть же apt-get install --reinstall. :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
to Speccyfighter одним пакетом bash и файлом /etc/bashrc там скорее всего не отделаться. И чегой-то уж больно морочно вы предлагаете восстанавливать файлы, есть же apt-get install --reinstall. :-)

:-) Такая уж у парня судьба...
С /etc это не прокатит:
# echo >> /etc/bashrc
# apt-get install --reinstall bash
# rpm -Vv bash|grep etc/bashrc$
S.5....T.  c /etc/bashrc
# man rpm|sed -n '561,569p'
       S file Size differs
       M Mode differs (includes permissions and file type)
       5 digest (formerly MD5 sum) differs
       D Device major/minor number mismatch
       L readLink(2) path mismatch
       U User ownership differs
       G Group ownership differs
       T mTime differs
       P caPabilities differ
« Последнее редактирование: 21.01.2018 21:41:39 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
И чегой-то уж больно морочно вы предлагаете восстанавливать файлы, :-)

:-) Зато надолго запомнит, что так вольно обращаться с системой нельзя:
С большими возможностями, приходит большая ответственность
# ls -1 /etc/bashrc{,.d}
/etc/bashrc

/etc/bashrc.d:
alias.sh
bash_completion.sh
editor.sh
mc.sh
# rpm -qf /etc/bashrc
bash-3.2.57-alt3.i586
# rpm -qf /etc/bashrc.d/*
bash-3.2.57-alt3.i586
bash-completion-1.99-alt7.noarch
файл /etc/bashrc.d/editor.sh не принадлежит ни одному из пакетов
mc-4.8.20-alt1.i586

Ему будет где развернуться.
Операционная система, это не наша повседневная жизнь. В ней наказание приходит немедленно.

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
С /etc это не прокатит
Ваша правда — apt-get шибко умный, изменённые настройки не трогает...
К тому же есть ещё вероятность, что rpm или ещё что другое с разломанным башем причудливо отработает.

Смешно, что никаких таких плюс 50 и 100 к чему-то там у zsh ни разу нет. Ну чуть микроскопически по другому, ну чуть раскраска другая. Напевы о печатании так и вовсе повеселили — без навыков пользования клавиатурой вообще за компьютером нечего делать.
« Последнее редактирование: 21.01.2018 22:54:26 от stranger573 »

Оффлайн Termonoid

  • Давно тут
  • **
  • Сообщений: 45
    • Email
полчаса поисков, сборка информации с разных сайтов по крупицам,и bash заработал!
ps zsh хотел бы оставить мне его автодополнение нравится, если я поставлю его для root через usermod -s /bin/zsh ничего не слетит как вначале?
_             _
   \_(''/)_/

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 434
    • Email
ничего не слетит как вначале?
Разные sh не на сто процентов совместимы по интерпретации команд. В дистрибутиве шелл используют множество программ и скриптов. В альтах это всё под баш настроено и тестировалось. Косяки скорее всего будут неизбежно, в разных неожиданных местах. Если авто-какое-то-дополнение того ст́оит — ваше дело, но вам же и последствия разгребать, в этом вам никто не поможет скорее всего.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
У альтов навалом всего по zsh:
# apt-cache search ^zsh|sort
zsh - A shell with lots of features
zsh-completion-0install - ZSH completion for 0install
zsh-completion-journalctl - Zsh completion for journalctl from systemd
zsh-completion-lldpd - Zsh completion for lldpd
zsh-completion-mpv - Zsh completion for mpv
zsh-completions - Additional completion definitions for Zsh
zsh-completion-systemd - Zsh completion for systemd utils
zsh-completion-task - Zsh completion for taskwarrior
zsh-completion-udev - Zsh completion for udev utils

И я бы начал с чтения о точечных файлах по zsh.
Там же и на упоминания проблем можно наткнуться:
https://www.altlinux.org/index.php?title=Служебная%3AПоиск&search=zsh&fulltext=Найти
« Последнее редактирование: 21.01.2018 23:26:56 от Speccyfighter »