Это происходило при следовании за пакетом, у которого возникали проблемы при запросе базы данных rpm для установленного пакета, что приводило к путанице в метатеге:
rpm --rebuilddb
Все должно вернуться к норме, когда вы пересоберете пакет базы данных rpm. В некоторых случаях проблема все еще существует, и тогда вам нужно удалить старые мета-данные и заново собрать
mkdir /var/lib/rpm/old
mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/
rpm --rebuilddb
Иногда, в моем случае,ошибка выбрасывается не из-за некоторых ошибок, которые не могут удалить определенный каталог.
$ sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.17138
$ sudo rm -rf /var/lib/rpmold.17138
$ sudo rpmdb --rebuilddb -v
$ sudo dnf update --refresh
determining the fastest mirror (2 hosts).. done.
RPM Fusion for Fedora 28 - Free - Updates 412 kB/s | 369 kB 00:00
RPM Fusion for Fedora 28 - Nonfree - Updates 35 kB/s | 84 kB 00:02
Last metadata expiration check: 0:00:00 ago on Mon 27 Aug 2018 09:08:56 AM +08.
Dependencies resolved.
Nothing to do.
Complete!
Вывод выше (с -v, подробными аргументами )показывает мне, что у меня проблема с разрешением на удаление каталога /var/lib/rpmold.17138
из моей системы. Просто удалите вручную, перестройте базу данных rpm, и все заработало.
К моему личному удивлению, да, способ zsh
есть. Этот вопрос привел меня к этому ответу , говорящему о "псевдонимах суффиксов" в zsh
. Не то, чтобы ваш дубликат --Первый вопрос был bash
о том, как это сделать; другой ответ был просто о «любимых zsh
функциях».
Чтобы сделать это с псевдонимом суффикса:
alias -s py=vim
Добавьте это к вашему ~/.zshrc
, чтобы сделать его постоянным.
Лично я бы рекомендовал против этого как минимум по двум причинам. Прежде всего, как указал @pizzapants184 в комментарии, это отменяет даже возможность запуска файла Python с использованием его пути. Например, ./run_me.py
не будет выполняться, даже если он установлен как исполняемый, и даже если он имеет строку шебанга (, например. #!/usr/bin/env python3
или #!/usr/bin/python3
). Хорошая фича, но было бы неплохо, ИМХО, если бы она была "поумнее".
Кроме того, дополнительные 3 символа (" vi
" )становятся такой мышечной памятью, которая хорошо послужит вам на других системах, которые вы не настроили таким образом или на которых не установлено zsh
.
И хотя я все еще не обязательно рекомендую это, вы можете установить строку shebang для отдельного файла, чтобы заставить его загружаться в vim
при выполнении:
edit_me.py
):#!/usr/bin/env vi
chmod +x edit_me.py
./edit_me.py
)откроет его вvim
(или вернется к vi
, если он недоступен ).