LINUX.ORG.RU

Компиляция на раз-два-три

 , , ,


0

1

DEB, RPM, Arch tar - это все просто.
Научите меня компилировать. Ман читал, но хочу, чтобы живой человек рассказал как это делается и в чем могут быть подводные камни.

Меньше «погугли», «читай ман» и прочих школоло советов, а больше примеров и внятных объяснений.



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

Раз: ./configure
Два: make
Три: make install

post-factum ★★★★★
()

раз

./configure

два

make

три

make install

Dragon59 ★★
()

присоединяюсь к вопросу. самое главное что хочу узнать - куда компеляется? - создаётся дира build и вней всё скомпиленое, а потом сам кидаешь куда надо или как? есть какая-то переменная, которую правишь и компиляется например в /shmin? и ели хочу кеды собрать без knotify что мне делать?

teod0r ★★★★★
()

Но лучше всего от пользователя локально на раз-два:

Раз: ./configure
Два: make

Так безопаснее всего.

toney ★★★★★
()
./configure
make
checkinstall

Меньше «погугли», «читай ман» и прочих школоло советов, а больше примеров и внятных объяснений.

Это единственное и достаточное, что тебе нужно было сделать.

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

make install иелепортирует бинарь в /usr/bin

всегда? как-то повляить на это можно? а как же гента с несколькими версиями установленного софта?

teod0r ★★★★★
()

тех кто советует make install можешь сразу отправлять в пешее эротическое путешествие
а вообще вопрос надо раскрыть - скомпилять что именно?
если софт, то зависит от системы сборки
конфигурирование:
./configure с ключами
auto* + ./configure с ключами
mkdir build && cd build && cmake ключи ..
qmake* *.pro
всякие скрипты
....
сама компиляция:
make ключи
lrelease* *.pro
всякие скрипты, типа build.sh
....
короче - тут не обойтись без RTFM системы сборки
и это не школоло советы - это единственно 100% рабочий совет

megabaks ★★★★
()

Стоп-стоп-стоп... Давайте на примере какой-нибудь программы вопрос рассмотрим. А лучше несколько программ, чтобы лучше понять что к чему.

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

./configure ключи
make ключи
make install - но лучше что-то типа checkinstall
так себе пример

megabaks ★★★★
()

Научите меня компилировать.

тебе с какой целью? Если для написания программ, то читай книжки по программированию, там про компиляцию будет упоминаться.

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

make install иелепортирует бинарь в /usr/bin

всегда? как-то повляить на это можно?

Ключи при ./configure.

damnemall
()
#cat INSTALL

Читай. Там ответы на все твои вопросы. А сферической инструкции по сборке программ из исходников в вакууме нет и быть не может.

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

Странно, что никто еще не помянул cmake, qmake etc. Хотя бы cmake стоит учесть — часто используется.

Странно, что никто не упомянул README

zhekas
()

Берешь ABS от арча и читаешь PKGBUILD-ы тех программ, что хочешь собрать.

В rpm-spec-ах иногда без поллитра не разберешься.

sergej ★★★★★
()

Меньше «погугли», «читай ман» и прочих школоло советов, а больше примеров и внятных объяснений.

И давно отправка в ман стала школоло-советом?

Обычно в архиве с исходниками есть INSTALL, README или еще какой-нибудь HOWTO. Читай, там написано, как собрать программу.

Если хочешь сам стать повелителем конпеляции, читай info make.

staseg ★★★★★
()

Достаточно универсальная собиралка:

function build {
	if [ -f CMakeLists.txt ]; then
		mkdir build && cd build && cmake .. "$@"
	elif [ -f *.pro ]; then
		qmake *.pro "$@"
	elif [ -f configure ]; then
		./configure "$@"
	fi

	if [ -f Makefile ]; then
		make
	fi
}

Nightwalker
()

А зачем? Большинство пакетов уже собрано. Есть, конечно, нужные вещи, которые приходится собирать, читай README, INSTALL, запускай ./configure? пока зависимости не удвлетворишь...

kom3s
()

Меньше «погугли», «читай ман» и прочих школоло советов

школота охерела совсем

anonymous
()
Ответ на: комментарий от kom3s

*удовлетворишь, и да, пользуй checkinstall - удалять можно будет.

kom3s
()

Эх, вымирают Ъ-линуксоиды...

Раз: распаковываешь и заходишь в каталог

Два: вдумчиво читаешь README или INSTALL . Там все написано.
Но в 99% случаев (по состоянию на 5 лет назад):

Три: ./configure --help [с ключем могу ошибиться, но принцип понятен]
Вдумчиво читаешь вывод этой комманды. В 50% случаев тебе параметры не нужны, в остальных 45% - включаешь те фичи, которые тебе нужны, еше в 5% - включаешь те фичи чтобы скомпилировалось под твою систему (зависимости и все такое)

Четыре: ./configure с параметрами

Пять: make all
Если не скомпилировалось, в 99% случаев тебе просто не хватает каких-то зависимостей. Читаешь сообщения об ошибке и понимаешь что еще нужно доустановить прежде чем продолжить.

Шесть: sudo make install
Установит в /usr/local , если ты не задал другой префикс. Настоятельно НЕ рекомендую устанавливать с префиксом /usr (только если у тебя не LFS)

Семь: профит

Kroz ★★★★★
()

Начни с «less README» твоего тарбола.

Makefile
()

Меньше «погугли», «читай ман» и прочих школоло советов
школоло советов

Язабан.

jessey
()

Меньше «погугли», «читай ман» и прочих школоло советов

Если тут кто-то и школоло, то уж точно не советчики.

max_udoff
()

Установи генту, открой ебилд пакета, если нужна новая версия - перепиши немного, закрой, emerge pack_name -avb .

ymuv ★★★★
()

make это такой пролог, пролог это такой лисп, те бе ли не зна ть.

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

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

anonymous
()

Да бы подвести итог дискуссии, пока анонимному-школьнику не порвало то самое место от не пойми чего, сделаю вывод.

Самый простой способ: ./configure -> make -> make install, что сразу же написал нам месье post-factum.

Однако, megabaks верно уточнил, что правильно было бы сначала понять что именно мы собираемся компилировать и напомнил нам о дополнительных ключах ./configure.

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

staseg вспомнил про README, INSTALL и другие заметки, которые должны быть в каждом архиве с исходниками под компиляцию.

Kroz в своем комметарии (Компиляция на раз-два-три (комментарий)) постарался объяснить подробности шагов копиляции.

Теперь было бы интересно услышать про сборку пакетов .deb и .rpm. В особенности с объяснением разницы компиляции под x86 и х64.

Quadmonster
() автор топика

классный тред создал

А вообще достаточно попытаться найти книгу по своему дистрибутивы и почитать. Ну, а также чтение README и Install.

По своему опыту скажу: 90% своих программ на компе собирал обычными:

1) ./configure

2) make

3) make install

P.S совет особо не парься по этой теме. Редко когда приходится читать инфу про ключи и доп.фичи.

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