26

porg - это альтернатива пакетным менеджерам. Такое полезно, например, юзерам LFS'а (Linux From Scratch), которые не хотят устанавливать пакетный менеджер. Впрочем, если система на основе LFS'а небольшая, то ультракрасноглазый пользователь может даже и porg не устанавливать. А в качестве пакетного менеджера в Магейе уже есть rpm.

make понимает переменную окружения $DESTDIR:

Консоль: root
[root@localhost ~]# make DESTDIR=/tmp/stage install

В итоге всё будет установлено в эту директорию, как будто бы это корень. И тогда можно будет изучить эту отдельную директорию.

Mageia 8 x86_64 / FVWM

27 (2019-05-31 09:32:47 отредактировано alex_q_2000)

saahriktu⇓ пишет:

Впрочем, если система на основе LFS'а небольшая, то ультракрасноглазый пользователь может даже и porg не устанавливать.

Ужас какой! ))) А зачем LFS? Разработчики RPM-систем и так прилагают достаточно усилий, чтобы ничего не работало из коробки. Зачем создавать систему из багов ПО, параллельно объединяя нестыкуемые куски во что-то ещё более "аморфное"? Или это "фетиш" такой? Хотя, это выходит за рамки моего вопроса, сорри. Мне просто дико как-то... ))

saahriktu⇓ пишет:

make понимает переменную окружения $DESTDIR:

А как же ./configure --prefix=/каталог? Или $DESTDIR "перекрывает" --prefix?

saahriktu⇓ пишет:

В итоге всё будет установлено в эту директорию, как будто бы это корень. И тогда можно будет изучить эту отдельную директорию.

А если ./configure --prefix=/usr, то файлы упадут в нужные места или как Бог подаст? Я то грешным делом думал, что ./cofigure --prefix=/каталог сам "распланирует", куда чего распихать + пропишет правильные абсолютные пути, например в пускачах systemd и т.п. + поместит библиотеки в нужные места? Или это из цикла фантастики? big_smile

Исходя из того, что ./configure всё сделает правильно у меня и возник вопрос, как "вытащить" из системы все абсолютные пути к файлам после установки программы. А может быть их можно вытащить ещё до эпизода с make install?

28

А зачем LFS?

Когда нужна минималистичная система (а особенно без графического окружения вообще) - очень удобный вариант. И более гибкий чем Gentoo.

А как же ./configure --prefix=/каталог? Или $DESTDIR "перекрывает" --prefix?

Это разные вещи. --prefix определяет путь относительно корня файловой системы, а $DESTDIR переопределяет сам корень для установки.

Mageia 8 x86_64 / FVWM

29 (2019-05-31 15:20:06 отредактировано alex_q_2000)

saahriktu⇓ пишет:

Это разные вещи. --prefix определяет путь относительно корня файловой системы, а $DESTDIR переопределяет сам корень для установки.

Ясно, значит $DESTDIR круче. Будем иметь ввиду, большое спасибо!
Выходит, что кроме как porg-ом список файлов от make install не получить. А вообще жаль, что многое в линуксе приходится "через зад" добывать. Ну да ладно... ))

Зато благодаря Вам копилка енотов была пополнена пакетами porg. Буду им список выковыривать. good

Пакеты porg v0.10 лежат здесь, если что: https://cloud.mail.ru/public/5PiM/218BnfuV9

p.s. Позже надо мне не забыть их в плюшевом разместить до кучи. Полезная хрень оказалась. drinks

30 (2019-05-31 15:30:37 отредактировано saahriktu)

многое в линуксе приходится "через зад" добывать

Нет, не так. Просто в линуксе по умолчанию нет ничего лишнего. В т.ч. софтины для мониторинга файловой системы. Мало ли что какой софтине хочется делать с файлами в файловой системе. А тут по задаче требуется diff между состояниями. А если нет софтины для мониторинга, то и сохранения состояний нет.

Ещё, кстати, есть вариант с "make -n install". Эта команда только напечатает команды, которые выполняются по "make install", но сами команды выполняться не будут.

Mageia 8 x86_64 / FVWM

31 (2019-05-31 21:39:32 отредактировано alex_q_2000)

saahriktu⇓ пишет:

Ещё, кстати, есть вариант с "make -n install". Эта команда только напечатает команды, которые выполняются по "make install", но сами команды выполняться не будут.

Да, тоже глянул для разнообразия. Там выхлоп похож на Delirium tremens. Непонятно по каким критериям пути искать в этом месиве. Автор porg видимо прилично нагрузился перед тем, как эту софтину наваял. big_smile

32 (2019-06-01 10:12:27 отредактировано alex_q_2000)

saahriktu⇓ пишет:

Нет, не так. Просто в линуксе по умолчанию нет ничего лишнего.

В porg оказывается ещё одна фишка есть. )) В гуй-смотрелке (Утилиты-Системные-Package Organizer) можно мышью выделить нужную программу и создать porgball. Он выдернет из системы дерево установленной программы в соответствии с префиксом. Примерно такой же фигнёй я занимался, когда делал PatchCreator. Т.е. мы получаем типа портабельный (без зависимостей), неопакеченный вариант установленной из исходников программы. Определённо, дело попахивает RPMCreator-ом и спеком-портянкой [(С) gaurii]. smile

33

saahriktu⇓ пишет:

Просто в линуксе по умолчанию нет ничего лишнего.

смотря в каком контексте

ROSA Desktop Fresh R11.1 EE 2016.1 Desktop 64-бит

34 (2019-06-02 13:30:55 отредактировано alex_q_2000)

Здравствуйте, saahriktu!
Понимаю, что уже надоел Вам с расспросами... Но у меня ещё вот один вопрос имеется, если у Вас найдётся время... smile

На какие вспомогательные средства при сборке пакетов из исходников полезно ещё обратить внимание, как это получилось в случае с porg? Я то, как однажды правильно заметил TopE, собираю всё, что плохо лежит, включая ископаемые вещи. )) Может быть есть какие-нибудь средства автоматизации рутинных процессов для инструментов вроде CMake, ninja или ещё какие-нибудь полезные штуки? Просто интересно. Спасибо...

35 (2019-06-02 21:49:16 отредактировано alex_q_2000)

Простите, если был навязчив, бро...

36

Да не, не за что извиняться, просто у меня тут дела.

Вопрос, к сожалению, слишком абстрактный, чтобы с ходу перечислить что-то конкретное. Я бы и про porg в этом контексте не упомянул бы, поскольку его создавали не как сборочный инструмент.

Mageia 8 x86_64 / FVWM

37 (2019-06-02 22:33:25 отредактировано alex_q_2000)

saahriktu⇓ пишет:

поскольку его создавали не как сборочный инструмент.

В чём противоречие? smile Приведите, пожалуйста, примеры, тексты кода. Не нужно уходить в рифмы кода. Поясните, пожалуйста на примерах... Утилиты, левые проги... Если Вас  не затруднит. Мне нужно для анализа... Помогите мне. Хочу видЕтЬ, как делают хакеры. https://forum.mageia.org.ru/viewtopic.p … 56&p=6

38

А при чём тут противоречия? Просто всё вспоминается в своём контексте. porg - в контексте пакетных менеджеров.

Да просто не надо ничего усложнять. Юниксвей, простые make-файлы, .spec-файлы, которые всё устанавливают в %{buildroot}. А то, что не прописано в секцию %files, rpmbuild перечислит при ошибке создания пакета. Останется только добавить.

Mageia 8 x86_64 / FVWM

39 (2019-06-02 22:55:53 отредактировано alex_q_2000)

saahriktu⇓ пишет:

.spec-файлы, которые всё устанавливают в %{buildroot}. А то, что не прописано в секцию %files, rpmbuild перечислит при ошибке создания пакета. Останется только добавить.

%{buildroot} ))) Жопа какая.. А очистка? Чтобы следующий буилд пришёл? Не, бро.. Где стандарты? Кто эту шнягу придумал? Столман?  От чего все прутся то? От отсутствия правил? smile

40 (2019-06-02 22:57:26 отредактировано saahriktu)

Стандартный макрос. В .spec-файлах для удобства активно используются макросы. В bash'е тоже помимо формата $variable есть формат ${variable}. А тут стандартен формат %{macrosname}.

Во что раскрываются общие макросы, значения которых не зависят от процесса сборки, можно смотреть через

Консоль: user
[user@localhost ~]$ rpm -E "%{macrosname}"

Например:
Консоль: user
[user@localhost ~]$ rpm -E "%{buildroot}"
/home/saahriktu/rpmbuild/BUILDROOT/%{NAME}-%{VERSION}-%{RELEASE}.x86_64

Вместо "%{NAME}", "%{VERSION}" и "%{RELEASE}" подставляются соответствующие значения из текущего .spec-файла.

%{buildroot} - это стандартная директория из которой происходит опакечивание файлов, которые перечислены в секции %files.

Mageia 8 x86_64 / FVWM

41

saahriktu⇓ пишет:

Вместо "%{NAME}", "%{VERSION}" и "%{RELEASE}" подставляются соответствующие значения из текущего .spec-файла.
%{buildroot} - это стандартная директория из которой происходит опакечивание файлов, которые перечислены в секции %files.

Мда. Как ослик - пойду повешусь. Дайте мыла кусок и верёвку, мать вашу!! Ответь на вопрос дружище saahriktu, не засирай мозг... Вспомагательные инструменты, блин..  Пожалуйста ...

42

alex_q_2000 пишет:

А очистка?

Добавить в .spec-файл:

%clean
rm -rf %{buildroot} %{_builddir}/*
Mageia 8 x86_64 / FVWM

43

alex_q_2000 пишет:

Вспомагательные инструменты

Ну так откуда ж мне знать какие из них могут быть полезны? Мне хватает самого минимума.

Mageia 8 x86_64 / FVWM

44

saahriktu⇓ пишет:

Ну так откуда ж мне знать какие из них могут быть полезны? Мне хватает самого минимума.

Из Cmake и ninja есть инструменты пути файлов вытащить по факту установки или опять через задницу?

45

А зачем устанавливать в обход пакетного менеджера в той системе, где есть пакетный менеджер?

Проще опакетить и поставить пакет.

Mageia 8 x86_64 / FVWM

46

Нет, не проще. На вопрос ответь, пожалуйста. Хватит вилять хвостом...

47

Это не виляния. Задача слишком странная.

Однако, для её решения есть один более стандартный чем porg инструмент. И ему всё равно через что были установлены файлы. Главное определить временной промежуток в который производилась установка:

Консоль: user
[user@localhost ~]$ find / -newermt "2019-05-31 07:14:15" ! -newermt "2019-05-31 07:16:07"

Вместо дат и времени подставить нужные.

Mageia 8 x86_64 / FVWM

48 (2019-06-03 09:02:34 отредактировано alex_q_2000)

Тебе не кажется, Бро что если бы Жанна Дэ Арк поставила некие дэпты на костре, пока её там лишали девственности, приводя к прелести Приората.. созналась наконец, что она не девственница. Я понимаю, что ты пишешь, теперь объясни пацанам в натуре.. Их здесь много. Я домой еду..

49

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

В то время как можно пользоваться пакетным менеджером, который по "rpm -ql имя_пакета" всегда напишет список файлов пакета.

Минимальный .spec-файл в Магейе создаётся очень быстро. Можно даже не перечислять подробно всё в секции %files. Какое-нибудь

%files
%defattr(-,root,root,-)
/usr

- и оно опакетится.

Mageia 8 x86_64 / FVWM

50 (2019-06-03 01:24:45 отредактировано alex_q_2000)

Знешь, Бро. Когда я сдохну - некому будет рассказать. AlexL вытащил меня из под обстрела. Тут была такая шняга. Он единственный подписался и вытащил енота. Выходил, дал компилятор 1.8.4 Знаешь, Бро, вот случаются такие чуваки. Я ему обязан... Он меня спас.. Это про всё... Это когда обливали помоями за RPMCreator и отсутсвие стандартов... Надело всё... Да и пошло оно всё к оптовой матери... Удачи Вам, дружище... drinks Я не верю в людей.. Но то, как повёл AlexL .. Это в принципе не возможно. Это шок для меня. Здесь же тема обо всём? Нет, не верю. TopE и социальная инженерия, кафедра постулатов Мастера и Маргариты, времена года Вивальди, жизнеутверждающее algri14, глухой Бетховен, философия будуара Маркиза Дэ Сада. Не поддаётся классификации...

Наш истинный призрак блаженства,
Иссяк. Как и тост торжества...
Не нужно искать совершенства,
...в ночном горшке Божества

Честно, дружище.. Для меня это дико. Почему люди могут подписаться за тех, или их метод. Честно, я в шоке. Если тема будет  справедливой, я просто обязан подписаться за AlexL. Я не знаю, как возникают связи между людьми... Спокойной ночи.. До завтра.. Спасибо, что мучились с моей наглой необразованностью...  Думаю, у каждого человека должен быть повод и время...

Глянь, Бро. Девка без носок решила окна помыть. Клёвая вещь... https://www.youtube.com/watch?v=Jc-MRIbtyP8 В стиле Бонни и Клайд, реликт...