76

https://wiki.mageia.org.ru/index.php?ti … 0.BA.D0.B0

С уважением, руководитель образовательного направления Mageia - EduMagic
===
Если до 03.09.2020 года не будет предоставлена ссылка на ресурс в котором описывается это "Образовательное направления Mageia - EduMagic" и его руководитель подпись будет удалена. Вводить в заблуждение пользователей не допустимо.
Спасибо сказали: alex_q_20001

77

AlexL⇓ пишет:

https://wiki.mageia.org.ru/index.php?ti … 0.BA.D0.B0

Почитал про mass_rebuild и даже собрал тут чего-то. Хотелось бы сказать больше, но, пожалуй, воздержусь от комментариев. Пусть этот способ сборки останется достоянием профессионалов. Благодарю за консультации. smile

78 (2019-06-25 16:51:53 отредактировано alex_q_2000)

Здравствуйте, saahriktu.

Если Вы располагаете временем, хотел бы обсудить с Вами насущную проблему повсеместного бардака в ОС Linux на примере... smile

Вот нашёл я красивую и полезную программу (дисковая диаграмма) Duc: https://pingvinus.ru/program/duc
Иду на сайт программы: https://duc.zevv.nl/

Читаю про сборку и инсталляцию...

Install
To build Duc with its default options, run:

$ ./configure
$ make
$ sudo make install

To get the required dependencies on Debian or Ubuntu, run:
$ sudo apt-get install libncursesw5-dev libcairo2-dev libpango1.0-dev build-essential

On RHEL or CentOS systems, you need to do:
$ sudo yum install pango-devel cairo-devel tokyocabinet-devel

Перед сборкой ставлю devel-зависимости: urpmi --auto pango-devel cairo-devel tokyocabinet-devel

Иду на гитхаб и качаю исходники: https://github.com/zevv/duc/archive/1.4.4.tar.gz
Распаковываю в /duc-1.4.4 и захожу в неё: cd /duc-1.4.4

Имею список файлов:

ls
build/     configure.ac  doc/       gentoo/  INSTALL  Makefile.am  src/      todo     valgrind-suppressions
ChangeLog  COPYING       examples/  img/     LICENSE  README.md    test.sh*  TODO.md

По инструкции делаю следующее:

./configure
bash: ./configure: Нет такого файла или каталога

Здесь хочу ещё раз подчеркнуть, что всё делаю по инструкции с официального сайта.

Чтож. Как обычно ищу переписку адептов и профессионалов в этой сфере...
Через братьев по несчастью и десятые руки нахожу: https://unixforum.org/viewtopic.php?t=87963

Цитата:
Если отсутствует configure, собираем его командами bootstrap или autogen.sh. Если нет и таких скриптов, то пробуем
aclocal
autoheader
automake --gnu --add-missing --copy --foreign
autoconf

Проделываем описанное выше и только теперь делаем то, что написано на сайте:
$ ./configure --prefix=/usr
$ make
#Отлавливаем файлы через porg:
$ porg -lp duc "make install"

Получаем 2 файла:

/usr/bin/duc
/usr/share/man/man1/duc.1

Программа собрана и работает. Проверяем...

#Добавляем каталог в индекс:
duc index /var
#И смотрим результат в гуях:
duc gui /var

http://images.vfl.ru/ii/1561469009/1dbefea4/27001709_s.png

Перед упаковкой в пакет требуется сжать в xz man-файл, иначе он не будет включен в пакет...

cd /usr/share/man/man1/
xz ./duc.1

Но возвращаясь к теме бардака... Почему авторы программы предлагают сразу перейти к ./configure, минуя шаманскую стадию:

aclocal
autoheader
automake --gnu --add-missing --copy --foreign
autoconf

Вопрос возник потому, что этими "граблями" усеяны все пути к трезвому, адекватному пониманию того, что именно нужно делать в Линукс, чтобы достигнуть желаемый результат. Почему всё именно так?

79

Но при чём здесь линукс, если нет файла в git-репозитории этой конкретной проги?
https://github.com/zevv/duc/issues/211

Mageia 7 x86_64, KDE Plasma

80

gaurii⇓ пишет:

Но при чём здесь линукс, если нет файла в git-репозитории этой конкретной проги?
https://github.com/zevv/duc/issues/211

А. Вы ещё одну ссылку нашли, как эту проблему решить? )) Так вот я и говорю, как это делается у нормальных людей:
1. Зашёл на сайт
2. Получил всю необходимую информацию
3. Выполнил группу действий и поимел результат

В данном случае, как и в большинстве других с Линуксом имеем другую схему:
1. Заходим на сайт
2. Получаем НЕправильную информацию
3. Начинаем всем миром искать концы
4. Потом вылазит бородатый мужик, говорит "айм сорри, сделайте там autoreconf", но изменения в инструкции на сайте сделать не удосуживается. Кусок бороды здесь, кусок бороды там, всё это размазано попытками участников обсуждения решить проблему своими методами. А методов, как выясняется пруд пруди. И вот время прошло... Исписаны километры форумов, назначены новые гуру и... На сайт заходит следующий нуб... Продолжение Вы уже знаете.

Нет системы, нет стандартов и нет общего вектора развития. Даже в элементарном приходится заниматься доделками/переделками. Почему нет каких-то общих алгоритмов сборки программ? Я не имею ввиду толстенный фолиант с мантрами, а 5-6 страниц понятного текста. Открыл, посмотрел какие файлы присутствуют, каких нет. Поводил по стрелкам пальцем и пришёл к выводу: сделать нужно то-то. Но похоже, уписывать в 5-6 страниц - это не юниксвэй? Юниксвэй - это массовка андеграунда? Нет очертаний системы как таковой, всё из каких-то лоскутов и догадок соткано. Дисциплины нет нигде. Отсюда и назначение для штучных устройств: заточили под определённое железо и пока не устарело продали. Время прошло - ещё нарезали. Что это за подход?

81

alex_q_2000 пишет:

Так вот я и говорю, как это делается у нормальных людей:
1. Зашёл на сайт
2. Получил всю необходимую информацию
3. Выполнил группу действий и поимел результат

В данном случае, как и в большинстве других с Линуксом имеем другую схему:
1. Заходим на сайт
2. Получаем НЕправильную информацию
3. Начинаем всем миром искать концы
4. Потом вылазит бородатый мужик

Бородатый мужик - автор прилолжения на своём сайте не написал, что в репозитории его программы нет файла configure. Ну ладно, допустим мужик ненормальный. Но при чём здесь линукс вообще? Какие нужны алгоритмы? Обычный алгоритм configure - make - make install, если как-то иначе - смотрим файл Install в исходниках. А что линукс - это конструктор, это и так известно и в этом его достоинства и его недостатки, которые есть продолжение достоинств.

Mageia 7 x86_64, KDE Plasma

82

gaurii⇓ пишет:

Обычный алгоритм configure - make - make install, если как-то иначе - смотрим файл Install в исходниках

На дворе 21 век. И только в Линуксе нужно встать в какую-то неописуемую раскаряку, чтобы установить программу на компьютер. Сегодня не хватило configure, завтра выяснится, что нужен какой-нибудь ниндзя, кумэйк, симэйк или ещё что. Не устанавливается? Ба! Так это у Вас в системе не хватает заголовочных файлов, других пакетов, других средств сборки, других разных фигней. Их нужно из предыдущей версии брать и собирать в этой. При всём уважении - всё вот это, глобально, ну никак нельзя назвать преимуществом. Поясню иначе...

Вот есть микросхема. Сегодня она содержит 500 транзисторов. Через месяц уже 1500, через 10 лет 2 миллиона. А вот родился человек с нулевым представлением о жизни. Человек ростёт, развивается, берёт в руки паяльник и собирает схему, содержащую микросхему, которая внутри себя содержит 2 миллиона транзисторов.

Человек вовсе не обязан вникать в архитектуру всех технологий и наработок. Из поколения в поколение дискретизация мышления естественным образом меняется: первооткрыватель мыслит штуками, продолжатель мыслит коробками из штук, новое поколение обрабатывает информацию контейнерами из коробок, которые содержат штуки. Линукс же предполагает изучение этих "штук" на всех этапах своего развития. Невозможно что-то сделать в Линукс, если заранее не располагать необходимым представлением о штуках из каменного века. Но прогресс то не стоит на месте. Естественная убыль аудитории, непопулярность ввиду планомерного усложнения всей конструкции - вот последствия такого подхода. Хороший конструктор мог бы состоять не из непонятных штук, а из понятных контейнеров. При всём уважении.

83

alex_q_2000 пишет:

На дворе 21 век. И только в Линуксе нужно встать в какую-то неописуемую раскаряку, чтобы установить программу на компьютер.

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

Консоль: root
[root@localhost ~]# urpmi programname

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

Mageia 7 x86_64, KDE Plasma
Спасибо сказали: alex_q_20001

84 (2019-06-26 18:30:08 отредактировано alex_q_2000)

gaurii⇓ пишет:

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

Сорри, мне тут доски на дачу подвозили, пришлось отъехать, поучаствовать. )) Ладно, задам последний вопросище, больше не буду Вас мучить (пока). )) А почему бы на каталог, в который распаковали некий исходник не натравить некую "программу-эксперт"? Скормил ей каталог, она сама определила, что требуется для сборки, сопоставила всё это добро с окружением, в котором запущена и предложила вариант сборки: доустановить то-то, выполнить то-то и т.д. Есть ли такие в природе? smile

85

В Росе есть какой-то скрипт, поищите, только его надо дорабатывать, как впрочем всё, что в Росе есть.

С уважением, руководитель образовательного направления Mageia - EduMagic
===
Если до 03.09.2020 года не будет предоставлена ссылка на ресурс в котором описывается это "Образовательное направления Mageia - EduMagic" и его руководитель подпись будет удалена. Вводить в заблуждение пользователей не допустимо.

86 (2019-06-27 11:06:23 отредактировано alex_q_2000)

AlexL⇓ пишет:

В Росе есть какой-то скрипт, поищите, только его надо дорабатывать, как впрочем всё, что в Росе есть.

Привет, AlexL. А как оно примерно может называться? Хоть одним глазком глянуть... drinks


В ходе поисков параллельно открыл для себя checkinstall. Он даже в официальных репах Магии есть. Мега-прикольная программа. Сразу, в процессе сборки создаёт пакет из исходников. Пакует всю выжимку в RPM без спеков. Надо же, всё это время совсем рядом был ещё более наглый, прямой конкурент. big_smile


Оставлю описание checkinstall для кучи: http://ashep.org/2010/sozdanie-paketov- … ckinstall/
А здесь оригинал статьи по проблеме с отсутствующим configure: https://help.ubuntu.ru/wiki/programs_installation

87

alex_q_2000, не помню название, Денис Силаков вроде делал.

С уважением, руководитель образовательного направления Mageia - EduMagic
===
Если до 03.09.2020 года не будет предоставлена ссылка на ресурс в котором описывается это "Образовательное направления Mageia - EduMagic" и его руководитель подпись будет удалена. Вводить в заблуждение пользователей не допустимо.

88 (2019-06-27 15:30:58 отредактировано AlexL)

spec-gen:
http://wiki.rosalab.ru/en/index.php/%D0 … d_Programs
https://pkgs.org/download/spec-gen
4 года назад заглохла разработка, что в принципе для Росы обычное явление.

С уважением, руководитель образовательного направления Mageia - EduMagic
===
Если до 03.09.2020 года не будет предоставлена ссылка на ресурс в котором описывается это "Образовательное направления Mageia - EduMagic" и его руководитель подпись будет удалена. Вводить в заблуждение пользователей не допустимо.
Спасибо сказали: alex_q_20001

89

AlexL⇓ пишет:

alex_q_2000, не помню название, Денис Силаков вроде делал.

Нашёл ещё про ABF: http://2014.secrus.org/2014/files/022_silakov.pdf Как раз год, когда заглох spec-gen, наверное. Посмотрел презентацию. Довольно толково всё объясняет. Ну да ладно.

AlexL⇓ пишет:

spec-gen:

Посмотрел spec-gen. В питонах я не силён, но по коду и описанию доходит, что скрипт парсит configure.in, configure.ac, CMakeLists.txt, *.cmake или setup.py.
Затем ищет в репах сходные провИдесы зависимостей через подстановку:
---
urpmq --whatprovides pkgconfig(то_что_нашёл)
urpmq --whatprovides pkgconfig("lib"+то_что_нашёл)
urpmq --whatprovides pkgconfig(то_что_нашёл+"-devel")
urpmq --whatprovides pkgconfig("lib"+то_что_нашёл+"-devel")

Например:

urpmq --whatprovides "pkgconfig(cairo)"
lib64cairo-devel|lib64cairo-devel

Дальше какой-то канделябр с поиском локальных путей к файлам установленных пакетов... Ну и вишенка на торте - подобие спека с BuildRequires-ами (а как же Requires:-ы ?) и шапкой из входных параметров при запуске.

Спасибо, AlexL. Кусок безусловно интересный и неоднозначный, по ощущениям. Сдаётся мне, что вариаций поиска должно быть больше, но ход мысли автора примерно ясен. Нужно взять на вооружение... smile

90 (2019-06-28 10:19:10 отредактировано alex_q_2000)

Господа, а как обустроить для себя сборочную из исходников, чтобы ни в чем себе не отказывать?
Цель: скачать любой интересный исходник с гит-хаба и уже не задумываться о средствах сборки и нюансах. Сейчас ставлю вот такую кучу...

Обязательные:
---
gcc
gcc-c++
ninja
make
cmake
automake
autoconf
qtbase5-common-devel (qmake)
vala (компилятор, часто попадался при сборке)

Разное для пакетов:
---
rpm-build (притянет много полезной фигни)
rpm-sign (подписывать пакеты)
porg (в плюшевом, искать файлы после установки)
deps (в плюшевом, ставит BuildRequires из спеков)
checkinstall (собирает файлы в rpm-пакет; вместо make install, удобно)

Понимаю, что для гуру это выглядит неким лоховством, но мне просто гемор не нужен. Может есть смысл что-то добавить? smile

p.s. Кто подскажет пакетов пачку, тот получит водокачку. big_smile

91

urpmi *

С уважением, руководитель образовательного направления Mageia - EduMagic
===
Если до 03.09.2020 года не будет предоставлена ссылка на ресурс в котором описывается это "Образовательное направления Mageia - EduMagic" и его руководитель подпись будет удалена. Вводить в заблуждение пользователей не допустимо.

92

AlexL⇓ пишет:

urpmi *

Очень информативно, AlexL. lol

Ладно, обещания надо выполнять. Сорри, красные закончились.

http://images.vfl.ru/ii/1561720891/86979738/27036510_s.jpg