Иногда нужно установить программу которой нет в основном дереве портежей. В большинстве случаев эта программа находится в оверлеях. Но это может быть не всегда удобно, ведь нужен всего один пакет пакет, а подключить нужно весь оверлей с кучей пакетов. Ну и бывает такое, что нужный пакет отсутствует в оверлеях тоже. В такой ситуации лучшим решением будет создание локального оверлея.
Для создания локального оверлея нам для начала нужен доступ к исходникам необходимой программы и ebuild файл. Ebuild файл представляет собой инструкции для компилятора и при должном упорстве доступен для написания сознательному линуксоиду. Но скорее всего кто-нибоудь поделится ebuild'ом. И здесь будет рассмотрен случай когда у вас есть ebuild файл для нужного приложения. Написани такого файла самостоятельно - это тема для отдельной заметки.
Для начала определимся с местом нашего оверлея. Пусть это будет /usr/local/overlay/. Создадим необходимые каталоги для служебной информации:
root # mkdir -p /usr/local/portage/{metadata,profiles}
заполним их информацией:
root # echo 'tolstiyman' > /usr/local/portage/profiles/repo_name
root # echo 'masters = gentoo' > /usr/local/portage/metadata/layout.conf
здесь tolstiyman - это имя нашего репозитория.
Чтобы наш оверлей имел приоритет перед всеми остальными нужно изменить переменную PORTDIR_OVERLAY в нашем файле make.conf. Для этого просто выполним команду:
root # echo 'PORTDIR_OVERLAY="/usr/local/portage ${PORTDIR_OVERLAY}"' >> /etc/make.conf
Допустим нам нужно установить программу steam-launcher-1.0.0.47 из категории games-util и у нас есть для этого файл steam-launcher-1.0.0.47.ebuild, который лежит в каталоге /root. Проделаем следующее:
root # mkdir -p /usr/local/portage/games-util/steam-launcher
root # cp /root/steam-launcher-1.0.0.47.ebuild /usr/local/portage/games-util/steam-launcher/steam-launcher-1.0.0.47.ebuild
root # pushd /usr/local/portage/games-util/steam-launcher
Пару слов о команде pushd. Она сохраняет имя текущего каталога для команды popd и переходит в другой каталог. Вобщем шаг не обязательный и позволяет после нужных нам манипуляций вернуться в исходный каталог одной командой (popd).
root # repoman manifest
Утилита repoman предназначена для контроля качества репозитариев ебилдов. В даноом случае она генерирует manifest файл. Более подробно об этой утилите на русском языке можно узнать здесь или здесь.
root # popd
Изменяем права доступа к каталогу с оверлеем.
root # chown -R portage:portage /usr/local/portage
Теперь можно установить пакет
root # emerge -a games-util/steam-launcher
Первоисточник на gentoo-wiki
Для создания локального оверлея нам для начала нужен доступ к исходникам необходимой программы и ebuild файл. Ebuild файл представляет собой инструкции для компилятора и при должном упорстве доступен для написания сознательному линуксоиду. Но скорее всего кто-нибоудь поделится ebuild'ом. И здесь будет рассмотрен случай когда у вас есть ebuild файл для нужного приложения. Написани такого файла самостоятельно - это тема для отдельной заметки.
Для начала определимся с местом нашего оверлея. Пусть это будет /usr/local/overlay/. Создадим необходимые каталоги для служебной информации:
root # mkdir -p /usr/local/portage/{metadata,profiles}
заполним их информацией:
root # echo 'tolstiyman' > /usr/local/portage/profiles/repo_name
root # echo 'masters = gentoo' > /usr/local/portage/metadata/layout.conf
здесь tolstiyman - это имя нашего репозитория.
Чтобы наш оверлей имел приоритет перед всеми остальными нужно изменить переменную PORTDIR_OVERLAY в нашем файле make.conf. Для этого просто выполним команду:
root # echo 'PORTDIR_OVERLAY="/usr/local/portage ${PORTDIR_OVERLAY}"' >> /etc/make.conf
Допустим нам нужно установить программу steam-launcher-1.0.0.47 из категории games-util и у нас есть для этого файл steam-launcher-1.0.0.47.ebuild, который лежит в каталоге /root. Проделаем следующее:
root # mkdir -p /usr/local/portage/games-util/steam-launcher
root # cp /root/steam-launcher-1.0.0.47.ebuild /usr/local/portage/games-util/steam-launcher/steam-launcher-1.0.0.47.ebuild
root # pushd /usr/local/portage/games-util/steam-launcher
Пару слов о команде pushd. Она сохраняет имя текущего каталога для команды popd и переходит в другой каталог. Вобщем шаг не обязательный и позволяет после нужных нам манипуляций вернуться в исходный каталог одной командой (popd).
root # repoman manifest
Утилита repoman предназначена для контроля качества репозитариев ебилдов. В даноом случае она генерирует manifest файл. Более подробно об этой утилите на русском языке можно узнать здесь или здесь.
root # popd
Изменяем права доступа к каталогу с оверлеем.
root # chown -R portage:portage /usr/local/portage
Теперь можно установить пакет
root # emerge -a games-util/steam-launcher
Первоисточник на gentoo-wiki