Двойная символическая ссылка vim не загружает библиотечный файл ncurses.so.6 при вызове с помощью sudo

Не "одновременно", а в несколько шагов.

Первый шаг — пометить все, что нужно изменить.

Второй шаг — изменить все теги aна b.

Третий шаг — изменить все теги bна a.

Тогда возникает вопросhow can I tag the things to change?

Существует интересный метод, который говорит, что вы можете использовать буквуa(один из двух символов, которые вы хотите поменять местами ), чтобы пометить.

 s/[ab]/a&/g
 s/aa/b/g
 s/ab/a/g

Для этого входа

aaaa aaab aaba aabb abaa abab abba abbb baaa baab baba babb bbaa bbab bbba bbbb

шаги производят

aaaaaaaa aaaaaaab aaaaabaa aaaaabab aaabaaaa aaabaaab aaababaa aaababab abaaaaaa abaaaaab abaaabaa abaaabab ababaaaa ababaaab abababaa abababab
bbbb bbbab bbabb bbabab babbb babbab bababb bababab abbbb abbbab abbabb abbabab ababbb ababbab abababb abababab
bbbb bbba bbab bbaa babb baba baab baaa abbb abba abab abaa aabb aaba aaab aaaa

что является желаемым результатом.

Очевидно, если есть символ, которого заведомо нет во вводе, например ctrl -A, вы также можете сделать изменение в 3 шага, сначала изменить все aна ctrl-A, затем изменить все bна a, а затем измените все ctrl-aна b.

0
22.04.2021, 19:13
1 ответ

Похоже, вы установили libncurses.soв домашний каталог akbи сделали его доступным, добавив export ENVIRONMENT=/home/akb/.../libв /home/akb/.bashrc.

Все зависит от пользователя -. Если бы вы запускали это как другой пользователь (sudo -u akc vim), вы столкнулись бы с проблемой, когда у пользователя akcнет разрешений на чтение -в /home/akb, поэтому akcне может читать библиотеку. Среда также обновляется, поэтому все, что вы exportв /home/akb/.bashrc, не применяется.

Чтобы решить эту проблему, вам нужно установить libncurses.soсистему -на всю систему. Рекомендуемый вариант — использовать версию, поставляемую с дистрибутивом (пример):

sudo apt install libncurses6

Но у вас есть локальная копия, и я предполагаю, что это не просто так. В этом случае вы захотите установить его -для всей системы с:

./configure
make
sudo make install DESTDIR=/usr/local

Мне немного любопытно, как вы освободили vim. vim.basic8.2 в Debian не зависит от ncurses. Если вы собрали/установили из исходников, то вполне правдоподобно, что вам не хватает этой зависимости времени выполнения. Но если вы установили через пакет, то я ожидаю, что ваш менеджер пакетов автоматически установит все настроенные зависимости времени выполнения. Следовательно, это звучит так, будто неверные флаги были переданы ./configureпри сборке пакета или отсутствуют Depends:, о чем вы должны сообщить сопровождающему пакета.

1
28.04.2021, 22:51

Теги

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