slackware.ru
http://www.slackware.ru/forum/

Sbopkg - менеджер пакетов Slackware
http://www.slackware.ru/forum/viewtopic.php?f=9&t=348
Страница 2 из 2

Автор:  nk [ 14 фев 2017 02:50 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

bormant , я export Переменная=Значения прописал, в принципе вроде работает...
знаете просто у меня неясность осталась до сих пор (еще когда команду для обновления составляли):

а зачем export?

ведь для OUTPUT= не надо , а вот для export ARCH="`uname -m`" и export PKGTYPE="txz" ,
к примеру, надо в /root/.sbopkg.conf

Автор:  bormant [ 14 фев 2017 08:46 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

У процесса есть локальное окружение, оно не наследуется дочерними процессами.
И $OUTPUT без export не наследуется, он в сценариях сам по себе вычисляется правильно, такое уж у него умолчание -- /tmp.

Автор:  nk [ 11 янв 2018 09:18 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

А не знаете ли, есть ли порядок какой-то обновления, точнее на уровне sbopkg.conf можно ли его как-то задать?
поясню, вот у меня сейчас filezilla хотела бы обновиться в соответствии с репозиторием SBo:
Код:
+++++++++++++++++++++++++++++++++++++++++++
PRE-CHECK LOG
Using the SBo repository for Slackware 14.2
Queue Process:  Download, build, and install

filezilla:
  Checking GPG for filezilla.tar.gz ... OK
  Processing filezilla 3.30.0-1
  Using original .info file
  Using original SlackBuild file
  No build options selected.

libfilezilla:
  Checking GPG for libfilezilla.tar.gz ... OK
  Processing libfilezilla 0.11.2-1
  Using original .info file
  Using original SlackBuild file
  No build options selected.

+++++++++++++++++++++++++++++++++++++++++++

Pre-check complete.

Do you wish to proceed based on the search results above? Packages not
found will be skipped during the process.

(P)roceed or (Q)uit?:
Я знаю, что если сейчас нажму P - пойдет обновление filezilla , а потом только libfilezilla, а надо наоборот (libfilezilla -> filezilla ), пусть даже руками придется прописывать, но просто хотелось бы один раз прописать и что бы дальше оно само именно в таком порядке собиралось и обновлялось

Автор:  gramozeka [ 11 янв 2018 10:19 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

Цитата:
но просто хотелось бы один раз прописать и что бы дальше оно само именно в таком порядке собиралось и обновлялось

в псевдографике есть пункт Queue(в консоли запустить sbopkg без аргументов) , там можно составить правильную последовательность сохранить её, а потом просто загружать сохранённый файл по необходимости.
Изображение
Изображение
сперва добавить все файлы в Queue, отсортировать их как надо, потом сохранить, а дальше загружать и запускать "process". Там всё просто.

Автор:  bormant [ 11 янв 2018 10:42 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

Мне проще в подобных случаях отменить, затем сказать
# sbopkg -i libfilezilla -i filezilla

В диалоговом режиме после проверки обновлений sbopkg предлагает из кандидатов сделать очередь, потом дает перед ее обработкой подвигать элементы вверх/вниз.

PS. Вот не помню, -k -- это не собирать установленное той же версии, или любой версии. Если любой, можно попросить фичу для совпавшей версии.
Тогда можно было бы обновлять по очередям, а не пакетам:
sbopkg -k -i filezilla.sqf

Автор:  nk [ 12 янв 2018 00:32 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

Цитата:
# sbopkg -i libfilezilla -i filezilla
минус этого способа, то что если уже установлен пакет, он все равно захочет пересобрать и поставить пакет той же версии

Цитата:
-k
с ключем k тоже нет, я им пользуюсь при всяких новых установках: sbopkg -Bki Пакет ,
он по идеи просматривает стоит ли по_имени в системе пакет или нет, что бы собирать ему его или нет

Цитата:
обновлять по очередям
мне вот хочется увидеть что будет обновляться, нажать (P)roceed и уйти своими делами заниматься

Цитата:
в псевдографике есть пункт Queue
да, увидел есть такое Sort, но вот только если работает это, как для простых команд организовать бы?.. Наверно через cat|grep буду делать, через .conf-файл даже и не уверен можно ли


~upd

В общем сделал для libfilezilla\nfilezilla так, в .bashrc (.sbopkg.conf: QUEUEDIR="/tmp/SBo/_queues")
Код:
sbu (){
 # Sync the remote repository with the local mirror
 echo -e "\n# sbopkg -r\n"
 sbopkg -r
 
 # Check for updates to installed packages
 echo -e "\n\n\n# sbopkg -c | tee /tmp/SBo/_queues/sbopkg-update.log\n"
 sbopkg -c | tee /tmp/SBo/_queues/sbopkg-update.log
 
 sbo_ibp (){
  # install built packages
  echo -e "\n\n\n# sbopkg -i update.sqf\n"
  ( \
  . /etc/sbopkg/sbopkg.conf ; . /root/.sbopkg.conf ; \
  grep -B1 'POTENTIAL UPDATE' /tmp/SBo/_queues/sbopkg-update.log \
  | egrep -o '^[^: ]+' | grep -v '^--' \
  | egrep -vxf <(grep -v '^$\|^#' /etc/sbopkg/blacklist) \
  > $QUEUEDIR/update.sqf \
  )
 
  if [[ ! -z "`cat /tmp/SBo/_queues/update.sqf | grep filezilla`" ]]; then
   sed -i '/filezilla/d' /tmp/SBo/_queues/update.sqf
   echo -e "libfilezilla\nfilezilla" >> /tmp/SBo/_queues/update.sqf
  fi
 
  sbopkg -i update.sqf
 }
 sbo_ibp
}

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

Автор:  gramozeka [ 12 янв 2018 07:36 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

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

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

Одно время тоже долго ломал голову как всё это провернуть, но как всегда всё уже придумали за нас - файл queue(сохранённая последовательность) находится в /var/lib/sbopkg/queues/ с расширением sqf и имеет самую примитивную суть - только название пакета без версии и прочих атрибутов в том виде в каком мы его устанавливаем с помощью sbopkg, вот пример :
Код:
cat /var/lib/sbopkg/queues/ffmpeg.sqf
ibdc1394
speex
libebur128
libfdk-aac
hdf5
apache-ant
zope.interface
constantly
incremental
pytz
babel
six
MarkupSafe
Jinja2
typing
Pygments
alabaster
imagesize
PyStemmer
snowballstemmer
sphinxcontrib-websupport
python-certifi
python-chardet
python-urllib3
idna
python-requests
Sphinx six
setuptools-scm
attrs
mistune
python-m2r
Automat
hyperlink
python-twisted
VTK
numpy
numpy3
opencv
gavl
frei0r
libgme
libiec61883
libavc1394
libilbc
ladspa_sdk
lame
libmodplug
netcdf
OpenAL
opencore-amr
opus
rtmpdump
vamp-plugin-sdk
rubberband
schroedinger
snappy
speex
leptonica
tesseract
twolame
vid.stab
x264
x265
xvidcore
zeromq

но конечно для сложных вариантов (тот же ffmpeg с аргументами) всё равно придется либо вручную собирать, либо писать скрипт который будет эти аргументы указывать. У меня вот такой костыль припрятан:
Код:
ASS=yes \
BS2B=yes \
CELT=yes \
CHROMAPRINT=yes \
DC1394=yes \
EBUR128=yes \
FDK_AAC=yes \
FREI0R=yes \
GME=yes \
IEC61883=yes \
ILBC=yes \
LADSPA=yes \
LAME=yes \
MODPLUG=yes \
NETCDF=yes \
OPENAL=yes \
OPENCORE=yes \
OPENCV=yes \
OPENSSL=yes \
OPUS=yes \
RTMP=yes \
RUBBERBAND=yes \
SCHROEDINGER=yes \
SNAPPY=yes \
SPEEX=yes \
TESSERACT=yes \
TWOLAME=yes \
VIDSTAB=yes \
WEBP=yes \
X264=yes \
X265=yes \
XVID=yes \
ZMQ=yes \
sbopkg -Bki ffmpeg

но это редкие исключения, их не так и много, основная масса собирается по дефолту и для неё за глаза хватает инструмента queue.

Автор:  bormant [ 12 янв 2018 08:01 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

Надо для sbopkg попросить/дописать ключик, аналогичный -k, но с учетом версии. Тогда подход с очередью из установленных пакетов будет работать автоматом.
Причем версию нужно учитывать не просто на «не равно», а на «свежее/старше», иначе у меня так больше половины может сдаунгрейдить ;) Но тут нет проблемы, такое сравнение версий в коде уже есть, поверка версий умеет выдавать «установленный свежее, чем в репо».

Про пересборку по цепочке зависящего от библиотек — это касается
1) тех пакетов, в бинарники которых эти библиотеки слинкованы статически, тут ключик не сработает
2) при динамической линковке только смена ABI/API/soname динамической библиотеки потребует пересборки использующих ее. Тут ключик сработает, если у использующего софта тоже сменится версия, но при смене API такое обычно бывает, но опять-таки не всегда (не было использования deprecated, нет использования измененного и нового — пересборки достаточно).

Про синтаксис очереди:
1) допустимо включение очереди другого пакета:
@ffmpeg.sqf
2) допустимо указание флагов сборки прямо внутри очереди
...:var1=on:var2=off
Если не напутал с синтаксисом, то как-то так оно и выглядит. В любом случае, заглянуть в доку по очередям не будет лишним.

Автор:  nk [ 13 янв 2018 08:56 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

gramozeka,
Цитата:
графическая морда не устраивает
мне как-то проще ключиками все проделать или теме же функциями или аллиасами в .bashrc

Цитата:
для сложных вариантов (тот же ffmpeg с аргументами)
с подобным я через /root/.sbopkg.conf отделался, там просто все это подобное указал
Код:
#export ARCH="`uname -m`"
export PKGTYPE="txz"

# https://slackbuilds.org/repository/14.2/libraries/wxGTK3/
export STL=no
export STATIC=no

# https://slackbuilds.org/repository/14.2/network/filezilla/
export PUGIXML=yes

# https://slackbuilds.org/repository/14.2/audio/audacity/
export MANUAL=yes


Цитата:
файл queue(сохранённая последовательность) находится в /var/lib/sbopkg/queues/ с расширением sqf
сейчас начал копать, да есть такое https://www.sbopkg.org/queues.php

Но пока что, все равно что-то не получается
Код:
# cat /var/lib/sbopkg/queues/filezilla.sqf
libfilezilla
wxGTK3
filezilla

# sqg -p filezilla.sqf
ERROR: /var/lib/sbopkg/queues or /var/lib/sbopkg/SBo/14.2 do not exist or are not writable.
Check the configurable variables at the top of the script.

# sqg -a
ERROR: /var/lib/sbopkg/queues or /var/lib/sbopkg/SBo/14.2 do not exist or are not writable.
Check the configurable variables at the top of the script.


bormant
я по ходу нашел, есть такой ключик -b
Код:
sbopkg 0.38.1
Usage: sbopkg [OPTIONS] <packagename(s)>
Options are:
  -b pkg/queue(s) Build the specified package(s). If one or more queuefiles
                  are specified, build the packages they refer to.
  -B              Bulk process the queue without confirmation.
  -c              Check for updates to installed packages.
  -D localdir     Location of local copy of the repositories.
  -d pkg/queue(s) Like '-b', but only download sources.
  -e error_action Specify what sbopkg is supposed to do on build errors.
                  Valid options are: ask (default), continue, stop.
  -f file         Override default configuration file with specified file.
  -g package(s)   General search for packages matching string.
  -h              Display this help message.
  -i pkg/queue(s) Like '-b', but also install built packages.
  -k              Skip installed packages when building.
  -l              Display the repo's ChangeLog.txt and then quit.
  -o              Display the obsolete source files & prompt for deletion.
  -P              List uninstalled cached package files & prompt for deletion.
  -p              List installed packages from active repo.
  -q              Quiet some of the command-line output.
  -R              When combined with -b or -i, preview the READMEs of the
                  packages to be built/installed before starting the build
                  process. When combined with -p, show the READMEs of all
                  installed packages from the active repo.
  -r              Sync the remote repository with the local mirror and then
                  quit.
  -s package(s)   Specific search by specific package and, if found,
                  display package information.
  -u              Check for an update to sbopkg.
  -V repo/branch  Set the repository/branch. The repo is optional and, if
                  not given, sbopkg will try to make the best match,
                  starting with the default repo. For a list of valid repos,
                  issue '-V ?'
  -v              Print sbopkg's version on stdout.

Note: multiple arguments to -b, -g, -i, and -s must be quoted ("pkg1 pkg2") or
can be specified multiple times (-i foo -i bar). If using the latter syntax,
build options may also be passed on the command line on a per app basis using
the -b or -i flags in colon-separated groups (where whitespace must also be
quoted). For example, '-i app:opt1="arg1 arg2":opt2=arg1 app2'
но тут одна проблема, он все равно по версиям и билдам не пробегает

Код:
# sbopkg -b filezilla.sqf
...
+++++++++++++++++++++++++++++++++++++++++++
PRE-CHECK LOG
Using the SBo repository for Slackware 14.2
Queue Process:  Download and build

libfilezilla:
  Checking GPG for libfilezilla.tar.gz ... OK
  Processing libfilezilla 0.11.2-1
  Using original .info file
  Using original SlackBuild file
  No build options selected.

wxGTK3:
  Checking GPG for wxGTK3.tar.gz ... OK
  Processing wxGTK3 3.0.3.1-2
  Using original .info file
  Using original SlackBuild file
  No build options selected.

filezilla:
  Checking GPG for filezilla.tar.gz ... OK
  Processing filezilla 3.30.0-1
  Using original .info file
  Using original SlackBuild file
  No build options selected.

+++++++++++++++++++++++++++++++++++++++++++
Код:
> ls /var/log/packages/ | grep filezilla
filezilla-3.29.0-x86_64-1_SBo
libfilezilla-0.11.1-x86_64-1_SBo

> ls /var/log/packages/ | grep wxGTK3
wxGTK3-3.0.3.1-x86_64-2_SBo

Автор:  bormant [ 13 янв 2018 10:46 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

nk,
-b -- это только собрать, но не устанавливать.
-i -- это все как в -b плюс установить.

Соответственно, собранное лежит в /tmp и ждет своего часа.


Зачем грепать вывод ls несколько раз?
Код:
$ ls /var/log/packages/ | grep 'filezilla\|wxGTK3'

Зачем вообще его грепать?
Код:
$ ( cd /var/log/packages; ls filezilla-* libfilezilla-* wxGTK3-* )


Код:
ERROR: /var/lib/sbopkg/queues or /var/lib/sbopkg/SBo/14.2 do not exist or are not writable.
Check the configurable variables at the top of the script.
Говорит проверить пару переменных в начале скрипта sqg ( vim $(which sqg) ) и наличие и доступность по записи указанных там каталогов.

Автор:  nk [ 15 янв 2018 01:02 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

Да на счет grep это все само-собой, еще про ключ -e знаем в нем

А про порядок сборки... я по ходу не с того начал вопрос, сейчас по порядку распишу все

1. sbopkg -r # Обновляем базу
2. sbopkg -c # Проверяем среди установленных пакетов, есть ли какие на обновление

2.5 А дальше я же ведь по своей схеме ставлю, как и выше, *grep делаю по _своему_ sbopkg-update.log и ставлю
# sbopkg -c | tee /tmp/SBo/_queues/sbopkg-update.log
# sbopkg -i update.sqf

В общем по ходу как в сообщении выше без cat|grep для моего способа,
(в духе deb-style: apt-get update && apt-get upgerade) без костылей не обойтись.

Я наверно просто сделаю проверку своего update.sqf и выстраивание в нужном мне порядке найденных обновлений


~upd

В общем, вот так сделал в /root/.bashrc и теперь только делаю придуманную команду # sbu
(проверил на filezilla, все обновилось, как задумал: libfilezilla -> filezilla)
Код:
sbu (){
 # Sync the remote repository with the local mirror
 echo -e "\n# sbopkg -r\n"
 sbopkg -r
 
 # Check for updates to installed packages
 echo -e "\n\n\n# sbopkg -c | tee /tmp/SBo/_queues/sbopkg-update.log\n"
 sbopkg -c | tee /tmp/SBo/_queues/sbopkg-update.log
 

 sbo_ibp (){

  echo -e "\n\n\n# sbopkg -i update.sqf\n"
  ( . /etc/sbopkg/sbopkg.conf ; . /root/.sbopkg.conf ; \
  grep -B1 'POTENTIAL UPDATE' /tmp/SBo/_queues/sbopkg-update.log \
  | egrep -o '^[^: ]+' | grep -v '^--' \
  | egrep -vxf <(grep -v '^$\|^#' /etc/sbopkg/blacklist) \
  > $QUEUEDIR/update.sqf \
  )
 
  sbo_q (){
   for pkg in $PKG ; do
   if [[ ! -z "`cat /tmp/SBo/_queues/update.sqf | grep ${pkg}$`" ]]; then
    sed -i "/^${pkg}$/d" /tmp/SBo/_queues/update.sqf
    echo $pkg >> /tmp/SBo/_queues/update.sqf
   fi
   done
  }
 
  # wxGTK3
  PKG="wxGTK3" sbo_q
  PKG="pugixml libfilezilla filezilla" sbo_q
 
  # VBox
  PKG="acpica virtualbox-kernel virtualbox virtualbox-extension-pack" sbo_q

  # Final
  sbopkg -i update.sqf

 }
 sbo_ibp
 

 # Checking http://www.sbopkg.org for an update...
 echo -e "\n\n\n# sbopkg -u\n"
 sbopkg -u
}

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

Автор:  bormant [ 18 янв 2018 17:37 ]
Заголовок сообщения:  Re: Sbopkg - менеджер пакетов Slackware

Любителям использовать Custom-изацию слакбилда из dialog-ового интерфейса sbopkg рекомендую (раз уж изменение придет в следующий выпуск sbopkg):
https://github.com/sbopkg/sbopkg/commit ... 22279af712

Иначе внутри собранного пакета всё-равно окажется оригинальный .SlackBuild, а не исправленный, что несколько неудобно.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/