LINUX.ORG.RU

Локальный репозиторий собранных slackware-пакетов

 ,


2

4

Подкиньте, пожалуйста, команду (или скрипт), которой я могу проиндексировать лок.реп., собранных у меня пакетов (желательно с зависмостями, если для slackpkg) и потом в slaptget и slackpkg+ прописать его

Смотрел вот здесь, но пока что не разобрался (с ключами что ли, подобрать не могу и загвоздка)
http://alien.slackbook.org/blog/introducing-slackpkg-an-extension-to-slackpkg...
https://github.com/gapan/repo-scripts/tree/master/salix

★★★★★

Последнее исправление: NK (всего исправлений: 2)

Встречный вопрос: собираетесь публиковать свой репозиторий? Если нет, то без этих плясок вполне можно обойтись, slackpkg+ позволяет указывать репозиторием обычный каталог с пакетами.

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

собираетесь публиковать свой репозиторий?

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

В данном вопросе, мне просто еще хочется узнать, как Патрик и как команда саликса индексирует пакеты, от саликса разруливание зависмостей за счет slapt-get еще интересно

NK ★★★★★
() автор топика
Последнее исправление: NK (всего исправлений: 2)
Ответ на: комментарий от FairyOstroGrad

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

NK ★★★★★
() автор топика
Последнее исправление: NK (всего исправлений: 1)

вот с этим скриптом более менее ситуация приятная получилась https://github.com/gapan/repo-scripts/blob/master/salix/metagen-simple.sh -> PACKAGES.TXT на слаке получил

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

Но все ж, пока затруднения с зависмостями, не знаете .dep-файлы , как в саликсе - они сами что ли их пишут и PACKAGE REQUIRED: как сделать что бы они заполнены были?

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

возможно где-то ошибусь, не помню точно. помнится что есть скрипты, которые формируют зависимости для slapt-get из install/slack-required, формируя всякие PACKAGES.TXT с зависимостями. Команда salix сделала для каждого пакета .dep файл, и скрипт которые забирает зависимости оттуда. В dep пакет они прописывают зависимости вручную, наверное. Ну или ldd, хз) Также как и в install/slack-required (еще один вариант). Для slapt-get ищи на форуме скрипт. Там же есть и скрипт для slapt-src. slackpkg не разруливает зависимости, но можно делать коллекции, вроде ap/n/xap/etc, и устанавливать скопом программу с зависимостями.

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

PACKAGE REQUIRED должен заполнить тот, кто собирает метаинформацию о пакете. .dep формируется или руками или скриптом, у Salix-а этой фазы в слакбилде не видно, а на репах slacky.eu можно глянуть в последние строки тамошних слакбилдов, где зовется requiredbuilder для формирования slack-required.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от NK

Для Salix-овых .dep нужно править gen_meta, при этом помнить, что .dep там в пакет не кладут, позиция по этому вопросу озвучивалась: http://forum.salixos.org/viewtopic.php?f=22&t=1002&p=6822

Ах да, если есть интерес и в slapt-src, не забыть кроме PACKAGES.TXT и про SLACKBUILDS.TXT.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

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

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

В Salix — руками в .dep, в slacky.eu автоматом через requiredbuilder. А причина отказа в Salix от автоматической генерации зависимостей вполне понятна, слишком развесистые они получатся для «крупных» пакетов Slackware (один проект — один пакет, как разработчик софта разделил, без дополнительной нарезки на библиотеки, безX-овую часть и т.п.) захотите поставить nmap в консольную систему, получите питон с X-ми в довесок — а без них zenmap, входящий в пакет, не работает ведь. Продолжая совершенствовать деление пакетов получите Debian ;-)

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

Понятно =) Спасибо. Наверно пока что на этом коде остановлюсь http://software.jaos.org/git/slapt-get/plain/FAQ.html#slgFAQ17 и без зависимостей

Если только еще, не знаешь, а Патрик, каким скриптом генерирует, что http://taper.alienbase.nl/mirrors/slackware/slackware-current/slackware/xfce/ что помимо .txt и .asc получает?

NK ★★★★★
() автор топика
Последнее исправление: NK (всего исправлений: 1)
Ответ на: комментарий от NK

В Salix есть depcheck, там же в репе у gapan-а на github-е https://github.com/gapan/depcheck

Патрик инопланетянским (от AlienBOB-а), .asc — это подписи от gpg, если ключ разработчика в репе задать, будут подписи генериться; принудительная их перегенерация по "-a".

PS. Про USEGPG=«yes» и, возможно, gpgagent не забыть, там по сценарию все видно однозначно.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 3)
13 февраля 2016 г.
Ответ на: комментарий от bormant

slackpkg+

И все таки остановился на slackpkg+ ...и кое-что получилось, http://software.jaos.org/git/slapt-get/plain/FAQ.html#slgFAQ17
оказалось достаточно сделать

$ find . -type f -regextype posix-egrep -regex '.*\.[tgblzikx]+$' -exec md5sum {} \; >> CHECKSUMS.md5
$ cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz

и # slackpkg update -checkgpg=off . MD5 на всякий случай добавил для подстраховки, репозиторий и пакеты видятся.
Но вот на # slackpkg info ПАКЕТ - информация по пакету не выводится, в то время как на # slackpkg search ПАКЕТ все находится.

Не подскажете, как/что сделать что бы выводилась информация на info?

Я про вот это:

# slackpkg info man                  

PACKAGE NAME:  man-1.6g-x86_64-3.txz
PACKAGE LOCATION:  ./slackware64/ap
PACKAGE SIZE (compressed):  216 K
PACKAGE SIZE (uncompressed):  530 K
PACKAGE DESCRIPTION:
man: man (format and display the on-line manual pages)
man:
man: The man package is a collection of tools used for searching and
man: reading the online system documentation.  In fact, on most UNIX-like
man: operating systems it is the primary means of finding out how programs
man: on the system work.  For example, 'man man' will display the
man: documentation for man itself.
man:
man: Man requires the groff text processing package.
man:

NK ★★★★★
() автор топика
Последнее исправление: NK (всего исправлений: 3)
Ответ на: slackpkg+ от NK

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

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

Ну в обще получилось создать PACKAGES.TXT , но на info все равно информации никакой не было и по slackpkg update никакой информации кроме MD5 не бежало, пока не подсунул MANIFEST, причем даже и не от этого репа.

У меня вопрос, случаем не знаете, MANIFEST сильно необходимо slackpkg, то что slackpkg file-search он нужен сразу понял, но вот предполагаю, что slackpkg clean-system вот как раз там и лазит... и если не так уж сильно и надо, и clean-system туда не заглядывает, то вот смотрю и не нахожу , а можно ли это сканирование файла MANIFEST отключить?

NK ★★★★★
() автор топика
Последнее исправление: NK (всего исправлений: 1)
Ответ на: комментарий от NK

Хм, для slackpkg используется только PACKAGES.TXT, это можно видеть в /usr/sbin/slackpkg в районе строк 465-481 (2.82.0-noarch-12):

...
awk -F: ...
...
}" $WORKDIR/PACKAGES.TXT 2>/dev/null
...

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

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

кстати, именно MANIFEST.bz2 ему надо, с MANIFEST он не срабатывает на # printf 'y' | slackpkg update -checkgpg=off

NK ★★★★★
() автор топика
19 марта 2016 г.
Ответ на: комментарий от bormant

я пока не разбирался до конца, но как расписал сделал реп с пустым MANIFEST , попробовал обновиться и что-то как-то версии скачат, т.е. бывает то что старая хочет обновить новую, скрипт таков http://pastebin.com/ftA6J7f8

не знаете что может быть не так? Предполагаю, что дело в порядке в котором пакеты прописываются в CHECKSUMS.md5 или PACKAGES.TXT, или же еще какой-то файл нужен

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

slackpkg не рассчитан на ситуацию, когда в хранилище или в системе может быть несколько версий одного пакета (то есть, несколько одноименных пакетов по generic имени (без версии, архитектуры, сборки и метки). Для него нет старой и новой версий, есть только «другая» или «такая же».

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

ну slackpkg да, там и один реп само-собой, а если slackpkg+ или Вы про него и имели в виду? То просто тогда как-то странно получается со всеми остальными репами, там же как-то находится обновление...

~upd а все, дошло) того-то я и видел репы в основном по одному пакету, но порой думал, а где ж старый, ладно спасибо, будем думать.

Тогда не знаете, какой-нибудь slapt-get или еще что-то рассчитан на обновление и учет по версии?

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

еще что-то рассчитан на обновление и учет по версии?

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

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

При необходимости держать разные версии софта в одной установке их обычно разводят по файлам (чтоб не перетирали друг-друга) и имени пакета, см., например, gtk, gtk2, gtk3 или из недавнего gstreamer0, gst-plugins-base0, gst-plugins-good0 vs. gstreamer, gst-plugins-base, gst-plugins-good.

bormant ★★★★★
()
Ответ на: slackpkg+ от NK

как/что сделать что бы выводилась информация на info?

Посмотрел на slackpkg+ в указанной части. Он никак не перехватывает обработку info в «slackpkg info», поэтому чуда не будет, описания только из основного PACKAGES.TXT.

Для установленных пакетов можно смотреть описания по
less /var/log/packages/package-name-*

Для изменения ситуации нужно:
1) патчить slackpkg, чтобы действие по info обрабатывалось отдельной функцией (это даст возможность перекрыть ее в slackpkg+);
2) патчить slackpkg+ на предмет добавления функции для info, которая будет искать не только в основном PACKAGES.TXT, но и в файлах из сторонних хранилищ.

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

понятненько, спасибо

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

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

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