Установка программ в Slackware

SLAX, Deep Style, ZenWalk

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

QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Ок, спасибо : ) Просто находясь на работе ограничена в определенных возможностях, Слака то дома стоит.

Еще вопрос - оправданно ли будет всегда для задачи выявления зависимостей использовать sbbdep и забыть про ldd + вытаскивание нужных строк из MANIFEST.bz2? Можно ли первое считать оболочкой второго или все-таки они для данной задачи могут в определенных случаях выдавать разные результаты?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

Чтобы не лазить руками в MANIFEST предназначен "slackpkg file-search".
Если правильно путаю, то sbbdep -- это такой массовый ldd по одному бинарному файлу или всем бинарным файлам пакета (на самом деле по умолчанию используется readelf как более безопасный) и поиск необходимого в /var/log/packages (на самом деле в закешированной оттуда информации в локальной базе данных SQLite для скорости). То есть это оптимизированная замена для

Код: Выделить всё

grep -R filename /var/log/packages
для поиска как в прямом направлении, так и в обратном (ключ --whoneeds) среди установленного. Но не по манифестам.
Опять же, инструмент не абсолютный, поскольку помимо бинарных зависимостей есть много иных, о которых этот инструмент не в курсе.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

При отсутствующих зависимостях вывод sbbdep содержит информацию о них примерно в таком виде:

Код: Выделить всё

# removepkg gegl
# sbbdep /var/adm/packages/gimp-*
...
sonames not found via standard paths:
 for /usr/bin/gimp-2.8: libgegl-0.2.so.0
 for /usr/bin/gimp-console-2.8: libgegl-0.2.so.0
this does not necessarily mean there is a problem
the application can either have its own environment or the soname is resolved via a link name
you can re-check the affected files with --ldd
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

А как насчет использования слакбилда из sbo репозитория для более старой версии Slackware? Предполагаю - не всегда это срабатывает гладко. И если так, то какой общий порядок действий?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

QWERTYASDF писал(а):
01.07.2015 17:59
насчет использования слакбилда из sbo репозитория для более старой версии Slackware? Предполагаю - не всегда это срабатывает гладко.
Тут нужен конкретный пример.

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

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

Бывают, несомненно, и более оптимистичные варианты, например, когда пакет переезжает в основное дерево Slackware, на SBo ему в таком варианте делать больше нечего.
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

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

Пыталась поставить xmonad через sbopkg. В первый раз в конце вывода было сообщение о необходимости пакета с Perl. Поставила отдельно этот пакет через slackpkg. Потом попыталась установить sbbdep, потребовался cmake, который также был установлен. После этого пыталась ставить снова xmonad и sbbdep - опять сыпались ошибки. Мне показалось, что это связано с тем, что не ставила d-категорию. Поставила. Но и после этого хорошего результата не было. Помогите, пожалуйста, не очень понимаю куда смотреть : (

Конец лога последней установки xmonad:

Spoiler

Код: Выделить всё

checking for path to top of build tree... /tmp/sbopkg.ybwtnp/ghc-7.8.4
Build platform inferred as: i386-unknown-linux
Host platform inferred as: i386-unknown-linux
Target platform inferred as: i386-unknown-linux
GHC build  : i386-unknown-linux
GHC host   : i386-unknown-linux
GHC target : i386-unknown-linux
checking for perl... /usr/bin/perl
checking for a BSD-compatible install... /bin/ginstall -c
checking whether ln -s works... yes
checking for gsed... sed
checking for gcc... /usr/bin/gcc
checking for ld... /usr/bin/ld
checking for gcc... /usr/bin/gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/gcc accepts -g... yes
checking for /usr/bin/gcc option to accept ISO C89... none needed
checking version of gcc... 4.8.2
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/tmp/sbopkg.ybwtnp/ghc-7.8.4':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
Cleaning up...

ghc:
Would you like to continue processing the rest of the
queue or would you like to abort?  If this failed
package is a dependency of another package in the queue
then it may not make sense to continue.

(Y)es to continue, (N)o to abort, (R)etry the build?: N

+++++++++++++++++++++++++++++++++++++++++++
SUMMARY LOG
Using the SBo repository for Slackware 14.1
Queue Process:  Download, build, and install

ghc:
  MD5SUM check for ghc-7.8.4-i386-unknown-linux-deb7.tar.xz ... OK
  MD5SUM check for ghc-7.8.4-src.tar.xz ... OK
  Error occurred with build.  Please check the log.


Если это может быть сколько-нибудь важно, то череди составила так:

xmonad.sqf

Код: Выделить всё

@haskell-extensible-exceptions
haskell-syb
@haskell-X11
haskell-mtl
haskell-utf8-string
haskell-random
haskell-hinotify
haskell-stm
haskell-X11-xft
haskell-text
haskell-parsec
xmonad
xmonad-contrib
@xmobar


xmobar.sqf

Код: Выделить всё

@haskell-regex-compat
@haskell-HTTP
xmobar


haskell-HTTP.sqf

Код: Выделить всё

haskell-network
haskell-network-uri
haskell-HTTP


haskell-regex-posix.sqf

Код: Выделить всё

haskell-regex-base
haskell-regex-posix


haskell-regex-compat.sqf

Код: Выделить всё

@haskell-regex-posix
haskell-regex-compat


haskell-data-default-instances-dlist.sqf

Код: Выделить всё

haskell-dlist
haskell-data-default-instances-dlist


haskell-data-default.sqf

Код: Выделить всё

haskell-data-default-class
haskell-data-default-instances-base
haskell-data-default-instances-containers
@haskell-data-default-instances-dlist
haskell-data-default-instances-old-locale
haskell-data-default


haskell-X11.sqf

Код: Выделить всё

@haskell-data-default
haskell-X11


haskell-extensible-exceptions.sqf

Код: Выделить всё

ghc
haskell-extensible-exceptions


Все расположены в одном каталоге, установку запускала директивой:

Код: Выделить всё

# sbopkg -Rki xmonad.sqf
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка программ в Slackware

Сообщение Hephaestus »

QWERTYASDF писал(а):
13.07.2015 20:04
Помогите, пожалуйста, не очень понимаю куда смотреть : (
Смотреть надо в лог. В данном случае config.log.
У Вас configure не отрабатывает до конца, соответственно ничего не собирается.
По данной конкретной ошибке интернет говорит, что не хватает компилятора g++.

В общем случае, чтобы понять чего не хватает, гадать не нужно.
Слакбилды рассчитаны на то, что система ставилась в режиме full.
Если это не так, чего-то может не хватить.
Тогда берем соответствующий тарбол (он должен быть в /var/log/cache/sbopkg), распаковываем куда-нибудь в /tmp, заходим внутрь, и внимательно читаем файлы README и INSTALL - там должны быть инструкции по сборке и описание зависимостей вплоть до номеров версий.
Доустанавливаем нужное и пробуем руками сделать ./configure. В случае успеха, повторяем сборку через sbopkg.
Это всё справедливо при условии, что недостающие зависимости отсутствуют на slackbuilds.org.

Что касается очередей. Вы их руками составляли? Генератор не использовали? Он здорово облегчит задачу.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Спасибо, вечерком попытаю удачу.

Да, руками : ( Ну, я так прнимаю, что Генератор много лишнего накидывает (?)
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка программ в Slackware

Сообщение Hephaestus »

QWERTYASDF писал(а):
14.07.2015 10:30
Ну, я так прнимаю, что Генератор много лишнего накидывает (?)
Почему? Вы руками составляете очередь, ориентируясь на переменную REQUIRES.
Ну и генератор ориентируется на неё же. Другого-то списка нету.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Hephaestus писал(а):
14.07.2015 10:54
QWERTYASDF писал(а):
14.07.2015 10:30
Ну, я так прнимаю, что Генератор много лишнего накидывает (?)
Почему? Вы руками составляете очередь, ориентируясь на переменную REQUIRES.
Ну и генератор ориентируется на неё же. Другого-то списка нету.


М, видимо я превратно поняла написанное Вами про этот генератор в соседней теме. Ну, что он генерирует файлы все все, а не только отсутствующие - это и отпугнуло.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20719
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Установка программ в Slackware

Сообщение Bizdelnick »

Hephaestus писал(а):
14.07.2015 09:39
По данной конкретной ошибке интернет говорит, что не хватает компилятора g++.

Вообще-то ругань на препроцессор C, который cpp.
QWERTYASDF писал(а):
13.07.2015 20:04
configure: error: C preprocessor "/lib/cpp" fails sanity check

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Hephaestus писал(а):
14.07.2015 09:39
Смотреть надо в лог. В данном случае config.log.


Spoiler
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by The Glorious Glasgow Haskell Compilation System configure 7.8.4, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ ./configure

## --------- ##
## Platform. ##
## --------- ##

hostname = depo-slack-pc
uname -m = i686
uname -r = 3.10.17-smp
uname -s = Linux
uname -v = #1 SMP Wed Oct 23 17:04:08 CDT 2013

/usr/bin/uname -p = Intel® Atom™ CPU D525 @ 1.80GHz
/bin/uname -X = unknown

/bin/arch = i686
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown

PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /sbin
PATH: /usr/sbin
PATH: /bin
PATH: /usr/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2173: checking for path to top of build tree
configure:2194: result: /tmp/ghc/ghc-7.8.4
configure:2872: checking for perl
configure:2890: found /usr/bin/perl
configure:2902: result: /usr/bin/perl
configure:2961: checking for a BSD-compatible install
configure:3029: result: /bin/ginstall -c
configure:3043: checking whether ln -s works
configure:3047: result: yes
configure:3059: checking for gsed
configure:3090: result: sed
configure:3274: checking for gcc
configure:3292: found /usr/bin/gcc
configure:3304: result: /usr/bin/gcc
configure:3488: checking for ld
configure:3506: found /usr/bin/ld
configure:3518: result: /usr/bin/ld
configure:3629: checking for gcc
configure:3656: result: /usr/bin/gcc
configure:3885: checking for C compiler version
configure:3894: /usr/bin/gcc --version >&5
gcc (GCC) 4.8.2
Copyright © 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:3905: $? = 0
configure:3894: /usr/bin/gcc -v >&5
Reading specs from /usr/lib/gcc/i486-slackware-linux/4.8.2/specs
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i486-slackware-linux/4.8.2/lto-wrapper
Target: i486-slackware-linux
Configured with: ../gcc-4.8.2/configure --prefix=/usr --libdir=/usr/lib --mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-languages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checking=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib/python2.7/site-packages --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --enable-lto --with-gnu-ld --verbose --enable-java-home --with-java-home=/usr/lib/jvm/jre --with-jvm-root-dir=/usr/lib/jvm --with-jvm-jar-dir=/usr/lib/jvm/jvm-exports --with-arch-directory=i386 --with-antlr-jar=/root/slackware-current/source/d/gcc/antlr-runtime-3.4.jar --enable-java-awt=gtk --disable-gtktest --with-arch=i486 --target=i486-slackware-linux --build=i486-slackware-linux --host=i486-slackware-linux
Thread model: posix
gcc version 4.8.2 (GCC)
configure:3905: $? = 0
configure:3894: /usr/bin/gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3905: $? = 1
configure:3894: /usr/bin/gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3905: $? = 1
configure:3925: checking whether the C compiler works
configure:3947: /usr/bin/gcc conftest.c >&5
configure:3951: $? = 0
configure:3999: result: yes
configure:4002: checking for C compiler default output file name
configure:4004: result: a.out
configure:4010: checking for suffix of executables
configure:4017: /usr/bin/gcc -o conftest conftest.c >&5
configure:4021: $? = 0
configure:4043: result:
configure:4065: checking whether we are cross compiling
configure:4073: /usr/bin/gcc -o conftest conftest.c >&5
configure:4077: $? = 0
configure:4084: ./conftest
configure:4088: $? = 0
configure:4103: result: no
configure:4108: checking for suffix of object files
configure:4130: /usr/bin/gcc -c conftest.c >&5
configure:4134: $? = 0
configure:4155: result: o
configure:4159: checking whether we are using the GNU C compiler
configure:4178: /usr/bin/gcc -c conftest.c >&5
configure:4178: $? = 0
configure:4187: result: yes
configure:4196: checking whether /usr/bin/gcc accepts -g
configure:4216: /usr/bin/gcc -c -g conftest.c >&5
configure:4216: $? = 0
configure:4257: result: yes
configure:4274: checking for /usr/bin/gcc option to accept ISO C89
configure:4337: /usr/bin/gcc -c -g -O2 conftest.c >&5
configure:4337: $? = 0
configure:4350: result: none needed
configure:4377: checking version of gcc
configure:4458: result: 4.8.2
configure:4470: checking how to run the C preprocessor
configure:4501: /usr/bin/gcc -E conftest.c
In file included from /usr/include/bits/posix1_lim.h:160:0,
from /usr/include/limits.h:144,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:168,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/syslimits.h:7,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:34,
from conftest.c:10:
/usr/include/bits/local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory
#include <linux/limits.h>
^
compilation terminated.
configure:4501: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4501: /usr/bin/gcc -E conftest.c
In file included from /usr/include/bits/posix1_lim.h:160:0,
from /usr/include/limits.h:144,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:168,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/syslimits.h:7,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:34,
from conftest.c:10:
/usr/include/bits/local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory
#include <linux/limits.h>
^
compilation terminated.
configure:4501: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4501: /usr/bin/gcc -E -traditional-cpp conftest.c
In file included from /usr/include/features.h:376:0,
from /usr/include/assert.h:37,
from conftest.c:13:
/usr/include/sys/cdefs.h:31:3: error: #error "You need a ISO C conforming compiler to use the glibc headers"
# error "You need a ISO C conforming compiler to use the glibc headers"
^
configure:4501: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4501: /usr/bin/gcc -E -traditional-cpp conftest.c
In file included from /usr/include/features.h:376:0,
from /usr/include/assert.h:37,
from conftest.c:13:
/usr/include/sys/cdefs.h:31:3: error: #error "You need a ISO C conforming compiler to use the glibc headers"
# error "You need a ISO C conforming compiler to use the glibc headers"
^
configure:4501: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4501: /lib/cpp conftest.c
In file included from /usr/include/bits/posix1_lim.h:160:0,
from /usr/include/limits.h:144,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:168,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/syslimits.h:7,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:34,
from conftest.c:10:
/usr/include/bits/local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory
#include <linux/limits.h>
^
compilation terminated.
configure:4501: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4501: /lib/cpp conftest.c
In file included from /usr/include/bits/posix1_lim.h:160:0,
from /usr/include/limits.h:144,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:168,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/syslimits.h:7,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:34,
from conftest.c:10:
/usr/include/bits/local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory
#include <linux/limits.h>
^
compilation terminated.
configure:4501: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4540: result: /lib/cpp
configure:4560: /lib/cpp conftest.c
In file included from /usr/include/bits/posix1_lim.h:160:0,
from /usr/include/limits.h:144,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:168,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/syslimits.h:7,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:34,
from conftest.c:10:
/usr/include/bits/local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory
#include <linux/limits.h>
^
compilation terminated.
configure:4560: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4560: /lib/cpp conftest.c
In file included from /usr/include/bits/posix1_lim.h:160:0,
from /usr/include/limits.h:144,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:168,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/syslimits.h:7,
from /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed/limits.h:34,
from conftest.c:10:
/usr/include/bits/local_lim.h:38:26: fatal error: linux/limits.h: No such file or directory
#include <linux/limits.h>
^
compilation terminated.
configure:4560: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
| #define PACKAGE_TARNAME "ghc"
| #define PACKAGE_VERSION "7.8.4"
| #define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
| #define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4590: error: in `/tmp/ghc/ghc-7.8.4':
configure:4592: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_c_compiler_gnu=yes
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_objext=o
ac_cv_path_LD=/usr/bin/ld
ac_cv_path_PerlCmd=/usr/bin/perl
ac_cv_path_SedCmd=sed
ac_cv_path_WhatGccIsCalled=/usr/bin/gcc
ac_cv_path_install='/bin/ginstall -c'
ac_cv_prog_CPP=/lib/cpp
ac_cv_prog_ac_ct_CC=/usr/bin/gcc
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
fp_cv_gcc_version=4.8.2

## ----------------- ##
## Output variables. ##
## ----------------- ##

ArArgs=''
ArCmd=''
ArIsGNUAr=''
ArSupportsAtFile=''
BuildArch_CPP='i386'
BuildOS_CPP='linux'
BuildPlatform='i386-unknown-linux'
BuildPlatform_CPP='i386_unknown_linux'
BuildVendor_CPP='unknown'
CC='/usr/bin/gcc'
CFLAGS='-g -O2'
CONF_CC_OPTS_STAGE0=''
CONF_CC_OPTS_STAGE1=''
CONF_CC_OPTS_STAGE2=''
CONF_CPP_OPTS_STAGE0=''
CONF_CPP_OPTS_STAGE1=''
CONF_CPP_OPTS_STAGE2=''
CONF_GCC_LINKER_OPTS_STAGE0=''
CONF_GCC_LINKER_OPTS_STAGE1=''
CONF_GCC_LINKER_OPTS_STAGE2=''
CONF_LD_LINKER_OPTS_STAGE0=''
CONF_LD_LINKER_OPTS_STAGE1=''
CONF_LD_LINKER_OPTS_STAGE2=''
CPP='/lib/cpp'
CPPFLAGS=''
CrossCompilePrefix=''
CrossCompiling='NO'
DEFS=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
EXEEXT=''
GMP_INCLUDE_DIRS=''
GMP_LIB_DIRS=''
GREP=''
GccExtraViaCOpts=''
GccLT34='NO'
GccLT46='NO'
GccVersion='4.8.2'
HaskellHaveGnuNonexecStack=''
HaskellHaveIdentDirective=''
HaskellHaveSubsectionsViaSymbols=''
HaskellTargetArch=''
HaskellTargetOs=''
HostArch_CPP='i386'
HostOS_CPP='linux'
HostPlatform='i386-unknown-linux'
HostPlatform_CPP='i386_unknown_linux'
HostVendor_CPP='unknown'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LD='/usr/bin/ld'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LN_S='ln -s'
LTLIBOBJS=''
LdCmd='/usr/bin/ld'
LdHasBuildId=''
LdHasFilelist=''
LdHasNoCompactUnwind=''
LdIsGNULd=''
OBJEXT='o'
PACKAGE_BUGREPORT='glasgow-haskell-bugs@haskell.org'
PACKAGE_name='The Glorious Glasgow Haskell Compilation System'
PACKAGE_STRING='The Glorious Glasgow Haskell Compilation System 7.8.4'
PACKAGE_TARNAME='ghc'
PACKAGE_URL=''
PACKAGE_VERSION='7.8.4'
PATH_SEPARATOR=':'
PerlCmd='/usr/bin/perl'
RANLIB=''
RANLIB_CMD=''
REAL_RANLIB_CMD=''
SHELL='/bin/sh'
SedCmd='sed'
SettingsArCommand=''
SettingsCCompilerCommand=''
SettingsCCompilerFlags=''
SettingsCCompilerLinkFlags=''
SettingsDllWrapCommand=''
SettingsHaskellCPPCommand=''
SettingsHaskellCPPFlags=''
SettingsLdCommand=''
SettingsLdFlags=''
SettingsLibtoolCommand=''
SettingsLlcCommand=''
SettingsOptCommand=''
SettingsPerlCommand=''
SettingsTouchCommand=''
SettingsWindresCommand=''
TargetArch_CPP='i386'
TargetOS_CPP='linux'
TargetPlatform='i386-unknown-linux'
TargetPlatformFull='i386-unknown-linux'
TargetPlatform_CPP='i386_unknown_linux'
TargetVendor_CPP='unknown'
Unregisterised='NO'
WhatGccIsCalled='/usr/bin/gcc'
WordSize=''
ac_ct_CC='/usr/bin/gcc'
bindir='${exec_prefix}/bin'
build_alias=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
exeext_host=''
exeext_target=''
fp_prog_ar=''
hardtop='/tmp/ghc/ghc-7.8.4'
host_alias=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='NONE'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
soext_host='.so'
soext_target='.so'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "The Glorious Glasgow Haskell Compilation System"
#define PACKAGE_TARNAME "ghc"
#define PACKAGE_VERSION "7.8.4"
#define PACKAGE_STRING "The Glorious Glasgow Haskell Compilation System 7.8.4"
#define PACKAGE_BUGREPORT "glasgow-haskell-bugs@haskell.org"
#define PACKAGE_URL ""

configure: exit 1


Чуть больше чем ничего, если честно, понимаю : ( Переустановила gcc - не помогло : (


Слакбилды рассчитаны на то, что система ставилась в режиме full.

Ну, при установке в меню выбора пакетов отмечала нужные категории. Потом в меню непосредственно установки вроде как выбирала "full". Мне так кажется, что проблема в том, что по глупости/наивности не поставила изначально категорию "d" (хотя, кстати, его на образе cd1 и не было) и в таком состоянии пыталась поставить xmonad и прочее из-под sbopkg. Чего-то там теперь напуталось, что даже после установки "d" - завершается ошибкой...На всякие случай спрошу - "full" - это ведь полный комплект пакетов из указанных к установке категорий, но не все категории пакетов дистрибутива? : )

писал(а):
14.07.2015 09:39
Тогда берем соответствующий тарбол (он должен быть в /var/log/cache/sbopkg), распаковываем куда-нибудь в /tmp, заходим внутрь, и внимательно читаем файлы README и INSTALL - там должны быть инструкции по сборке и описание зависимостей вплоть до номеров версий.


Ничего в этих файлах нету к сожалению, по крайней мере я ничего для себя не нашла : (

README
Spoiler
The Glasgow Haskell Compiler
============================

This is a binary distribution of GHC, a compiler and interactive
environment for the Haskell functional programming language.

For more information, visit GHC's web site:

http://www.haskell.org/ghc/

Information for developers of GHC can be found here:

http://ghc.haskell.org/trac/ghc/


For installation instructions, see the accompanying INSTALL file.



INSTALL
Spoiler
This is the INSTALL instructions for a binary distribution of GHC. For
more details on what on earth this package is up to, please consult
the README and ANNOUNCE.

This distribution can be installed in a location of your choosing.

To set the ball rolling, run the configure script (as usual, run the
script with --help to see what options it supports). eg. to set up
the package for installing in directory <my-dir>, use

./configure --prefix=<my-dir>

The default installation directory is /usr/local.

The configure script will figure out what platform you're running on,
and a couple of other interesting pieces of trivia, which it will then
fill in the Makefile.in template to give you a real Makefile. If
you're of a paranoid persuasion, you might want to take a look at this
Makefile to see if the information is correct.

Now run:

make install

(`make show-install-setup' prints the details of where the different
pieces of the bundle are heading when -- possibly helpful).

For more information, full GHC documentation is available from the
main GHC site:

http://www.haskell.org/ghc

Bug reports/suggestions for improvement to the installation
procedure/setup (as well as other GHC related troubles you're
experiencing, of course), gratefully received. Bug reporting
instructions are here:

http://www.haskell.org/ghc/reportabug

Enjoy,
-- The GHC Team.


Есть в дереве этого тарбалла еще некая документация, но сомнительно что она мне как-то сможет помочь. Она вроде как для пользователей этого компилятора больше.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

QWERTYASDF писал(а):
13.07.2015 20:04
configure: error: C preprocessor "/lib/cpp" fails sanity check

Уточните пожалуйста, мы говорим о 32-битной или 64-битной версии Slackware?

Вызов /lib*/cpp что-то выводит?
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

32 бита.
Вызов смогу сделать вечером.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка программ в Slackware

Сообщение Hephaestus »

Попробовал сейчас на виртуалке - вроде компиляется, ждать не стал - долго.
Но у меня здесь 64 бита и система ставилась в режиме full, то есть вообще всё.

Что заметил из различий.
Момент, на котором У Вас происходит затык

QWERTYASDF писал(а):
15.07.2015 10:06
checking how to run the C preprocessor... /lib/cpp


У меня это выглядит так
checking how to run the C preprocessor... /usr/bin/gcc -E


Между тем, /usr/bin/gcc - это симлинк:

ls -l $(which /usr/bin/gcc)

lrwxrwxrwx 1 root root 9 авг 10 2014 /usr/bin/gcc -> gcc-4.8.2*



А /lib/cpp - это другой симлинк:

ls -l $(which /lib*/cpp)

lrwxrwxrwx 1 root root 12 авг 10 2014 /lib/cpp -> /usr/bin/cpp*


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

Ну, в общем, проверьте, на всякий, что с gcc всё нормально, симлинки существуют и т.п.
Больше пока идей нету. У меня нет 32-битной системы, поэтому точнее воспроизвести не могу.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20719
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Установка программ в Slackware

Сообщение Bizdelnick »

Hephaestus писал(а):
15.07.2015 13:01
Какой из них должен в данном случае использоваться - хз.

Обычно с gcc используется gcc -E (который, насколько я понимаю, уже сам вызывает cpp). Возможно, gcc установлен не полностью.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

bormant писал(а):
15.07.2015 09:39
Вызов /lib*/cpp что-то выводит?

Если слово "вызов" в данном случае не означает что-то иное нежели написать в терминале

Код: Выделить всё

/lib*/cpp


и нажать Энтер - тогда ничего не выводит.

Hephaestus писал(а):
15.07.2015 13:01
Ну, в общем, проверьте, на всякий, что с gcc всё нормально, симлинки существуют и т.п.


Данные симлинки существуют, в выводе ldd $(which gcc) "no found" отсутствуют. Как еще проверять нормальность gcc - не знаю.

Hephaestus писал(а):
15.07.2015 13:01
и система ставилась в режиме full, то есть вообще всё.


Т.е. Вы ставили абсолютно все пакеты абсолютно всех категорий в т.ч. кде?

Bizdelnick писал(а):
15.07.2015 13:05
Возможно, gcc установлен не полностью.


Как это проверить?
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка программ в Slackware

Сообщение Hephaestus »

QWERTYASDF писал(а):
15.07.2015 19:44
Т.е. Вы ставили абсолютно все пакеты абсолютно всех категорий в т.ч. кде?
Точно уже не помню, но вроде да.
Это было в порядке эксперимента на виртуальную машину.
Тупо зарядил установку и всё. Там по умолчанию, кажется только локализации для KDE не ставятся.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Установка программ в Slackware

Сообщение yars »

Код: Выделить всё

# mount -r ~/downloads/slackware64-14.1-install-dvd.iso /mnt
upgradepkg --install-new /mnt/slackware64/d/*.t?z

Если все пакеты пропустит - значит, все есть. Еще, если есть мультилиб, проверьте соответствие его пакетов основным, удалите все *solibs и вместо них поставьте пакеты-родители. Например, при наличии всех glibc* пакет glibc-solibs не нужен. Последние ставятся, если на машине не планируется собирать что-либо.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Сделала как посоветовал yars - сборка пошла. Однако запнулась из-за нехватки места в /tmp. Отсюда следующий вопрос. sbobkg предлагает выбрать "Y" (Продолжить) ; "R" (Повторить) ; N "Завершить". Вот у меня запрос вывелся на haskell-regex-base, я освободила некоторое место на /tmp и выбрала "R". Как поняла, скрипт перешел к следующему пакету и выдалось сообщение о невозможности сборки из-за неустановленных зависимостей. Я правильно поняла значение "кнопки" "R"? По факту остановки сборки по отсутствию дискового места ее выбирать или таки "Y"?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

Ответ простой, достаточно посмотреть в less $(which sbopkg):

Код: Выделить всё

   3383     # Start the actual build
   3384     # We loop here to enable a 'retry' if anything goes wrong with the build
   3385     while :; do
   3386         # Populate BUILDOPTIONS with any found options.build.  This has to
   3387         # occur outside the subshell below in order to populate $ARCH with any
   3388         # a user-added $ARCH option.  We will fall back to whatever $ARCH is
   3389         # set to originally after the build.
   3390         if [[ -f options.build ]]; then
   3391             BUILDOPTIONS=$(< options.build)
   3392             [[ $BUILDOPTIONS ]] && eval "export $BUILDOPTIONS"
   3393         fi
   3394         # Fetch the sources
   3395         # Note that get_source() "knows" about the source cache, so this isn't
   3396         # necessarily a download.
   3397         # If the sources are successfully fetched, start the build.
   3398         if get_source $PKGNAME.info.build; then
   3399             if [[ $QUEUETYPE == download ]]; then
   3400                 echo "Done downloading source for $PKGBUILD."
   3401                 return 1
   3402             fi
   3403             build_package $PKGNAME
   3404         fi
   3405
   3406         # Let's see the result
   3407         if [ -f $SB_OUTPUT/*.t?z ]; then
   3408             RETVAL=0
   3409             break
   3410         else
   3411             echo "  Error occurred with build.  Please check the log." \
   3412                 >> $TMPSUMMARYLOG
   3413             echo
   3414             echo "$PKGNAME:"
   3415             echo "Would you like to continue processing the rest of the"
   3416             echo "queue or would you like to abort?  If this failed"
   3417             echo "package is a dependency of another package in the queue"
   3418             echo "then it may not make sense to continue."
   3419             echo
   3420             while :; do
   3421                 printf \
   3422                     "(Y)es to continue, (N)o to abort, (R)etry the build?: "
   3423                 error_read
   3424                 case $REPLY in
   3425                     Y|y) # Continue
   3426                         RETVAL=1
   3427                         break 2
   3428                         ;;
   3429                     N|n) # Abort
   3430                         RETVAL=2
   3431                         rm -f $SBOPKGTMP/sbopkg_build.lck
   3432                         break 2
   3433                         ;;
   3434                     R|r) # Retry
   3435                         continue 2
   3436                         ;;
   3437                     *) unknown_response ;;
   3438                 esac
   3439             done
   3440         fi
То есть, по Retry производится попытка заново скачать и собрать пакет, по Yes -- переход к следующему пакету в очереди. Если завершили текущий сеанс, продлжить можно указав параметр -k -- не собирать уже установленное:

Код: Выделить всё

# sbopkg -Rki xmonad.sqf
Пропущенные пакеты в очереди будут помечены (DISABLED).
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Странно, почему тогда у меня после выбора "R" с уже освобожденным местом не произошло повторной попытки?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

Если с самостоятельной сборкой проблемы, можно обратить внимание на сайт, собирающий slackbuilds.org: slackonly.com, репозиторий для x86: https://slackonly.com/pub/packages/14.1-x86/
Поддерживаются зависимости, можно использовать slapt-get.

PS.
QWERTYASDF писал(а):
17.07.2015 11:56
Странно, почему тогда у меня после выбора "R" с уже освобожденным местом не произошло повторной попытки?
Весьма странно, не сталкивался с подобным. Другое дело, что по R иногда не может перезалить исходники, но тут или с сетью/сайтом проблемы, или попали между обновлениями slackbuilds.org, такое тоже бывает. Первое лечится перезапуском с "-k", второе -- обновлением хранилища по "-r".

PPS. Если что, собранные xmonad и xmobar с зависимостями:

xmonad-0.11-i486.tar
Размер: 65.55 Мб
Ссылка: http://rusfolder.com/43956344

xmobar-0.22.1-i486.tar
Размер: 12.17 Мб
Ссылка: http://rusfolder.com/43956345
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Спасибо большое, я перезапустила установку xmobar - вроде поставилось.
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

Возникла парочка вопросов.

Есть файл /etc/slackpkg/blacklist, в котором заранее уже записаны (хоть изначально и закомментированном виде) шаблоны пакетов, для которых часто требуется неприкоснованность со стороны slackpkg. Там - иксы, прошивки, модули ядра и sbo. Если с последним все понятно, то с другими у меня только догадки. Сейчас у меня этот файл такой:

Код: Выделить всё

# xorg-server
#
# DON'T put any space(s) before or after the package name or regexp.
# If you do this, the blacklist will NOT work.

#
# Automated upgrade of kernel packages aren't a good idea (and you need to
# run "lilo" after upgrade). If you think the same, uncomment the lines
# below
#
kernel-firmware
kernel-generic
kernel-generic-smp
kernel-headers
kernel-huge
kernel-huge-smp
kernel-modules
kernel-modules-smp
kernel-source

#
# aaa_elflibs can't be updated.
#
aaa_elflibs

# You can blacklist using regular expressions.
#
# Don't use *full* regex here, because all of the following
# will be checked for the regex: series, name, version, arch,
# build and fullname.
#
# This one will blacklist all SBo packages:
[0-9]+_SBo


Так вот касательно kernel-* и xorg-server - предполагается вдумчивое ручное обновление их? Поскольку на взаимодействие с конкретными их версиями могут настраиваться много всего - тронешь и какая-то часть из этого "много всего" откажется нормально работать (?). Если я правильно все поняла, то какую стратегию обновления этих пакетов мне выбрать, как понять что от них зависит и так ли надо их обновлять когда будет обновление? Или можно особо не напрягаться и уже в рамках перехода на следующий релиз дистрибутива все полностью обновлять?

Далее еще вопросик по sqg. По хорошему ведь надо запускать



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

Re: Установка программ в Slackware

Сообщение bormant »

QWERTYASDF
Насчет ядерной машинерии резон прост и соответствует рекомендации сначала ставить ядрёные пакеты по installpkg, при необходимости сохранить старый initrd и сгенерить новый, позвать lilo, при необходимости поправив lilo.conf, перегрузиться, убедиться, что всё наличное и потенциальное железо осталось работоспособным и в зависимости от результата убрать старое (removepkg) или вернуться к старому, но рабочему ядру обратным порядком, удалив новое. В подобном варианте перекрытий по файлам из этих пакетов нет (молули идут в /lib/modules/версия-ядра) либо оно незначимо (kernel-firmware, для собственно ядер /boot/vmlinuz).

Нужно понимать, что протестировать работу ядра именно с комбинацией вашего железа не в состоянии никто, поэтому всегда есть риск, что новое ядро не загрузится. Не все согласны после штатного slackpkg upgrade-all получить экран kernel-panic плюс отсутствие файлов прежнего рабочего ядра на диске. Да, slackpkg upgrade и upgradepkg выполняют установку файлов нового пакета и удаление файлов старого пакета как один шаг, не оставляя вам шанса сделать необходимые проверки между этими действиями.

Сама по себе ситуация не фатальна, но для ремонта потребуется установочный носитель (все необходимое есть на нем) или другой LiveCD (пакеты ядра придется скачать из сети).

С xorg-server ситуация может быть схожа, особенно для тех, у кого проприетарный драйвер видеокарты. Обновлять такое можно только предварительно убедившись, что 1) под новые иксы есть драйвер; 2) этот драйвер все еще поддерживает вашу карту. Отсутствие любого из условий приведет к нежелательным последствиям.


Про sqg.
По-хорошему у slackbuilds.org есть ChangeLog.txt, по которому нужно сориентироваться. Действительно, любое обновление может повлиять на зависимости, но далеко не каждое влияет.
С другой стороны, сборка пакетов хотя и увлекательное занятие, но не самоцель, обычно система нужна для чего-то вполне полезного, периоды сборки необходимого софта на этом фоне не шибко часты, можно и подождать. Более того, обычно нужно собирать что-то весьма определенное, можно и очереди сгенерить только для плана сборки, для требуемых пакетов, это ведь существенно быстрее, чем "-a".
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Установка программ в Slackware

Сообщение QWERTYASDF »

bormant писал(а):
23.07.2015 09:02
очереди сгенерить только для плана сборки, для требуемых пакетов, это ведь существенно быстрее, чем "-a".

Ага. Т.е. сгенерить очередь для конкретного пакета, который сейчас хочу установить:

Код: Выделить всё

# sqg -p package_name


Или, если несколько пакетов, то:

Код: Выделить всё

# sqg -p package_name1 package_name2


?
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Установка программ в Slackware

Сообщение Hephaestus »

QWERTYASDF , ну как-то так, да.
Я буквально вчера запускал sqg -a.

А ещё выяснилось, что я давно не делал sbopkg -c и там накопилась туева хуча пакетов.
И некоторые даже локальными слакбилдами.

Вот, кстати, интересный вопрос нарисовался.
Стоит у меня, к примеру, vlc. по команде update выясняется, что он у меня устарел. Предлагается включить его в очередь на обновление и собрать новую версию.
Ладно, соглашаемся.
Но. Список зависимостей у новой версии указан иной, чем у старой (там добавлено два-три пакета).
Соберется или нет? Зависит от того, стоят ли у меня эти пакеты, что совсем не факт.
Далее, очередь на обновление создаётся в алфавитном порядке. А между тем, пакеты в составе этой очереди вполне могут находиться в зависимости друг от друга.
То есть сначала, нужно собрать библиотеку, а потом программу, зависящую от неё. Наоборот не получится.
И как раз такая ситуация у меня вчера случилась. Началось-то всё с того, что хотел я поставить audacity. А он не захотел собираться. Ругнулся там чего-то на ffmpeg.
Я проверил наличие обновлений и... вот оно пожалуйста. В данном случае нужно сначала собирать ffmpeg, а потом audacity. Если очередь по алфавиту, ничего не выйдет.
Вывод: та очередь, которая создаётся на обновление, совершенно бестолковая.
С учётом вышесказанного, вопрос: по какой схеме лучше проводить обновление пакетов SBO? Схема, предлагаемая по умолчанию (алфавитный список) не годится.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

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

На сегодня автоматизированного решения задачи sbopkg не предлагает. Ключ -k выкидывает из сборки уже установленное, даже если версия установленного отличается от предлагаемой слакбилдом (хотя могу ошибаться, давно не проверял, мои сведения могли устареть. Проверить просто, для пакета из -c посмотреть на очередь в начале вывода sbopkg -Rki пакет).

А если не ошибаюсь -- это хороший повод дописать кусочек в sbopkg для отдельного ключа по аналогии с -k, как его модификатора или самостоятельного действия. С другой стороны, это может ударить по тем, кто вроде меня зачем-то держит версии, отличныя от хранилища sbo ;-)
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Установка программ в Slackware

Сообщение bormant »

Hephaestus
Конкретно про vlc -- рекомендую глянуть на slackpkg со slackpkg+ и хранилище alien/restricted_slackbuilds.
Спасибо сказали: