Как собрать из исходников утилиты slackware?

SLAX, Deep Style, ZenWalk

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

монах Тук
Сообщения: 78
ОС: XP 32 SP3

Как собрать из исходников утилиты slackware?

Сообщение монах Тук »

Как собрать из исходников утилиты slackware?

Вопрос был бы неподъёмным, но во-первых, я сделал всё точь-в-точь по инструкции. Во-вторых компилю не левые какие-то проги, а то, что у меня уже есть! Ну то есть я скачал себе слакваре 2 месяца назад со всеми утилитами. А теперь эти же самые утилиты решил переустановить. Они же те же самые и дядька, который писал инструкцию по инсталляции он по ней два месяца назад и собрал мой
дисрибутив. А я по ней собрать не могу.
(Ну и скромный опыт программирования на плюсах в винде (mingw) тоже имеется. Вот только грешник, make не использовал ни разу, а если нужно было писал просто батники а-ля "g++ -опции")


Вот мой дистрибутив и исходники, это же оно да ведь? Общение с ребятами подсказало мне, как правильно их найти.

Вот по этой ссыли

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

http://www.slackware.com/torrents/

Вот такие две надписи
Slackware 14.1 x86 DVD ISO (Includes everything except for source code)
Slackware 14.1 source code DVD ISO (The complete source code tree for both x86
and x86_64)


Верхняя это мой дистрибутив (инсталлятор), нижняя исходники.

По исходникам: всё сделал как нужно, распаковал, прочёл README, прочёл INSTALL

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

" 1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.

Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
"


Опять всё делаю как нужно, залезаю в папку с исходниками (где файлы *.с, например whoami.c) командую ../confugure, в config.log куча ошибок, первая же обескураживает:

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

configure:4906: gcc -V >&5
gcc: error: unrecognized command line option '-V'

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

Но не в этом дело. Больше чем ошибка как таковая удивлет тот факт, что оно же собралось как-то из этих же исходников в инсталлятор! (не мной конечно, но инструкции-то те же самые и компилятор gcc был тот же самый и ../configure та же самая, вот в чём всё дело!)

Тут ещё что- конечно, надо по хорошему-то работать с отдельными родными утилитками. Например, с той же cp, скомпилить её и посмотреть процесс. Но не мной придумано, чтобы внести изменения в маленькую отдельно взятую утилитку, нужно перелопачивать ВЕСЬ пакет.

ЧЯДНТ? Спасибо, кто откликнется.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18981
Статус: ✡ иностранный агент
ОС: Debian GNU/Linux

Re: Как собрать из исходников утилиты slackware?

Сообщение Bizdelnick »

монах Тук писал(а):
21.01.2016 19:35
командую ../confugure, в config.log куча ошибок

А чего Вы полезли в config.log? Скрипт отработал нормально или завершился с ошибкой? Статус выхода какой? Что он в консоль сказал? С этого надо начинать, а не с config.log.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
bormant
Сообщения: 1349

Re: Как собрать из исходников утилиты slackware?

Сообщение bormant »

монах Тук писал(а):
21.01.2016 19:35
Как собрать из исходников утилиты slackware?
Загружаете всё содержимое каталога source/a/ps, например, в bld/a/ps, делаете *.SlackBuild исполняемым и выполняете его, либо выполняете так:

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

# bash ps.SlackBuild
На выходе получаете в /tmp/ собранный из исходников пакет.

Команды, которыми собран пакет, можете посмотреть в ps.SlackBuild, это обычный сценарий оболочки.
Спасибо сказали:

Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Как собрать из исходников утилиты slackware?

Сообщение yars »

configure:4906: gcc -V >&5
gcc: error: unrecognized command line option '-V'

Это одна из стандартных проверок autotools, путем компиляции небольших кусочков кода определить наличие и работоспособность необходимого сборочного инструментария, заголовочных файлов, присутствуют ли нужные пакеты-зависимости в системе и т.д.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:

Аватара пользователя
fines
Сообщения: 359
ОС: Slackware-current

Re: Как собрать из исходников утилиты slackware?

Сообщение fines »

В Slackware пакеты собираются с помощью скриптов.
Что такое скрипт? Это текстовый файл, содержащий команды для интерпретатора команд bash... Чтобы Вы могли набранные в консоли команды, как то автоматизировать... Собирается пакет просто. make, install... Вернее, устанавливается... Собирается, ему нужно каталог для установки указать, потом сархивировать... Профессионалы, я не прав?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18981
Статус: ✡ иностранный агент
ОС: Debian GNU/Linux

Re: Как собрать из исходников утилиты slackware?

Сообщение Bizdelnick »

fines писал(а):
23.01.2016 20:12
я не прав?

Нет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
fines
Сообщения: 359
ОС: Slackware-current

Re: Как собрать из исходников утилиты slackware?

Сообщение fines »

Bizdelnick писал(а):
23.01.2016 20:31
fines писал(а):
23.01.2016 20:12
я не прав?

Нет.


Это уже интересно... Разве команда makepkg не архивирует предустановленный во временный каталог пакет?
Не могу понять, в чём я ошибаюсь?
Спасибо сказали:

Аватара пользователя
bormant
Сообщения: 1349

Re: Как собрать из исходников утилиты slackware?

Сообщение bormant »

fines
Скорее дело в несколько сумбурном изложении, где смешаны в кучу распаковка исходников, настройка параметров сборки (например, configure), сборка бинарников (например, make), установка во временный каталог (например, make DESTDIR=... install), упаковка временного каталога в пакет (makepkg).
Спасибо сказали:

монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как собрать из исходников утилиты slackware?

Сообщение монах Тук »

Надо уж добить конфигурацию, что ли.

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

root@serimahosta:~/coreutils-8.21/src# ../configure

...
...
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
See `config.log' for more details
root@serimahosta:~/coreutils-8.21/src#


Очень странно, что нужно быть обыкновенным пользователем. Впрочем, не мне судить.Хотелось бы не править FORCE_UNSAFE_CONFIGURE по возможности. На всякий случай заглядываю в config.log

root@serimahosta:~/coreutils-8.21/src# cat config.log
...
configure: exit 1
root@serimahosta:~/coreutils-8.21/src#

Захожу обыкновенным пользователем, но перед этим хочу спросить, правильно ли я сделал: я установил на ../configure такие права:

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

 ls -l ../configure
-rwsrwsr-x 1 root root 1701949 фев 14  2013 ../configure*
root@serimahosta:~/coreutils-8.21/src#

Для того, чтобы если ../configure во время своей работы открывала какие-то файлы, к которым у обыкновенного пользователя нет прав, то файлы открывались бы без проблем. Далее захожу простым юзером и конфигурирую:

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

root@serimahosta:~/coreutils-8.21/src# su user_ser
user_ser@serimahosta:/root/coreutils-8.21/src$ ../configure
../configure: line 3650: confdefs.h: Permission denied
../configure: line 3654: confdefs.h: Permission denied
...
...
configure: error: newly created file is older than distributed files!
Check your system clock
user_ser@serimahosta:/root/coreutils-8.21/src$

Всё, собсно. И ещё часы велят проверят. ЧЯДНТ?
Спасибо сказали:

Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как собрать из исходников утилиты slackware?

Сообщение Olej »

Цирк... :drunk:

монах Тук писал(а):
29.01.2016 09:22
Очень странно, что нужно быть обыкновенным пользователем.

Ничего странного - обычная практика работы с программным кодом: за работу под root нужно руки отбивать. Самый традиционный подход... :rolleyes:

монах Тук писал(а):
29.01.2016 09:22
Впрочем, не мне судить.

Вот и мне так показалось. :wacko:

монах Тук писал(а):
29.01.2016 09:22
Захожу обыкновенным пользователем, но перед этим хочу спросить, правильно ли я сделал: я установил на ../configure такие права:

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

 ls -l ../configure
-rwsrwsr-x 1 root root 1701949 фев 14  2013 ../configure*
root@serimahosta:~/coreutils-8.21/src#

Для того, чтобы если ../configure во время своей работы открывала какие-то файлы, к которым у обыкновенного пользователя нет прав, то файлы открывались бы без проблем.

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

монах Тук писал(а):
29.01.2016 09:22

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

root@serimahosta:~/coreutils-8.21/src# su user_ser
user_ser@serimahosta:/root/coreutils-8.21/src$ ../configure
../configure: line 3650: confdefs.h: Permission denied
../configure: line 3654: confdefs.h: Permission denied
...
...
configure: error: newly created file is older than distributed files!
Check your system clock
user_ser@serimahosta:/root/coreutils-8.21/src$

Всё, собсно. И ещё часы велят проверят. ЧЯДНТ?

А что, собсно? :crazy:
Что "Permission denied"?
Спасибо сказали:

монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как собрать из исходников утилиты slackware?

Сообщение монах Тук »

Olej писал(а):
29.01.2016 09:48
А что, собсно?
А что, совсем не видно ошибок, да? А ещё отрывок из config.log, самый конец
configure: exit 1
Спасибо сказали:

Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как собрать из исходников утилиты slackware?

Сообщение Olej »

монах Тук писал(а):
29.01.2016 10:19
Olej писал(а):
29.01.2016 09:48
А что, собсно?
А что, совсем не видно ошибок, да? А ещё отрывок из config.log, самый конец
configure: exit 1



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

../configure: line 3650: confdefs.h: Permission denied
../configure: line 3654: confdefs.h: Permission denied

Там ничего и не начинало конфигурироваться!
Какие могут быть ошибки в том, что вообще не делалось? :unsure:
Спасибо сказали:

монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как собрать из исходников утилиты slackware?

Сообщение монах Тук »

Olej писал(а):
29.01.2016 11:44
Там ничего и не начинало конфигурироваться!
Какие могут быть ошибки в том, что вообще не делалось?
я уж не буду больше у вас спрашивать, что делать, а вы не беспокойтесь больше. вопрос открыт.
Спасибо сказали:

Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Как собрать из исходников утилиты slackware?

Сообщение Olej »

монах Тук писал(а):
29.01.2016 11:45
Olej писал(а):
29.01.2016 11:44
Там ничего и не начинало конфигурироваться!
Какие могут быть ошибки в том, что вообще не делалось?
я уж не буду больше у вас спрашивать, что делать, а вы не беспокойтесь больше. вопрос открыт.


А меня спрашивать и не надо...
Надо начинать с того, что Букварь читать :drinks: (следующая после Робачевского полезная книжка).
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18981
Статус: ✡ иностранный агент
ОС: Debian GNU/Linux

Re: Как собрать из исходников утилиты slackware?

Сообщение Bizdelnick »

монах Тук
Вы исходники распаковали от рута, соответственно владельцем их является root. И разумеется у обычного пользователя прав на изменение файлов нет. Чтобы работало, надо изначально всё, начиная с распаковки, делать от юзера. И не надо обижаться на Olej, он всё правильно говорит.

Но! То, что написано выше (и то, что Вы изначально пытались сделать), касается случая сборки абстрактной программы из исходников. Однако у Вас исходники для пакета Slackware (включая скрипт slackbuild, вероятно какие-то патчи и прочее). И, вероятно, Вы хотите собрать именно пакет в том виде, в каком он был изначально собран в Slackware. И тут уже Вам надо внимательнее читать то, что пишет bormant: в этом случае надо использовать скрипт slackbuild (при необходимости внося в него изменения), а не выполнять шаги, описанные в INSTALL, вручную.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как собрать из исходников утилиты slackware?

Сообщение монах Тук »

ненене ничё не надо, с горем пополам сконфигурировал и ладно и на том спасибо.
Спасибо сказали: