Автор Тема: Статические библиотеки gcc  (Прочитано 405 раз)

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 954
Решил собрать программку со статическими библиотеками.
Не могу найти ни где :
 $ ls /usr/lib64/ | grep libmysqlclient
libmysqlclient.so
libmysqlclient.so.21
libmysqlclient.so.21.2.29

В интернете нашел :
https://www.linuxquestions.org/questions/red-hat-31/install-libmysqlclient-a-4175444835/#post4866285

Это единственный вариант ??

А как потом за собой удалить корректно после сборки :
# ln -s libmysqlclient.so.16.0.0 libmysqlclient.a

# rm /usr/lib64/libmysqlclient.a
?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 471
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Статические библиотеки gcc
« Ответ #1 : 04.10.2022 15:14:32 »
Можно самому пересобрать MySQL используя spec

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 954
Re: Статические библиотеки gcc
« Ответ #2 : 04.10.2022 15:20:52 »
Можно самому пересобрать MySQL используя spec

Побаиваюсь я что то .. нету опыта ..

А сообществу может быть полезна эта статическая библиотека ? Может собрать в репке ?

То что у меня сейчас :
$ rpm -qa | grep libmysqlclient
libmysqlclient21-8.0.29-alt1.x86_64
libmysqlclient21-devel-8.0.29-alt1.x86_64
« Последнее редактирование: 04.10.2022 15:24:14 от him »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 471
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Статические библиотеки gcc
« Ответ #3 : 04.10.2022 15:21:53 »
Не , она не нужна

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 954
Re: Статические библиотеки gcc
« Ответ #4 : 04.10.2022 15:27:00 »
Хорошо. Как это сделать ?
Без последствий для системы ..

ссылку уже нашел ..
https://www.altlinux.org/Spec

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 471
  • Учиться .... Телепатами не рождаются, ими ....
    • Email


Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 471
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Статические библиотеки gcc
« Ответ #7 : 04.10.2022 15:38:48 »
Взять src.rpm , закомментировать disable static, или как он там называется, пересобрать пакет

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 471
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 240
Re: Статические библиотеки gcc
« Ответ #9 : 09.10.2022 10:37:16 »
А сообществу может быть полезна эта статическая библиотека ?
В Linux сформировано мнение, что линковать следует исключительно с .so. Объясняют разнообразно: от экономии места на диске до заботы о безопасности пользователя (.so обновить проще, чем пересобрать приложение). Если копнуть вопрос чуть глубже, то можно наткнуться на ограничение в ряде лицензий. Так что мало смысла спрашивать, технический вопрос упирается в идеологию. Tor линкуют статически, поскольку это требование безопасности (усложняет атаку «человек посередине» простым внедрением библиотеки).

Оффлайн him

  • Завсегдатай
  • *
  • Сообщений: 954
Re: Статические библиотеки gcc
« Ответ #10 : 10.10.2022 08:36:51 »
В моем случае. Компилировал программку на cpp в р8.
Перешел на р10. Запускаю.. пишет нету такой то библиотеки.
Смотрю, с 18 на 21 по моему версию обновилась.
Ну и как следствие не запускается.
До установил, хорошо исходники остались.
Помучился с настройками компилятора, так как уже забыл что и как это было.
Программки маленькие, но их много накопилось, каждый раз все собирать и вспоминать времени нету, не удобно.
Хотелось раз собрать, а далее скопировал вставил и запустил.
Так как новшества в 21 все равно мною пока не востребованы. 

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 240
Re: Статические библиотеки gcc
« Ответ #11 : 11.10.2022 08:28:12 »
До установил, хорошо исходники остались.
Помучился с настройками компилятора, так как уже забыл что и как это было.
Что бы это понять, надо самому написать исходники и потерять их пару раз. Майнтайнеры в дистрибутивах берут исходники в готовом виде и собирают, собирают, собирают - в этом их работа. И с этой своей колокольни смотрят на всё остальное. Потому стоит поступать, как считаете нужным, а не спрашивать мнение людей, кто сам пишет мало. По-моему, один раз собранная программа должна работать - вот что следует обеспечивать со стороны операционной системы, а не заставлять автора приложения пересобирать его каждый раз.
« Последнее редактирование: 11.10.2022 08:35:28 от trs »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 471
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Статические библиотеки gcc
« Ответ #12 : 11.10.2022 08:44:08 »
. По-моему, один раз собранная программа должна работать - вот что следует обеспечивать со стороны операционной системы, а не заставлять автора приложения пересобирать его каждый раз.

Ну, это нереально. Автор может опубликовать своё приложение, тогда мантейнеры могут адаптировать его под конкретный дистрибутив, иначе приложение устаревает в течении нескольких лет (с обновлением тулкит)

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 240
Re: Статические библиотеки gcc
« Ответ #13 : 11.10.2022 09:12:36 »
. По-моему, один раз собранная программа должна работать - вот что следует обеспечивать со стороны операционной системы, а не заставлять автора приложения пересобирать его каждый раз.

Ну, это нереально. Автор может опубликовать своё приложение, тогда мантейнеры могут адаптировать его под конкретный дистрибутив, иначе приложение устаревает в течении нескольких лет (с обновлением тулкит)
Правило №1 Linux kernel, оно же Золотое правило: “don’t break userland”.
То есть ядро гарантирует доступность системных вызовов и неизменность их поведения для приложений пользователя, возможно лишь добавление новых.

Соответственно, автор может слинковать своё приложение статически, что бы не зависеть от нарушающих золотое правило. Автор может написать свой «тулкит». Есть и другие варианты, хватило бы ресурсов.