Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: собрать из исходников программу и разнести по директориям  (Прочитано 731 раз)

0 Пользователей и 1 Гость просматривают эту тему.

bnt

  • Автор темы
  • Гость
собираю gcc из source. собрал. но надо разнести правильно по директориям все что скомпилировалось, чтобы программы могли найти gcc и g++ ...  как бы уже понятно стало , что это можно сделать руками, и можно изменить makefile и при make install все автоматически установиться в правильные директории. вот есть makefile https://pastebin.com/C9FN4uuP
подскажите, что в нем изменить, чтобы все автоматически установилось не в /usr/local/bin а библиотеки к библиотекам , исполняемые файлы , к исполняемым файлам

Оффлайн archuser

  • Активист
  • *
  • Сообщений: 642
    • Просмотр профиля
bnt, ничего делать не нужно. Все разнесется по своим местам в родительском каталоге /usr/local (т.е. в каталоги /usr/local/bin /usr/local/sbin /usr/local/include /usr/local/lib и т.д.)

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
чтобы все автоматически установилось не в /usr/local/bin а библиотеки к библиотекам

Структура каталогов описана в конфиге. После команды make install все файлы будут размещены там, где задумано.
Если Вы самостоятельно "наведёте порядок" и переместите файлы, вероятнее всего работать ничего не будет.

А вообще то нужно собирать deb пакеты, перед установкой приложения.

Изучайте:

https://forum.ubuntu.ru/index.php?topic=11609.0

bnt

  • Автор темы
  • Гость
, ничего делать не нужно. Все разнесется по своим местам в родительском каталоге /usr/local
ребята, так в том то и дело, что все устанавливается в /usr/local/bin  . то есть я качаю source,  распаковываю в /usr/local/bin
pwd
/usr/local/bin
tar xvf gcc-8.3.0
cd gcc-8.3.0
./contrib/download_prerequisites -это устанит gmp, mpfr  и все что нужно для соборки.
mkdir blk создам каталог который смогу удалить в случае повторной сборки. так чище
сd blk
../configure


make -j8
make install
и все будет установленно в /usr/local/bin
когда буду компилить например u-boot то он просто не найдет gcc. потому что gcc лежит не там где это задуманно по умолчанию.
нужна помощь


Пользователь добавил сообщение 02 Май 2019, 19:49:20:
Структура каталогов описана в конфиге
это уже интересно... значит в конфиге можно изменить пути установки ? так?

Пользователь добавил сообщение 02 Май 2019, 19:52:30:
все файлы будут размещены там, где задумано.
ну неужели задумано разместить все в /usr/local/bin? там все в куче и библиотеки и сполняемые файлы. так не должно быть. по крайней мере в Линукс. могу ошибаться конечно же
« Последнее редактирование: 02 Май 2019, 19:52:30 от bnt »

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4722
  • Capture the truth
    • Просмотр профиля
то есть я качаю source,  распаковываю в /usr/local/bin
*facepalm*


Пользователь добавил сообщение 02 Май 2019, 19:55:53:
https://losst.ru/kompilyatsiya-programm-linux
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Radeon R7 260X :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
ребята, так в том то и дело, что все устанавливается в /usr/local/bin

Мне всё чаще кажется, что вы тролите на форуме, потому что нельзя быть таким недалёким.
Вы перед сборкой читали хотя бы readme.txt или install.txt в архиве с исходными текстами?

Вы не задумывались запустить:

./configure -h

и  посмотреть какие есть ключи конфигурирования?

bnt

  • Автор темы
  • Гость
Вы не задумывались запустить:
задумывался....  это не разнесет библиотеки отдельно, исполняемые файлы отдельно. да, я могу сменить /usr/local/bin на что -то другое. допустим ../configure prefix=/usr/bin   ну там не должно быть библиотек. там бинарники.

надо библиотеки отдельно, исполняемые файлы-отдельно.   я не прав?

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
допустим ../configure prefix=/usr/bin   ну там не должно быть библиотек. там бинарники.

Там и не будет библиотек, если вы не сломали свой установщик.
Архив с исходниками нужно распаковывать не в /usr , а в пустой каталог в домашней папке. Там и производить сборку.
В общем вы меня извините, но мне с вами не интересно :)

bnt

  • Автор темы
  • Гость
x
как это понять?



--bindir=DIR - папка для размещения исполняемых файлов, должна находится в PREFIX;

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
задумывался....

Врёте. Что означает ключ --libdir ?

bnt

  • Автор темы
  • Гость
Архив с исходниками нужно распаковывать не в /usr
приехали.  /usr/local/bin специально для компиляции, чтобы не было конфликта при сборке.
не уходите из темы. учитесь вместе со мной. может кто зайдет и научит нас с вами как правильно собирать.  я вижу вы тоже плаваете в этой теме

Пользователь добавил сообщение 02 Май 2019, 22:02:17:
Что означает ключ --libdir ?
директория для размещения библиотек по умлчанию...  ну как тогда написать ./cofnigure --liddir --bindir вы думаете что разнесет?
« Последнее редактирование: 02 Май 2019, 22:02:17 от bnt »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
/usr/local/bin специально для компиляции


bnt

  • Автор темы
  • Гость
/usr/local/bin специально для компиляции
да. я утверждаю, что /usr/local/bin используется для сборки из source.  не созданны, а используются. специально используются для сборки из source.  компилить можно и в /home/ но правильно в /usr/local/bin.  мы же хотим правильно.

ну так что, как написать ./configure --libdir --bindir   знак равно надо?

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4722
  • Capture the truth
    • Просмотр профиля
bnt, компилять вы можете АБСОЛЮТНО ИЗ ЛЮБОЙ ПАПКИ. Нет никакой необходимости залезать напрямую в папки системы. Для этого существуют другие механизмы.

Пользователь добавил сообщение 02 Май 2019, 22:15:39:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 02 Май 2019, 22:15:39 от ALiEN175 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Radeon R7 260X :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2115
  • Lubuntu 16.04 LTS
    • Просмотр профиля
да. я утверждаю

Попытайтесь усвоить, что каталог '/usr/local' не для компиляции, а для установки готовых, скомпилированных файлов.
Что бы работать в этом каталоге, нужно иметь права администратора. В любой сопроводительной документации вы увидите, что то типа:

./configure
make
sudo make install

Попробуйте наморщить лоб и объяснить себе, почему только последняя команда имеет префикс 'sudo' ?
« Последнее редактирование: 02 Май 2019, 22:23:18 от ecc83 »

 

Страница сгенерирована за 0.076 секунд. Запросов: 23.