Вопрос или проблема
После установки Stata 18 на мой новый LTS Ubuntu я не смог её запустить:
./stata: ошибка при загрузке совместимых библиотек: libncurses.so.5: невозможно открыть общий объектный файл: Нет такого файла или директории
Оказалось, что пакет устарел, его удалили в Debian (и Ubuntu следует этому).
Тем не менее, можно скачать этот пакет вручную. Однако у него больше зависимостей:
$ sudo dpkg -i libncurses5_6.2-0ubuntu2.1_i386.deb
(Чтение базы данных ... 403219 файлов и каталогов в настоящее время установлено.)
Подготовка распаковки libncurses5_6.2-0ubuntu2.1_i386.deb ...
Распаковка libncurses5:i386 (6.2-0ubuntu2.1) поверх (6.2-0ubuntu2.1) ...
dpkg: проблемы с зависимостями препятствуют настройке libncurses5:i386:
libncurses5:i386 зависит от libtinfo5 (= 6.2-0ubuntu2.1); однако:
Пакет libtinfo5:i386 еще не настроен.
libncurses5:i386 зависит от libc6 (>= 2.7); однако:
Пакет libc6:i386 еще не настроен.
Вернемся на шаг назад, libc6 (тоже скачан вручную) — это дает мне
$ sudo dpkg -i libc6_2.31-0ubuntu9.15_i386.deb
(Чтение базы данных ... 403219 файлов и каталогов в настоящее время установлено.)
Подготовка распаковки libc6_2.31-0ubuntu9.15_i386.deb ...
Распаковка libc6:i386 (2.31-0ubuntu9.15) поверх (2.31-0ubuntu9.15) ...
dpkg: ошибка при обработке пакета libc6:i386 (--install):
пакет libc6:i386 2.31-0ubuntu9.15 не может быть настроен, так как libc6:amd64 имеет другую версию (2.39-0ubuntu8.1)
Произошли ошибки при обработке:
libc6:i386
На этом этапе я достиг конца своего понимания.
- Неужели я заблуждаюсь? Конечно, должен быть более удобный способ установки такого серьезного программного обеспечения, как Stata18, на текущей LTS-версии Ubuntu
- Если я на правильном пути: как мне установить эти библиотеки?
Вы делаете несколько вещей совершенно неправильно, позвольте объяснить. Ваша первая ошибка здесь:
sudo dpkg -i libncurses5_6.2-0ubuntu2.1_i386.deb
Вы пытаетесь установить i386
(32-битную) версию этого пакета, тогда как Ubuntu (и большинство других систем Linux) теперь работают только с 64-битной (AMD64).
Поэтому сначала очистите беспорядок с установленными вами i386
пакетами, удалив все, что вы пытались установить (существует множество вопросов и ответов о том, как удалить поврежденные пакеты).
Правильный пакет для Ubuntu 24.04, вероятно, будет libncurses6
, который устанавливается с помощью:
sudo apt install libncurses6
Несколько уроков, которые следует усвоить:
- Никогда не устанавливайте
i386
пакеты (просто никогда, если вы действительно не знаете, что делаете) - Не устанавливайте вручную скачанные пакеты с помощью
dpkg
— вместо этого устанавливайте официальные пакеты из репозиториев с помощьюapt
Вам, возможно, придется создать правильную символическую ссылку самостоятельно (от ncurses5
к ncurses6
), как упоминается здесь. Библиотеки ncurses
находятся в /usr/lib/x86_64-linux-gnu/
на Ubuntu, вот так:
sudo ln -s /usr/lib/x86_64-linux-gnu/libncursesw.so.6.4 /usr/lib/x86_64-linux-gnu/libncurses.so.5
Я получил ошибку ‘libncurses.so.5: невозможно открыть’ при использовании теста производительности Passmark для Linux. Я попробовал довольно много ‘решений’, найденных в интернете. Ничто не сработало. Очевидно, все (легко доступные) скачивания ncurses5 исчезли. Затем я попробовал вышеуказанную символическую ссылку. Теперь все работает. Большое спасибо.
Ответ или решение
Для успешной установки Stata 18 на Ubuntu 24.04 вам следует учесть, что некоторые необходимые библиотеки могут отсутствовать, поскольку Ubuntu переходит на новые версии этих библиотек, и устаревшие версии могли быть удалены из репозиториев. Ваша конкретная проблема связана с отсутствием библиотеки libncurses.so.5
.
Шаги для решения проблемы:
-
Удаление неправильных пакетов:
Если вы ранее пытались установить 32-битные (i386) версии библиотек, их лучше удалить, чтобы избежать конфликтов. Для этого используйте команду:sudo apt remove libncurses5:i386 libc6:i386
-
Установка необходимых библиотек:
Вместо установки 32-битных библиотек, вам нужно установить соответствующие 64-битные библиотеки. Используйте следующую команду для установкиlibncurses6
:sudo apt install libncurses6
-
Создание символической ссылки (если это необходимо):
Поскольку Stata может требовать библиотеку именно с именемlibncurses.so.5
, вам следует создать символическую ссылку на установленную библиотекуlibncurses.so.6
. Это можно сделать с помощью:sudo ln -s /usr/lib/x86_64-linux-gnu/libncursesw.so.6.4 /usr/lib/x86_64-linux-gnu/libncurses.so.5
-
Проверка установки:
После выполнения вышеуказанных шагов попробуйте снова запустить Stata, выполнив команду в директории, где установлена программа:./stata
Заключение
Часто установка и работа с нестандартными библиотеками может привести к конфликтам. Важно всегда пользоваться стандартными репозиториями и избегать установки старых или 32-битных пакетов, если вы работаете на 64-битной системе. Если все шаги выполнены правильно, Stata должна запуститься без проблем.
Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.