Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

> Внимание!

Прочитайте перед тем, как задать вопрос:

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

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

если вы не уверены в своих знаниях - добро пожаловать в "Администрирование для начинающих".

 
Reply to this topic Start new topic
> топологическая сортировка, сборка пакетов
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 11:45
Сообщение #1


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
добрый день

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

в инете "как такового" решения не нашел, есть только теория

по понятным причинам не надо предлагать разобрать под микроскопом исходники "пакетных менеджеров" и прочих "комбайнов", в задачу не входит "написать мир с нуля" :о) (надеюсь, смысл понятен)

не обсуждается
- наш дистрибьютив
- как мы собираем пакеты (понятно, что все не так как надо и все через не то место :о)

в тек. момент "весь процесс" составляется в ручном режиме, если будут подходящие идеи/решения, то попробуем "заточить" под "свои задачи", если нет - значит "перебьемся" :о), как говориться, и на этом спасибо

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

буду благодарен за
- волшебные пендили (в нужном направлении)
- ссылки
- идеи
- методы/решения - кто и как с "подобной задачей" справляется (ведь есть же такие спецы?!)

постановка задачи (что видится или как примерно будет решаться)

на входе
- "какое-либо" описание зависимостей, текст, или еще какой формат (типа пакет А зависит от А.1, А.2, А3, Б)
- возможно, вариации "версий" или еще какие-то "варианты" (типа пакет А совместим с А.1 - версии 1.0-1.5, и уже не совместим с версиями 0.1-0.9 и 1.6 и выше)

на выходе
- последовательность сборки пакетов (последовательная , не параллельная), типа сборка в след. посл-ти:
А.1, А.2, А3, Б, А

tag:
- топологическая сортировка
- теория графов
- алгоритм разрешения зависимостей

спасибо за помощь

### дополнение ###

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



--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 12:12
Сообщение #2


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

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


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
Vascom
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 12:55
Сообщение #3


Знаток линукса
Иконка группы

Сообщений: 745

Вставить имя   :   Цитата

ОС: Fedora 26
Город: Moscow

Группа: Участники

Цитата(Bizdelnick @ Jul 9 2017, в 12:12) *
Эту задачу часто решают методом грубой силы: сначала собирают нужные версии всех пакетов как получится, потом на получившемся репозитории запускают массовую пересборку, в которой все зависимости будут уже актуальных версий (порядок сборки в данном случае уже не важен). Топологическая сортировка скорее всего не удастся из-за циклических зависимостей (а для сборочных зависимостей это в порядке вещей, ведь чтобы собрать компилятор нужен компилятор, без бутстрапинга никак).

Согласен, что так не делают. Но всё же не обязательно собирать всё-всё с нуля. Можно иметь начальный набор - компиляторы и основные зависимости. Топикстартер такую задачу не ставил, вроде.


--------------------
Помощь по Fedora и RFRemix.
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 13:05
Сообщение #4


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
> Топикстартер такую задачу не ставил, вроде.
да мы че, совсем что ли на голову больные?
"написать мир с нуля" мы не планируем tongue.gif

если это так нужно, УТОЧНЯЮ
- система на которой все будет собираться УЖЕ ЕСТЬ, со всем КОМПЛЕКТОМ DEVELOP-пакетов

т.е. для сборки все есть
ЗАДАЧА - получить список последовательности сброки пакетов... гм, ну например какого либо большого пакета, типа KdeNlive. (ну типа к примеру)

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

что -то как то все, блин, хреново это все... "как получится, да потом че-нить да подрихтуем"... :о(
но к решению задачи в том виде в котором "треба" - не имеет отношения, имхо...

спасибо


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 14:21
Сообщение #5


Бывалый
Иконка группы

Сообщений: 378

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

то есть ровно то, что делает tsort?
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 15:57
Сообщение #6


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
> tsort
гуглить и манить я, вроде как, тоже умею rolleyes.gif rolleyes.gif rolleyes.gif
наткнулся "на нее" в другом форуме, сейчас изучаю, но как то очень сильно сомневаюсь, в том, что она сильно поможет в данном вопросе

побоялся за свой "хранцузский", нашел достойное описание

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

ну и теперь думаем, как это поможет отцу русской демократии?

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


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 17:09
Сообщение #7


Бывалый
Иконка группы

Сообщений: 378

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

sunjob
Тогда постарайтесь объяснить что вам надо. Частично упорядоченное множество - понятие однозначное, метод его представления и сортировки тоже описан подробно и однозначно, например, у Кнута.
А ваши предыдущие объяснения выглядят подозрительно абстрактно и размыто.
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 17:28
Сообщение #8


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
> подозрительно, абстрактно и ... что там, ага! - размыто

на входе
- "какое-либо" описание зависимостей, текст, или еще какой формат (типа пакет А зависит от А.1, А.2, А3, Б)
- возможно, вариации "версий" или еще какие-то "варианты" (типа пакет А совместим с А.1 - версии 1.0-1.5, и уже не совместим с версиями 0.1-0.9 и 1.6 и выше)

на выходе
- последовательность сборки пакетов (последовательная , не параллельная), типа сборка в след. посл-ти:
А.1, А.2, А3, Б, А

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

ну и ведь очевидно, что ВСЕ С НУЛЯ мастерить - не подходит
> если будут подходящие идеи/решения, то попробуем "заточить" под "свои задачи", если нет - значит "перебьемся"
ведь понятно, что ДЕЛАТЬ МОНСТРА не стоит как задача, надеемся, что ПОДОБНЫЕ задачи как то да решаются... ПОДОБНЫЕ - значит не только ЗАВИСИМОСТИ ПАКЕТОВ, есть куча всего замечательного, где ЧТО-ТО подобное так же требуется, но в РАЗУМНЫХ пределах

все имхо, спапсибо


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 20:41
Сообщение #9


Бывалый
Иконка группы

Сообщений: 378

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

sunjob
Так и объясняйте: вам нужен менеджер пакетов со стандартными возможностями.
Теперь объясните, почему вы хотите изобрести велосипед вместо того, чтобы воспользоваться штатным.
Go to the top of the page
 
+Quote Post
yars
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 20:55
Сообщение #10


Slacker!
Иконка группы

Сообщений: 1098

Вставить имя   :   Цитата

ОС: Slackware64-current
Город: Тамбовская область

Группа: Участники

Очереди зависимостей может формировать sqg, который входит в пакет sbopkg. Но он это делает путем анализа установленных пакетов.


--------------------
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 22:05
Сообщение #11


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

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

на входе - "обычный" список пакетов
на выходе - "правильный" список пакетов

> Очереди зависимостей может формировать sqg, который входит в пакет sbopkg. Но он это делает путем анализа установленных пакетов.
понял, но сами видите не подходит уже по определению :о) да и в планах - сам пакетник не использовать

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

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

если мы чего та не знаем, это же совсем на значит, что этого нет вообще... :о) как-то так...

спасибо


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 22:05
Сообщение #12


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(sunjob @ 9th July 2017 - в 17:28) *
на входе
- "какое-либо" описание зависимостей

Собственно, получение этого описания и есть самая сложная часть задачи.

Цитата(sunjob @ 9th July 2017 - в 17:28) *
вот я перечитал и стало совсем понятно, что более понятно обьяснить не смогу

Сможете, если перейдёте к конкретике. Кто знает, что и из чего Вы там собираете? Для deb-пакетов, например, есть botch, но Вы же не хотите раскрывать тайну, какой формат пакетов используете.

Цитата(Vascom @ 9th July 2017 - в 12:55) *
Но всё же не обязательно собирать всё-всё с нуля.

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


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 22:15
Сообщение #13


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
> Собственно, получение этого описания и есть самая сложная часть задачи.
получение и запись этих зависимостей - есть наша задача, в решение оно не входит ни каким боком, МЫ САМИ БУДЕМ ЗАДАВАТЬ ЭТИ САМЫЕ ЗАВИСИМОСТИ... т.е ни какой привязки к пакоменеджерам!

а теперь все!!! забыли про линуксы, пакеты, пакоменагеры и типы пакетов!!!

берем исходное б.м. понятное описание задачи:

на входе
- "какое-либо" описание зависимостей, текст, или еще какой формат (типа пакет А зависит от А.1, А.2, А3, Б)
- возможно, вариации "версий" или еще какие-то "варианты" (типа пакет А совместим с А.1 - версии 1.0-1.5, и уже не совместим с версиями 0.1-0.9 и 1.6 и выше)

на выходе
- последовательность сборки пакетов (последовательная , не параллельная), типа сборка в след. посл-ти:
А.1, А.2, А3, Б, А


ПАКЕТЫ - заменяем на ЛЮДЕЙ
СБОРКУ - заменяем на любое действие ПОКУПКА, СВИДАНИЕ, УБИЙСТВО итд...

надеюсь так станет понятней?! подобные задачи решаются, автоматизируются, есть наработки, пакеты/программы итд (далее по тексту :о)
зависимости "изыскиваются/создаются/набиваются" в "задачу" - как исходные данные...

ни каких линуксов, типов пакетов, процесса сборки, итд... если сложно, ну можно ведь и не отвечать... ни кто вас не упрекнет в том, что я так хреново обьясняю :о)

на примере "последовательности сборки автомобиля"
- сначало собираем корпус (который зависит от кучи запчастей, значит изготавливаем сначало запчасти, потом собираем корпус)
- далее вставляем двигатель (со своими зависимостями)
- далее подвеску (со своими зависимостями)
- далее рулль ...

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

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

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

что-то мне напомнило
ТЫЦ


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 22:59
Сообщение #14


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Ну ок, абстрагировались. Так а что не так с tsort-то?
%
% cat deps 
запчасть1 корпус
запчасть2 корпус
корпус двигатель
корпус подвеска
двигатель подвеска
подвеска руль
% tsort deps
запчасть1
запчасть2
корпус
двигатель
подвеска
руль
%


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 9 2017, в 23:17
Сообщение #15


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

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

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

спасибо


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 10 2017, в 00:27
Сообщение #16


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(sunjob @ 9th July 2017 - в 23:17) *
описание зависимостей не совсем удобно, хотелось бы по строке на каждый пакет

Ну как вариант:
Код
#!/usr/bin/make -f

.PHONY: all
all: запчасть1 запчасть2 подвеска руль двигатель корпус

корпус: запчасть1 запчасть2
подвеска: корпус двигатель
двигатель: корпус
руль: подвеска

%:
    @echo $@


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 10 2017, в 00:35
Сообщение #17


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(sunjob @ 9th July 2017 - в 23:17) *
все таки интересуюсь, какие наработки используются в промышленности

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


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 10 2017, в 04:34
Сообщение #18


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

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

> по поводу коня
это не конь сферический (не надо передергивать) а общая задача, без конкретики, вумный поймет ... и далее по тексту :о)

> по сортировке
небольшие тесты - вроде как отрабатывают, ГУТ, можно сказать превосходно
НО, как понятно и слону - только зависимости, с версиями пока не вижу решения (надеюсь кому надо, тот понял, о чем речь :о)

спасибо

ВОПРОС ОСТАЕТСЯ ОТКРЫТЫМ - какие наработки применяются вообще, в пром-ти, где либо еще?!

### UPDATE ###

некоторые особенности команды tsort

при тестировании простейшей схемы выяснилось, что "токены" должны быть парами

пример, два аналогичных описания, первый отработает нормально, второй с ошибкой
Код
a a1 a2 a3
b b1 b2 b3

a2 a2.1
b2 b2.1

a2.1 c
b2.1 c

c c1
c c2


Код
a a1 a2 a3
b b1 b2 b3

a2 a2.1
b2 b2.1

a2.1 c
b2.1 c

c c1 c2


ошибка
Код
input contains an odd number of tokens


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


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 10 2017, в 09:00
Сообщение #19


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(sunjob @ 10th July 2017 - в 04:34) *
ВОПРОС ОСТАЕТСЯ ОТКРЫТЫМ - какие наработки применяются вообще, в пром-ти, где либо еще?!

Один пример я выше приводил — botch. Другой пример ещё раньше привёл yars — sqg. Если хотите что-то, более приближенное к Вашим условиям, давайте конкретику, потому что это всё штуки сугубо специализированные. Ну или копайтесь в их коде и переделывайте под свою задачу либо пишите с нуля по образу и подобию.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 10 2017, в 09:07
Сообщение #20


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(sunjob @ 10th July 2017 - в 04:34) *
небольшие тесты - вроде как отрабатывают, ГУТ, можно сказать превосходно
НО, как понятно и слону - только зависимости, с версиями пока не вижу решения (надеюсь кому надо, тот понял, о чем речь :о)

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


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Jul 10 2017, в 11:53
Сообщение #21


Бывалый
Иконка группы

Сообщений: 378

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

Что не так - теперь понятно: кроме условий упорядочивания вводятся дополнительные условия совместимости. Непонятно как поступать в случае этих дополнительных конфликтов. Если считать это фатальной ошибкой, то на саму сортировку это никак не влияет, надо только доп. проверки провести, а если пытаться что-то делать, то это будет уже не сортировка, а набор действий: собрать А, собрать В, разобрать А, собрать С,..
В любом случае это уже явно не администрирование, не практический вопрос и даже, вероятно не UNIX. С этим вопросам надо к математикам обращаться.
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 10 2017, в 12:03
Сообщение #22


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
... уже... обратился... к любимому профессору, проболтали около часу :о) да все больше о жизни, а после вспомнили анекдот про пчел ("все в мире фигня, кроме пчел...") на том и порешили ... :о)

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

хотел "прикрутить" доксиген, но посчитал, что слишком сложным будет процесс описания, забил... :о)

> явно не администрирование, не практический вопрос
ну дак самая подходящая тема, как мне показалось, это как раз "сюда" ... ну может и промахнулся малость "эпохой, местом и вселенной"

> Непонятно как поступать в случае этих дополнительных конфликтов
немного не то, подразумевается, что есть "возможные версии" у каждого пакет (сущности), в самом простом случае - это единственная версия... ну дак вот, смысл "этих" вариаций в том, что если "вдруг" поменялась версия "какого-нибудь" пакета, то автоматом будут меняться и соотв. версии зависимых от него пакетов (или как то предлагать список возможных версий, по идее конфликты - ДА, возможны, в случае "не стыковки" рекоменудемых версий, и ДА, хотелось бы это как то "контролировать" или хотя бы "видеть" что что-то не так, в текущем положении настроек/версий)... потому как если "сущностей" становиться слишком много, то в ручном режиме становиться сложновато весь зоопарк контролировать и вероятность ошибок увеличивается
ну вот... все имхо...

спасибо


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 15:43
Сообщение #23


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
to Bizdelnick

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

адд
вижу, взаимные зависимости - приводят к ошибке, жаль (как с этим бороться, или как то "сожительствовать"? т.к. подобные особенности имеют место быть даже иногда необходимыми...)
Код
make: Circular c1 <- c dependency dropped.


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 15:54
Сообщение #24


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(sunjob @ 11th July 2017 - в 15:43) *
какие есть особенности при использовании "маке"? (ну типа, имена пакетов должны быть одним словом, либо, видимо, в ковычках итд)

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

Цитата(sunjob @ 11th July 2017 - в 15:43) *
есть ли возможность заточить на "разруливание версий"?

Я по-прежнему не понимаю, что там требуется разруливать.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
NickLion
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 16:31
Сообщение #25


аватар-невидимка
Иконка группы

Сообщений: 3045

Вставить имя   :   Цитата

ОС: openSUSE Tumbleweed x86_64
Город: Львів

Группа: Участники

Цитата(sunjob @ Jul 10 2017, в 03:34) *
второй с ошибкой
Код
a a1 a2 a3
b b1 b2 b3

a2 a2.1
b2 b2.1

a2.1 c
b2.1 c

c c1 c2

То, что вы написали, tsort видит так:
Код
a a1
a2 a3
b b1
b2 b3
a2 a2.1
b2 b2.1
a2.1 c
b2.1 c
c c1
c2

И говорит, что c2 не парный, если вы хотите записать зависимость a a1 a2 a3 как последовательную, то надо писать
Код
a a1
a1 a2
a2 a3
b b1
b1 b2
b2 b3
a2 a2.1
b2 b2.1
a2.1 c
b2.1 c
c c1
c1 c2

Тогда нормально отработает tsort.

При наличии цикла ответ будет выдан, но с ошибкой в stderr:
tsort
a b
b c
c d
d e
e f
d a

tsort: -: input contains a loop:
tsort: a
tsort: b
tsort: c
tsort: d
a
b
c
d
e
f
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 16:37
Сообщение #26


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
> NickLion
на этом варианте я пока крест поставил ... каменный :о) показался не совсем удобным

> Bizdelnick
доберусь до калавитуры, набросаю
по поводу "алиасов" - не чего не подскажете? оч. нужная получается "фишка"



--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 17:20
Сообщение #27


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(sunjob @ 11th July 2017 - в 15:43) *
можно ли как ни будь сообразить алиасы для имен пакетов (записи зависимостей делать "простым" названием, а конечный "сортированный результат" выдавать "алиасами", т.е. более удобными именами, описателями, узелками на память, проч. доп.информацией

Если правильно понял вопрос, то можно сделать, например, так:
Код
#!/usr/bin/make -f

.PHONY: all
all: pkg1 pkg2 pkg3

pkg1_DESC = пакет нумер раз
pkg2_DESC = пакет нумер два
pkg3_DESC = пакет нумер три

pkg3: pkg1 pkg2

%:
     @echo $($@_DESC)


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 17:32
Сообщение #28


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
> Bizdelnick
да, смысль поймали верно :о)
но, еще один момент, если, допустим, один пакет без "алиаса/описания" (ну типа, и так все с ним ясно) - то он не будет выведен (что вполне логично)
можно ли как ни будь сделать так, что бы при отсутствии "алиаса" - выводилось "имя пакекета" (понимаю что "это кабсдец какой то"... если это, возможно) :о)



--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 17:41
Сообщение #29


grammatikführer
Иконка группы

Сообщений: 12577

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Некрасиво, но должно работать:
Код
%:
    @echo $(if $($@_DESC),$($@_DESC),$@)


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
sunjob
bookmark
gyfbbdvkffmrljmmmwd
Jul 11 2017, в 17:46
Сообщение #30


Продвинутый участник
Иконка группы

Сообщений: 110

Вставить имя   :   Цитата

Группа: Участники

Автор темы
спасибо!

...

попробую обьяснить "задачку с версиями", на примере тех же пакетов

каким-то образом (я вот не знаю каким, но каким-то "способом" надо это сделать ) мы в начале вместе с "зависимостями" описываем еще и "версии" (не у всех пакетов, а у некоторых, особенных)

допустим
пакет_А - зависит от пакета_Б
пакет_Б - зависит от пакета_В

пакеты могут быть версий (вот эти версии и зависимости мы "описываем"):
пакет_А : 1,2,3
пакет_Б : 1,2,3
пакет_В : 1,2,3

ну и допустим (видимо это тоже как-то надо "узаконить") имеются по умолчанию версии для каждого пакета, пусть это будет "1"

теперь по зависимостям версий, очевидно же что "есть такое понятие" как зависимость версий, пусть она у нас будет очевидной: 1е версии - стыкуются с 1ми версиями зависимых пакетов итд

т.е. если допустим, МЫ в данной сборке принудительно вибираем 1ю версию пакета А: пакет_А.1,
то соотв. автоматом/пересчетом в выходном списке устанавливаются зависимые пакеты в соотв. 1е версии

далее, что-то изменилось, "утекла" версия пакетА.1 в "какашный мир", нашли дыры, пропатчили, устанавливаем принудительно версию пакет_А.2 - что приводит к соотв. реакции системы :о)

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

ну вот, надеюсь более понятно :о)

### UPDATE ###

ну и надо иметь в виду, что могут быть "иные" зависимости версий, типа пакет_А - всеяден до версий пакета_Б, или только определенные версии... (ну т.е. как в жизни)


--------------------
если я ошибаюсь, то поправьте а не критикуйте :о)
Go to the top of the page
 
+Quote Post

 Reply to this topic Start new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 27th July 2017 - в 21:40




Rating@Mail.ru