LINUX.ORG.RU

Установка библиотек C, C++ прямо в проект

 ,


3

3

Есть ли готовые решения в виде менеджера пакетов, желательно source-based, который бы ставил все нужные зависимости не в систему, а в папку проекта?

Желательно чтобы это было кроссдистрибутивно (но интересуют и иные варианты, если нельзя так).

То есть - менеджер должен из некоего репозитория ставить исходники библиотеки. Бинарники - дело десятое, в принципе они в данном подходе не нужны, потому что все равно будут собраны не под целевую систему.

Вроде простая задача, и во всяких Node, Python решается штатно, а такой затык. Или я в танке еду и не знаю про очевидные решения. Помогите, кто знает?

Ответ на: комментарий от James_Holden

Одно кольцо чтобы править всеми? Деды предостерегали от этого.

Два, популярное и следующее популярное. Как у ситхов, вроде.

Но пойми, что написание кода предполагает его постоянную сборку и запуск на машине разработчика.

apt install из своего README выполни

А за пределами моей машины ты как админ решай как делать, тебе оно виднее.

s/админ/мэйнтейнер твоего пакета/

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

Два, популярное и следующее популярное. Как у ситхов, вроде.

Не не не, я не об этом. Мне по барабану сколько их там популярных. Одна утилита не должна решать все задачи. Одна задача - одна утилита.

apt

bash: apt: команда не найдена

И что?

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

Давно apt разучился в сторонние репы, локально собранные пакеты и hold? Он, конечно, из импотентных ПМ, но не настолько же.

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

И выполни аналог для твоего системного ПМ

Во-первых он недоступен, во-вторых он управляет установкой приложений. Никаких библиотек с .h файлами у него нет.

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

Ты всегда можешь создать свой deb-репозиторий, собрать и поместить в него пакеты вида 'libпротухшаялиба1jamesholdenedition_3_amd64.deb' для всех зависимостей, которые не присутствуют в репозитории дистра и предлагать пользвателям добавить свой репозиторий, чтобы они могли устанавливать твою прогу и зависимости оттуда.

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

Давно apt разучился в сторонние репы

Он никогда в них не умел. Нельзя использовать сторонние репы не ломая систему. Данная конкретная задача так не решается.

локально собранные пакеты

А собирать их я руками буду? А зачем мне тогда ПМ?

hold

Ломать систему мне не надо.

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

Во-первых он недоступен, во-вторых он управляет установкой приложений. Никаких библиотек с .h файлами у него нет.

как это нет, MacPorts точно .h файлы ставит, я проверял, иначе зачем он нужен

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от Harald

и предлагать пользвателям

Да блин ты можешь понять что мы сейчас не обсуждаем «предлагать пользователям»? Мне как работать?

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

Ну так выкинь эту какаху и поставь хотя бы apt.

НА ХРЕ НА???

Почему я должен ломать систему, которая полностью устраивает меня как ПОЛЬЗОВАТЕЛЯ для того чтобы решить ОДНУ задачу из СОТНИ, которые я решаю на компьютере? Ты можешь объяснить?

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

Он никогда в них не умел. Нельзя использовать сторонние репы не ломая систему.

4.2

А собирать их я руками буду? А зачем мне тогда ПМ?

Пакеты собирает ПМ // КО

Ломать систему мне не надо.

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

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

Потому что за время, потраченное на этот тред, уже бы выкинул неадекватный задаче инструмент и поставил бы хотя бы apt. То, что ты в твоём недодистре можешь засорять эфир на ЛОРе его не особо красит. Апгрейднись хотя бы до убунты, а то может и до нормального ПМ.

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

Мне как работать?

sudo port install qt5

к примеру

ставит все библиотеки и .h файлы куда-то в /opt, вот туда и указывай пути препроцессора и линкера :)

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

Если ты в качестве дистра для разработки

Нет и не должно быть дистров для разработки. На винде нет винды для разработки. На маке нет мака для разработки. Это изобретение поехавших линуксоидов-мазохистов, делать систему под задачу. Я усиленно с этим борюсь, поэтому да, я выбрал то что не для разработки. Потому что мне нужно заниматься не только разработкой.

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

поставил бы хотя бы apt

Да нахрен мне твоя убунта нужна? Я тебе десять раз уже писал, что apt не решает моих задач. Он не позволяет даже поставить нужные версии библиотек.

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

Зачем мне это делать? Ты так объясни, каким образом подключение сторонней репы обязательно ломает систему. Создатель сторонней репы конечно же может быть рукожопом, но это частный случай. Можно и правильно всё сделать, и ничего не поломается.

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

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

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

Не надо маком прикрываться, там как раз все путем.

а как мне в изкоробочном маке установить .h файлы произвольной библиотеки без помощи посторонних пакетных менеджеров? :P

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

Мы с тобой философией занимаемся или решаем конкретные задачи? Я тебе привел пример пакета с которым задача не решается.

значит, у тебя неправильный гнулинукс

У меня не гнулинукс, у меня линукс. Девяностые давно прошли, какой гнулинукс.

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

Я тебе привел пример пакета с которым задача не решается.

что тебе мешает опакетить его самому правильным образом?

У меня не гнулинукс, у меня линукс. Девяностые давно прошли, какой гнулинукс.

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

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

что тебе мешает опакетить его самому правильным образом?

То, что мне не надо опакечивать. Мне надо ставить и работать дальше. И пока есть решение, которое позволяет так сделать, а их аж несколько, ни одной причины опакечивать в данной ситуации нет.

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

А кто тебе сказал что я страдаю??? Мне решение вывалили прямо в первом комментарии. В первом, Карл!

После чего оно было опробовано и интегрировано в процесс. Все. Дальше пошли чисто философские бодания. Технической проблемы давно нет.

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

После чего оно было опробовано и интегрировано в процесс. Все. Дальше пошли чисто философские бодания. Технической проблемы давно нет.

Это пока в репозитории этого вашего conana присутствуют библиотеки желаемых версий. А как только ты захочешь более протухшую, или более свежую, чем там есть, либо нужной библиотеки там не окажется, нытьё про «не хочу опакечивать» начнётся снова.

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

вот я к примеру в репе conan-а не нашёл ffmpeg, всё, говно этот ваш conan, не подходит для разработки, плак-плак

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

То что conan фуфло и далеко не идеален я не спорю. Основная претензия - скудный выбор версий.

Пока подходит, потом надо думать.

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

Это для экспериментальной системы, мне тут важно отработать сами принципы.

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

То что conan фуфло и далеко не идеален я не спорю. Основная претензия - скудный выбор версий.

Так в чём принципиальная разница с репозиторием deb-дистра? И там, и там какой-то репозиторий, какая-то группа людей его поддерживает, в нём могут быть, а могут и не быть библиотеки нужных тебе версий. Если их нет, придётся либо создавать пакеты самостоятельно и пропихивать в основной репозиторий, либо делать свой отдельный, либо качать и ставить эту библиотеку без использования пакетного менеджера.

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Нет и не должно быть дистров для разработки.

Только для нее? Да.

Подходящих для нее? Должны.

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

Да нахрен мне твоя убунта нужна? Я тебе десять раз уже писал, что apt не решает моих задач. Он не позволяет даже поставить нужные версии библиотек.

Забудем, на секундочку, что позволяет. В каком дистре уже опакечены нужные тебе версии библиотек?

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от Harald

и как из conan-а поставить «последний zita-convolver»?

Сейчас никак.

Так в чём принципиальная разница с репозиторием deb-дистра?

В том что его можно допилить до нужного, а deb нет.

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

У тебя какая-то немотивированная deb-офобия, рвёшься какие-то сторонние васянские пакетные менеджеры использовать, лишь бы не стандартные общепринятые и популярные, по надуманному поводу, что якобы программы и заголовочные файлы нельзя ставить одним ПМ-ом. Странно это всё.

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

У тебя какая-то немотивированная deb-офобия,

Ну неужели я за два дня недостаточно аргументировал свою дебофобию. Не верю.

лишь бы не стандартные общепринятые и популярные

Винда популярная. Давай-ка на ней посиди. Тоже аргумент нашел. Надо использовать правильное а не популярное.

якобы программы и заголовочные файлы нельзя ставить одним ПМ-ом

Нельзя, это нарушает кучу принципов включая юникс-вей.

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

Ну вот и разрабатывай в арче и сиде, и «деплой» на них же, что бы это не значило.

Странный выбор, конечно, завязываться на такой лютый свежак, но дело твое, может к концу разработки оно уже и в RHEL-10 будет.

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

Ну вот и разрабатывай в арче и сиде, и «деплой» на них же, что бы это не значило.

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

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

якобы программы и заголовочные файлы нельзя ставить одним ПМ-ом

Нельзя, это нарушает кучу принципов включая юникс-вей.

Когда надо глупость чем-то умным прикрыть, почему-то все вспоминают про UNIX-way.

ПМ занимается сборкой и установкой программного обеспечения. Ставить хедеры 100% его задача.

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

Я не могу разрабатывать в одной системе а работать в другой.

Ну так сделай их одной системой, раз ты такой капризный и ограниченный.

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

Хедеры - это не программное обеспечение. Это текстовый документ. Ты же не ставишь .doc аптом? А почему хедеры надо?

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

Можно написать коллективное письмо к авторитетам юникс-вея и попросить разъяснить, должен ли один и тот же ПМ ставить программы и заголовочные файлы %)

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

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

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

Какая разница, в каком формате. Любой формат редактируется при желании и его можно обозвать офисным.

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

Хедеры - это не программное обеспечение. Это текстовый документ.

Заголовочные файлы являются частью программного обеспечения, версионируются и распространятся вместе с ним и нужны для сборки зависимого ПО в паре с соответствующей версией библиотеки. Сборки, на секундочку, ПМом.

А ты предлагаешь распространять их мимо ПМа? А кто будет обеспечивать синхронизацию версий? Discoverability? Добычу их непонятно откуда, с теми же дистрибутивными патчами? Санта-Клаус? Охренеть у тебя UNIX-way.

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

А ты предлагаешь распространять их мимо ПМа?

Ну что ты опять эту хрень десятый раз начинаешь. Я ничего не предлагаю распространять. Я предлагаю ставить мне на машину разработчика.

Распространять пользователям - это отдельная проблема и ПМ языка ее не решает.

Добычу их непонятно откуда, с теми же дистрибутивными патчами?

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

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

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

А откуда ты знаешь какая задача - моя? Ты думаешь я все проблемы своей жизни в одном треде на ЛОРе излагаю?

Тут обсуждается частная задача. Конечно не создания дистрибутива.

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

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

Ну все, здесь, на границе с миром единорогов и бабочек, я с Вами распрощаюсь. Было… интересно, спасибо!

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

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

А где в нём написано, что должен быть один единственный расово верный дистр?

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

Везде. Один дистр это проще чем сто. Вот и KISS.

CI со сборкой под ворох дистров это дикое нарушение KISS, вместо того чтобы просто собрать софтину ее раскорячивают 10 раз на чуть более разных версиях библиотек. А все почему?

Потому что неправильные пакетные менеджеры, смешав задачи, заставляют пользователя выбирать дистрибутив под задачу. Потому что они недостаточно гибки, чтобы можно было создать один дистрибутив под все задачи.

Так порождается зоопарк, а потом порождаются адовые костыли типа CI со сборкой под ворох дистрибутивов.

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

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

Ну так и кто запрещает тебе пользоваться слакой?

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

Мне - никто, но мой гордый переход на что-либо не решает мировых проблем.

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