Подробный гайд по устранению ошибки gedit в Linux при загрузке libpeas - Часть 2
Как исправить ошибку gedit: could not load peas repository (часть 2)
В первой Части статьи мы рассмотрели основные способы устранения предупреждения could not load peas repository: typelib file for namespace 'peas', version '1.0' not found в популярных дистрибутивах Linux, а также случаи использования Flatpak и Snap. Во второй части разберём более сложные сценарии: сборку из исходников, конфликты версий libpeas, диагностику зависимостей и проверку через GObject Introspection.
10. Если gedit собран из исходников
Если команда:
command -v gedit
возвращает путь вроде:
/usr/local/bin/gedit
то, скорее всего, вы собирали gedit вручную из исходного кода. В этом случае программа может искать библиотеки и типелибы в нестандартном префиксе, например в /usr/local.
Для корректной работы такого gedit необходимо, чтобы в системе были установлены:
libpeasверсии 1.x;- файлы
.typelibдляPeas-1.0; - пакеты
gobject-introspection; - переменные окружения указывают на правильный префикс.
Попробуйте временно задать нужные пути:
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export GI_TYPELIB_PATH="/usr/local/lib/girepository-1.0:$GI_TYPELIB_PATH"
gedit
Если ошибка исчезает, но вы не хотите каждый раз вводить переменные вручную, можно добавить соответствующие строки в ~/.profile или ~/.bashrc:
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export GI_TYPELIB_PATH="/usr/local/lib/girepository-1.0:$GI_TYPELIB_PATH"
Делать это стоит только в том случае, если вы действительно используете нестандартную установку. В противном случае лучше удалить самосборный gedit и поставить пакет из репозитория дистрибутива.
11. Если установлен только Peas-2.0.typelib
Иногда после поиска файлов можно обнаружить:
Peas-2.0.typelib
но gedit требует именно:
Peas-1.0.typelib
Это разные версии библиотеки libpeas. Версия 2.x не совместима с 1.x на уровне ABI, поэтому gedit, собранный против libpeas-1.0, не сможет работать с libpeas-2.0.
Проверьте, какие версии .typelib присутствуют в системе:
find /usr /usr/local /opt -type f -name 'Peas-*.typelib' 2>/dev/null
Если в выводе только Peas-2.0.typelib, значит пакет libpeas-1.0 отсутствует и его нужно установить отдельно.
В современных дистрибутивах (например, Fedora 40+, Ubuntu 24.04+) libpeas-1.0 может быть вынесен в отдельный пакет совместимости:
- Debian/Ubuntu:
libpeas-1.0-0илиlibpeas-1.0-0t64иgir1.2-peas-1.0; - Fedora:
libpeas1.0(именно с цифрой1.0в конце); - Arch:
libpeasобычно содержит обе версии, либо есть отдельныйlibpeas-1.0из AUR.
Если в официальных репозиториях пакета libpeas-1.0 уже нет, это означает, что дистрибутив перешёл на новую версию, а gedit в репозитории должен быть уже пересобран под неё.
В такой ситуации помогает полное обновление системы:
# Debian/Ubuntu
sudo apt update && sudo apt full-upgrade
# Fedora
sudo dnf upgrade --refresh
# Arch
sudo pacman -Syu
12. Проверка зависимостей самого gedit
Иногда проблема не в файле .typelib, а в том, что отсутствует сама разделяемая библиотека libpeas-1.0.so.0.
Проверьте зависимости исполняемого файла:
ldd "$(command -v gedit)" | grep -E 'peas|girepository' || true
Если в выводе есть строки со словом not found, например:
libpeas-1.0.so.0 => not found
libpeas-gtk-1.0.so.0 => not found
значит в системе отсутствует пакет с самой библиотекой.
Его нужно установить:
- Debian/Ubuntu:
libpeas-1.0-0илиlibpeas-1.0-0t64; - Fedora:
libpeas1.0илиlibpeas; - Arch:
libpeas; - openSUSE:
libpeas-1_0-0.
Также полезно проверить, все ли зависимости gedit удовлетворены:
ldd "$(command -v gedit)" | grep 'not found'
Если список пустой, значит все библиотеки на месте, и проблема именно в файлах интроспекции.
13. Проверка через GObject Introspection
Можно проверить, видит ли система Peas-1.0 независимо от gedit. Для этого используется Python-модуль gi (GObject Introspection).
Сначала установите его, если он отсутствует:
Debian/Ubuntu:
sudo apt install python3-gi
Fedora:
sudo dnf install python3-gobject
Arch:
sudo pacman -S python-gobject
openSUSE:
sudo zypper install python3-gobject
Затем выполните проверку:
python3 - <<'EOF'
import gi
try:
gi.require_version('Peas', '1.0')
from gi.repository import Peas
print('OK: Peas 1.0 найден')
print('Расположение:', Peas.__path__)
except Exception as e:
print('Ошибка:', e)
EOF
Если в выводе:
OK: Peas 1.0 найден
Значит introspection-данные доступны, и проблема скорее всего в самом gedit или его окружении. Если скрипт выдаёт ошибку ValueError: Namespace Peas not available for version '1.0', значит система всё ещё не видит Peas-1.0.typelib, и нужно продолжить поиск недостающего пакета.
14. Если ошибка появляется только при запуске через sudo
Иногда пользователи запускают редактор системных файлов так:
sudo gedit /etc/hosts
Это плохая практика по нескольким причинам:
- запуск графических приложений от
rootнебезопасен; - окружение суперпользователя может отличаться от пользовательского;
- могут создаваться файлы в домашнем каталоге пользователя с правами
root.
Проверьте, воспроизводится ли ошибка без sudo:
gedit
Если без sudo предупреждения нет, а с sudo — есть, проблема именно в окружении суперпользователя. В этом случае лучше использовать альтернативные способы:
Консольные редакторы:
sudo nano /etc/hosts
sudo vim /etc/hosts
Запуск графического редактора через pkexec:
pkexec gedit /etc/hosts
Или через sudoedit (наиболее безопасный вариант):
sudoedit /etc/hosts
Команда sudoedit автоматически откроет ваш редактор по умолчанию (переменная EDITOR) для временной копии файла, а после сохранения перенесёт изменения обратно.
15. Если система минимальная, контейнер или WSL
В минимальных установках Linux, контейнерах (Docker, LXC) или некоторых конфигурациях WSL (Windows Subsystem for Linux) графические зависимости могут быть не установлены полностью. Это особенно актуально для серверных образов, где gedit установлен вручную без полного набора рекомендуемых пакетов.
Для Debian/Ubuntu установите базовый набор:
sudo apt update
sudo apt install gedit gir1.2-peas-1.0
Если нужны плагины, дополнительно:
sudo apt install gedit-plugins
Но для устранения именно этой ошибки достаточно libpeas и его introspection-данных. В контейнерах запуск gedit обычно не имеет смысла, так как там нет графического окружения.
Если же вы используете WSL с WSLg или VcXsrv, убедитесь, что в WSL установлены все необходимые графические библиотеки:
sudo apt install gedit gir1.2-peas-1.0 gedit-plugins
16. Сводная таблица пакетов
Для удобства ниже приведена таблица с именами пакетов, которые нужно установить в разных дистрибутивах.
| Дистрибутив | Основные пакеты | Команда установки |
|---|---|---|
| Debian / Ubuntu / Mint | gedit, gir1.2-peas-1.0 |
sudo apt install gedit gir1.2-peas-1.0 |
| Fedora | gedit, libpeas1.0 |
sudo dnf install gedit libpeas1.0 |
| RHEL / Rocky / Alma | gedit, libpeas |
sudo dnf install gedit libpeas |
| Arch / Manjaro | gedit, libpeas |
sudo pacman -S gedit libpeas |
| openSUSE | gedit, typelib-1_0-peas-1_0 |
sudo zypper install gedit typelib-1_0-peas-1_0 |
Если имя пакета в вашей системе отличается, используйте поиск по файлу:
# Debian/Ubuntu
apt-file search Peas-1.0.typelib
# Fedora
sudo dnf provides '*/Peas-1.0.typelib'
# Arch
pkgfile Peas-1.0.typelib
# openSUSE
zypper se --provides Peas-1.0.typelib
Для apt-file может потребоваться предварительная установка:
sudo apt install apt-file
sudo apt-file update
17. Что делать, если ничего не помогло
Если после всех описанных действий предупреждение сохраняется, выполните диагностические команды и сохраните их вывод — это поможет точно определить причину.
Базовая информация:
cat /etc/os-release
type -a gedit
command -v gedit
Поиск файлов typelib:
find /usr /usr/local /opt -type f -name 'Peas-*.typelib' 2>/dev/null
Переменные окружения:
echo "GI_TYPELIB_PATH=$GI_TYPELIB_PATH"
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
Зависимости gedit:
ldd "$(command -v gedit)" | grep -E 'peas|girepository' || true
Список установленных пакетов:
Для Debian/Ubuntu:
dpkg -l | grep -E 'gedit|libpeas|gir1.2-peas'
Для Fedora/RHEL:
rpm -qa | grep -E 'gedit|libpeas'
Для Arch:
pacman -Qs 'gedit|libpeas'
Для openSUSE:
zypper se -i gedit libpeas
Собрав эту информацию, можно точно понять, где именно теряется Peas-1.0.typelib. С этими данными также проще получить помощь на тематических форумах или в баг-трекерах дистрибутива.
18. Краткий алгоритм устранения ошибки
В большинстве случаев проблему решает простой набор действий. Приведём краткий алгоритм для каждого семейства дистрибутивов.
Debian / Ubuntu / Linux Mint
sudo apt update
sudo apt install gedit gir1.2-peas-1.0
sudo apt install --reinstall gir1.2-peas-1.0
Fedora / RHEL / Rocky / AlmaLinux
sudo dnf reinstall gedit
sudo dnf install libpeas1.0 || sudo dnf install libpeas
Arch / Manjaro / EndeavourOS
sudo pacman -Syu
sudo pacman -S gedit libpeas
openSUSE
sudo zypper refresh
sudo zypper install gedit typelib-1_0-peas-1_0
После выполнения команд закройте все окна gedit и запустите его заново:
gedit
Предупреждение должно исчезнуть.
Заключение
Предупреждение could not load peas repository: typelib file for namespace 'peas', version '1.0' not found — это не критическая ошибка, а сообщение о недостающих данных GObject Introspection для библиотеки плагинов libpeas-1.0. В большинстве случаев оно устраняется установкой или переустановкой пакета с типелибами: gir1.2-peas-1.0 в Debian-подобных системах, libpeas1.0 в Fedora или libpeas в Arch.
Если базовые способы не помогают, стоит проверить:
- какой именно
geditзапускается (системный, Flatpak, Snap, самосборный); - установлен ли файл
Peas-1.0.typelibи в каком каталоге; - не конфликтует ли версия
libpeas(1.x vs 2.x); - не заданы ли некорректные переменные окружения
GI_TYPELIB_PATHиLD_LIBRARY_PATH.
Соблюдая описанные шаги, вы сможете быстро диагностировать и устранить проблему в любом современном дистрибутиве Linux.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.