LINUX.ORG.RU

[gentoo] Как правильно автоматически генерировать ebuild (или использовать шаблон?)? А не использовать ./configure && make && make install

 


0

3

В дебиане можно сделать:
./configure && make && make install && checkinstall -D make install && dpkg -i foo_09090.deb
или
dh_make --createorig && dpkg-buildpackage -rfakeroot && dpkg --install foo_09090.deb

Всё очень легко и просто, а пакет потом легко можно удалить из системы. Есть ли скрипты/шаблоны для создания ебилдов генте? Потому что их официальный манул меня весьма не впечатлил, а устанавливать программы с /opt - это дебилизм.

Что делать, если требуется использовать cmake вместо ./configure (а уж тем более, если нужно нестандартные команды выполнить) - вообще непонятно.

Реквестирую megabaks'а в тред, т.к. он точно должен знать, раз свой оверлей имеет.

Ответ на: комментарий от ktulhu666

Ведь root, он даже в песочнице рут

Я вот этот момент не понимаю. Компиляция, вроде, от root'а идёт, но ACCESS VIOLATION как-то ловятся же, когда процесс установки в имидж (или компиляции) лезет в систему.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Какая разница то? ACCESS VIOLATION тут может либо через тупое сканирование каталогов в имидже проверяться после него, либо через LD_PRELOAD (насколько я знаю, используется последнее). Ну а кто Вам мешает собрать приложение с нестандартной библиотекой, либо вообще на чистом ассемблере, где не будет работать LD_PRELOAD? После этого рут легко сможет сделать вложенный chroot в настоящий корень и поиметь систему. Это не SELinux, где даже рут от контекста безопасности процесса зависит.

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от ktulhu666

все к генте приглядываюсь :-) ставить или нет Слака меня более чем устраивает но патрик то ли в запой ушел :-) то ли вообще забил на слаку. Арч с его «стабильностью» может идти лесом сразу, а что еще кроме в этом духе кроме генты то ли нишевое то ли опять же полтора носа среди разрабов

SergMarkov
()
Ответ на: комментарий от SergMarkov

Мне нравится гента потому, что я люблю мешаться совершенно несовместимые вещи. Ещё нравится тем, что у тебя система не ломается при обновлении, что мейнтейнеры сами за тебя подумали (особенно касается hardened), наличием индексируемых оверлеев, отсутствием каких-либо проблем, что у тебя не точно такая-же бинарная либа, как у автора. Ещё очень радует, что если что-то надо скомпилить в генте, то очень редко бывает, что оно плюётся о том, что нет нужных либ, т.к. они почти всегда уже есть в системе. Потом мейнтейнеры весьма нормально относятся к проприетарщине и патентированию (только пакет тебе всё-равно не дадут установить, пока не занесешь лицензию в список разрешенных), тогда как в арче у мейнтейнеров явно какие-то ультраправые Столмановские настроения и GNOME3 головного мозга (кстати, в генте можно иметь часть системы на gtk2, часть на gtk3, часть элементов DE из gnome2, часть из gnome3, часть в xfce и kde, и всё будет работать). Мало того, в генте установка ПО полностью доработана и автоматизированна, тогда как в арче это полный пипец, особенно в случае аура. Генту, можно сказать, - дистрибутив «несогласных». В её основе лежит реальная свобода. Свобода выбирать, свобода создавать, свобода изменят, свобода сказать «нет». Ты сможешь сам создать систему по своим правилам. Даже если мейнтейнеры по какой-то причине не добавляют ПО в основное древо, оно всегда будет в одном из оверлеев. Плюс тут ПО доступно сразу многих версий, а некоторые либы могут вообще быть установлены несколькими версиями одновременно.

Переходи на генту. Хотя бы на виртуалку поставь. Тебе же всё-равно придётся это сделать. Зачем ты откладываешь? Даже если тебе не понравится, то ты всегда сможешь вернуться к предыдущей системе.

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от KRoN73

можно же банально подменять сисвызовы glibc, например

anonymous
()
Ответ на: комментарий от ktulhu666

если ты решил собрать какого-нибудь зверька, который может вылезти за пределы песочницы, то что ему помешает получить рута, даже если он будет изначально запущен от юзверя?
ты явно хернёй занимаешься!

megabaks ★★★★
()
Ответ на: комментарий от ktulhu666

Ну скажем так, для меня эти преимущества как раз не так уж и значимы (особливо когда за меня кто то думает что для меня это лучший пряник :-) Мне нужен linuxbase, питон с перлом и gcc с иксами, остальное собираю сам, благо набор прог уже давно устоялся, что то новое появляется крайне редко, да и самих прог не так уж и много. Автоматизация сборки, ну хорошо если есть, но в слаке мне вполне хватает 2 скриптов, для конфигурации и сборки пакета, в которых можно походу скрипта редактором что то быстренько изменить. Проприетарщина только флеш и дрова нвидии, а для них пакеты тоже как то не особо нужны. Помесь либов и тулкитов тоже вообще делается элементарно. Мне нужны только хорошо подобранные друг к другу linuxbase, питон с перлом и gcc с иксами с возможностью обновления. Остальное вообще не так уж и важно
ps nero и так в пакетах нет :-))

SergMarkov
()
Ответ на: комментарий от KRoN73

там же всё в песочнице, а не просто в другом месте собирается

 % sandbox
============================= Gentoo path sandbox ==============================
Detection of the support files.
Verification of the required files.
Setting up the required environment variables.
The protected environment has been started.
--------------------------------------------------------------------------------
Process being started in forked instance.

 * Loading sandboxed shell
 *  Log File:           /var/log/sandbox/sandbox-4317.log
 *  Debug Log File:     /var/log/sandbox/sandbox-debug-4317.log
 *  sandboxon:          turn sandbox on
 *  sandboxoff:         turn sandbox off
 *  addread <path>:     allow <path> to be read
 *  addwrite <path>:    allow <path> to be written
 *  adddeny <path>:     deny access to <path>
 *  addpredict <path>:  allow fake access to <path>

[s] qnikst@qnikst ~/ $ 
qnikst ★★★★★
()

Есть ли скрипты/шаблоны для создания ебилдов генте?

да, для всяких специальных программ перловые библиотеки, латеховые ctan библиотеки, кабализированные haskell библиотеки программы есть генераторы ебилдов. С последними eapi сборка написание configure->make->make install тоже достаточно простое дело, хоть шаблон в vim делай и вводи разные данные в DESCRIPTION, HOMEPAGE, LICENSE и т.п. Для пущей помощи есть ещё куча еклассов.

Потому что их официальный манул меня весьма не впечатлил, а устанавливать программы с /opt - это дебилизм.

для того, чтобы делать простые ебилды (уровня worksforme) достаточно потратить 15 минут и делается это очень просто.

Что делать, если требуется использовать cmake вместо ./configure (а уж тем более, если нужно нестандартные команды выполнить) - вообще непонятно.

достаточно прочитать таки мануал и знать какие еклассы есть. Причём для себя достаточно даже простое описание в handbook, хотя devmanual круче.

qnikst ★★★★★
()
Ответ на: комментарий от SergMarkov

остальное собираю сам

В генте не ты собираешься систему, а система собирает себя :) При помощи USE-флагов можно глобально (что упростит, например, переход на gtk3 или запрет этого перехода) включить-выключить какие-либо опции ./configure или cmake. Можно и локально (для конкретного пакета). USE-флаги приведены к стандартам (его даже их список), поэтому если в какому-то ./configure флаг будет отличаться от стандартного, то мейнтейнеры добавят трансляцию флага, чтобы USE-флаги везде были одинаковыми. Мало того, в генте доступно сразу несколько версий каждой проги, обновление системы тоже проводится автоматически (в зависимости от флагов emerge), есть куча разных тузл для управления пакетами и автоматизации, в также есть тулзы для проверки наличия в системе ПО с уязвимостями и автообновление (у проекта генту есть GLSA).
Я так понимаю, что Вы по духу - LFS'ник. Думаю, что Вам Gentoo понравится в этом случае.

Мне нужны только хорошо подобранные друг к другу linuxbase, питон с перлом и gcc с иксами с возможностью обновления.

В генте всё очень хорошо подобрано, если будете пользоваться стабильными версиями.

ktulhu666 ☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.