LINUX.ORG.RU

Фундаментальный вопрос о Gentoo.

 , ,


0

2

Вечер добрый, дорогие ЛОРчане. Вот есть, к примеру, такая программа - Qcad. В официальном дереве Gentoo она отсутствует, а поиск по оверлеям находит нам версию 2.0.5.0, которой уже 5(!)лет. Актуальная версия имеет версию 3.6.4, и распространяется она в виде инсталлера .run и в виде тарболла с исходниками. Вопрос в том, существует ли адекватный способ установки этой версии посредством Portage (.run, понятное дело, не годится)? Под адекватным подразумевается способ не сложнее дебиановского (проверить сборочные зависимости, опакетить исходники, установить, доставить необходимые зависимости - дел минут на 15, не считая сборки). Буду рад конструктивным мнениям.

Берёшь ебилд из 2.0.5.0, переименовываешь в 3.6.4, пробуешь собрать. Если не выйдет, смотришь почему и правишь ебилд. Смыть, пересобрать, повторить до готовности.

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

В обход написания ебилда? Сильно не критикуйте, в генту недавно.

Crusader
() автор топика

Напиши ебилд.
Берёшь ебилд из 2.0.5.0, переименовываешь в 3.6.4, пробуешь собрать. Если не выйдет, смотришь почему и правишь ебилд. Смыть, пересобрать, повторить до готовности.

В source-based дистрибутиве такие проблемы со сборкой из исходников?

Crusader
() автор топика

там проблема на проблеме, ему нужен qt-3.*, т.е. добавляешь оверлей qt, а оттуда в слот собираешь 3 версию, а потом уже думать, что делать дальше.

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

Спс за инфу, но, боюсь с гентой это поможет не сильно.

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

Нет, только со старым софтом, которому нужны старые либы/фреймворки и т.д.

Ну а вообще - вообще никаких проблем нет, ты можешь без проблем собрать вручную или же написать ебилд сам.

Не понимаю, в чем конкретно проблема если есть исходники и компилятор.

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

Напиши, пожалуйста, про «сборку вручную» поподробнее. Это как, в обход пакетного менеджера, превращая систему в помойку? Ебилд пока сложновато)).

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

Да, у меня вот какая:

(~)3.5.1.0{tbz2}

Если надо, могу ебилдом поделиться.

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

При правильной ручной установке оно не будет лезть в никому не нужный /usr/local. Но файлики надо будет сохранить, чтобы можно было потом make uninstall сделать. А вот если софтинка make uninstall не умеет, то нужно либо предварительно в /tmp куда-нибудь установить и сохранить список пакетов, либо использовать предназначенный для этого механизм ебилда.

Eddy_Em ☆☆☆☆☆
()

P.S. Qcad скатился в либрекад. Хоть более свежий кюкад и не страдает падучкой, как предыдущие версии, но выглядит как откровенное дерьмо. Прямо вылитый либрекад. С другой стороны, сам либрекад — вообще жесть отстойнейшая.

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

Нахрена /usr/local? Ставишь сначала прямо в хомяк, в ~/qcad. Проверяешь, что всё работает как надо. Пишешь ебилд и ставишь уже в систему нормально.

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

В source-based дистрибутиве такие проблемы со сборкой из исходников?

Нет никаких проблем, если результатами сборки гадить только в хомяке. Если хочется интеграции и централизованного управления, то нужно писать ebuild.

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

, то нужно либо предварительно в /tmp куда-нибудь установить и сохранить список пакетов

до первого рестарта

Ключевое слово было «сохранить».

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

Т.е. допонять ты не можешь, да? Естественно, потом ты копируешь все в /usr

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

При правильной ручной установке оно не будет лезть в никому не нужный /usr/local.

Ты хлотел сказать при неправильной установке. Ибо /usr/local как раз и используется для того, чтобы не делать из системы помойку. Не думал почему он всегда по умолчанию в ./configure стоит?

то нужно либо предварительно в /tmp куда-нибудь установить и сохранить список пакетов

Именно это portage и делает.

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

Ибо /usr/local как раз и используется для того, чтобы не делать из системы помойку.

Если в системе нет пакетного менеджера, то это не система, а говно какое-то.

Если в системе есть пакетный менеджер, софт надо ставить через него.

Вывод: /usr/local/ не нужен.

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

Ибо /usr/local как раз и используется для того, чтобы не делать из системы помойку

Мне плевать. Я свое всегда в /usr/bin ставлю. Изредка — в ~/bin.

Eddy_Em ☆☆☆☆☆
()

Впринципе, тебе уже все сказали.
quick'n'dirty - просто установи. Тогда оно установится в /usr/local - так и надо. Для тебя не будет никакой разницы, ибо /usr/local/{bin,lib,share,...} ведет себя точно так же, как и /usr/{bin,lib,share,...}. Минус - потом ты замахаешься вычищать это из системы.
Нормальный способ - сделать ebuild. Не бойся этого, ты уже потратил в этом форуме больше времени, чем потратил бы на написание ebuild. Только не смотри в ebuild старой верии - там они делают какую-то магию (патчат что-то, языки настраивают). ebuild - это bash скрипт. То есть если ты знаешь какими командами можно установить этот пакет, то «опакетить» - это поместить это в функцию с правильным именем и добавить шапку-описание. Просто в ebuild есть куча упрощалок, котороые поначалу сбивают с толку.
https://devmanual.gentoo.org/quickstart/
http://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds http://gentoo-pr.org/gentoo-dev/ebuild-quick-reference.html

При использовании .run файла, твой ebuild будет выглядеть что-то типа (за 100% правильность не ручаюсь).

EAPI="5"

SLOT="0"

DESCRIPTION="Опиши что за пакет"
HOMEPAGE="Домашняя страница пакетв"
SRC_URI="Откуда качать"

LICENSE="укажи"
KEYWORDS="~amd64 ~x86"

src_install() {
    doexe "${S}/bla-bla-bla.run"
}

Далее кладешь это в /usr/local/portage/категория/qcad/файл-версия Запускаешь

$ ebuild файл.ebuild digest
$ ebuild файл.ebuild manifest
Все. Проверяешь emerge -pv файл.
http://www.gentoo-wiki.info/HOWTO_Installing_3rd_Party_Ebuilds

Плюсы - сможешь сделать emerge --unmerge если что.

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

Если в системе нет пакетного менеджера, то это не система, а говно какое-то.
Если в системе есть пакетный менеджер, софт надо ставить через него.

Всё верно, по-другому и быть не может.

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

Если в системе нет пакетного менеджера, то это не система, а говно какое-то.

Таких нет AFAIK.

Если в системе есть пакетный менеджер, софт надо ставить через него.

Согласен.

Вывод: /usr/local/ не нужен.

Неправильно.

Свои system-wide скрипты-тулзовинки ты тоже через пакеты ставишь? А свои ebuild'ы ты в основное дерево суешь (до ближайшего sync)?

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

Я свое всегда в /usr/bin ставлю. Изредка — в ~/bin.

Зря. Но это:

Мне плевать.

многое объясняет.

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

Ну, за такую инструкцию жму руку товарищу Kroz и всем остальным, кто пытался помочь. Будет время - разберусь. П.С. Эх, в Debian это всё делается на порядок проще. Кто знает, может и есть какая-то выгода от использования генты, может и нет.

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

Свои system-wide скрипты-тулзовинки ты тоже через пакеты ставишь?

Есть полтора недоскрипта на пару строк, которые дёргаются при загрузке. Лежат в /etc. Почему? Потому что /etc бэкапится, а /usr — нет.

Остальные скрипты, — которые касаются моего workflow, а не системы, лежат внутри хомяка и загнаны в git. Что логично, ибо они к системе отношения не имеют.

А свои ebuild'ы ты в основное дерево суешь (до ближайшего sync)?

У меня Archlinux. В свой репозиторий складываю. Еслю людям может пригодиться, дублирую в AUR.

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

system-wide скрипты-тулзовинки

Лежат в /etc.

Вот где им не место...
У меня лежат в /root/bin . А то, что нужно не только root - линк в /usr/local/bin . Хомяки бекапятся.

В свой репозиторий складываю.

В генте /usr/local/portage и есть свой локальный репозиторий.

Kroz ★★★★★
()

Это такая программа, что не требует постоянных обновлений и может годами использоваться одной версии. Просто юзай ее распакованной в отдельный каталог и не парься.

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

В source-based дистрибутиве проблемы со сборкой из исходников, билдсистемы к которым писали индусы

Fixed for great justice... Как-то так

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

Ещё вот qcad-3.6.4.

Немного не в тему, не знаете, как победить кодировки при конвертации из AutoCad. Исходно cp1251, на выходе из TeighaFileConverter utf-8, хотя внутри файла указана та же ANSI_1251. Попытки с iconv, удалением ANSI_1251 не привели к успеху. Не делали такого случайно?

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

Не помню. Вроде делал, но давно это было. В самих dxf текст по-дурацки кодируется: вида \U+код. Макрос можно написать, который будет каждую кириллическую букву на такой код заменять.

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

Вижу текст в полученных *.dxf «как есть», похоже и правда, {Libre,Q}Cad ожидает \U+код, погуглю ещё что-нибудь готовое, спасибо.

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

Копировать бинарные файлы в /usr/share это круто. И использование LD_LIBRARY_PATH вместо упаковки конфиг файла в ld.so.conf.d/ это тоже круто.

Vovka-Korovka ★★★★★
()

Мда, страху-то нагнали про помойки... Помойка это когда у тебя 100500 пакетов в /usr, которые надо обновлять руками (ключевое слово «надо», в целях безопасности и т.п.).

rm -rf ~/local/qcad это не помойка, а порядок вещей.

gh0stwizard ★★★★★
()

Чем тебя не устраивает ран? Он просто распакует тебе все в /opt и все, оттуда будешь запускать ее.

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

Вот за это спасибо. Даже разбираться не пришлось. Кстати, посоветуйте тогда уж какие-нибудь альтернативные поисковики по оверлеям, а то одним http://gpo.zugaina.org/ скорее всего не обойтись. Или в layman есть встроенный поиск по git и прочему?

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

Добрые люди помогли с ebuild. Он приоритетнее. Ран - это запасной вариант.

Crusader
() автор топика

Еще один вопрос вдогонку, не менее фундаментальный для новичка. Имею Nvidia вместо видеокарты и хочу узнать, можно ли обойтись только проприетарным драйвером в системе, не включая нуво? Так как нуво всё равно присутствует в ядре, то если в make.conf указать VIDEO_CARDS=nvidia, без nouveau, то нуво автоматом заблэклистится? Если это так, не слишком ли рискованно оставлять только блоб? Если он отвалится при обновлении, не попаду ли я в черный экран без нуво-то?

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

если ставишь проприетарный, то открытый не нужен, ибо они конфликтуют.

VIDEO_CARDS=nvidia, без nouveau, то нуво автоматом заблэклистится?

йеп, вернее не заблеклистится, а просто не будет ставиться

Если он отвалится при обновлении, не попаду ли я в черный экран без нуво-то?

делаешь

emerge @x11-modules-rebuild
и все пересобирается как надо

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