Size: a a a

2021 April 13

П

Пашечка in pro.bash
Извините, сложно, непонятно, а можно для чуть более тупых, как я? 😅
источник

аᶘ

асоциальный пикотран... in pro.bash
Ты спрашиваешь «Сопсна, вопрос: как нашелся этот симлинк? Что на него указало? Почему не "libzmq.so"?».
Название "libzmq.so.5" нашлось прямо внутри файла libzmq.so.5.1.1, на который ссылается libzmq.so.
То есть в процессе линковки при указании ключа -lfl нашёлся симлинк libzmq.so, ссылающийся на файл libzmq.so.5.1.1, в ELF-заголовках которого чётко прописано "ищи файл с названием libzmq.so.5".
источник

П

Пашечка in pro.bash
А, я понял! Спасибо огромное. Половина вопроса решена. Будете проездом в Твери - с меня пиво или печеньки) И я не шучу)
источник

аᶘ

асоциальный пикотран... in pro.bash
А вот вторая часть вопроса про исправление: перепиши в бинаре его rpath, чтобы библиотека искалась локально.
patchelf --set-rpath
источник

аᶘ

асоциальный пикотран... in pro.bash
→ patchelf --set-rpath . a.out
→ ldd a.out
       ...
       libfl.so.2 => ./libfl.so.2 (0x00007fdb4103c000)
источник

аᶘ

асоциальный пикотран... in pro.bash
Но вообще я не очень понимаю, почему бы не скомпилировать приложение статически, засунув в него все необходимые для его работы библиотеки.
Тогда достаточно будет притащить только один бинарь на чужую систему, чтобы запустить софт.
источник

П

Пашечка in pro.bash
Увы, тут уже не сработает: целевая ОСь - Астра Линукс (поэтому, собственно и app-local distribution), а там в репозиториях patchelf я сейчас не нашел.

А статика не подходит, потому что таких проблемных библиотек много, а всё наше ПО - больше миллиона LoC и пол гига бинарей

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

аᶘ

асоциальный пикотран... in pro.bash
Я таки тоже занимался сборкой и подготовкой к сертификации софта под Астру, в том числе с огромной кодовой базой, которая тянется с конца 90-х :)
И у нас таки удавалось собирать всё статически (с бинарями под 200 мегабайт), но окей, я не очень понимаю проблему всё равно.
Даже если у тебя собраны бинарники под астру астровским тулкитом, то что тебе мешает взять эти бинари в свою линуксовсую систему, где есть patchelf?
Или даже просто ручками собрать patchelf на астре и юзать его прямо оттуда?
источник

П

Пашечка in pro.bash
Если собирать его ручками, его надо будет сертифицировать)

Я тут пару месяцев назад mesa для amdgpu пересобирал для сертификации на Астру, переплевался, в итоге мы плюнули и вместо нормальных deb-пакетов подготовили самораспаковывающийся tar.gz, который пишет себя в /usr/local вместе с хедерами и прочим. А то собирать всё по человечески выходило слишком проблемно.
источник

D

Dima in pro.bash
Почему Bash при раскрытии * не учитывает там файлы начинающиеся с .?
источник

D

Dima in pro.bash
Например есть директория с git, пишу в ней rm -fr *, удаляется все кроме .git файлов?
источник

🌚

🌚 YupiRex in pro.bash
примерно с 1:22 до 1:34, было интересно, все что до этого — скорее Administrator Linux newbie
источник

аᶘ

асоциальный пикотран... in pro.bash
Исторически сложилось? :)
источник

🌚

🌚 YupiRex in pro.bash
там директории "." и ".."
источник

VP

Vadim "Oxyd&quo... in pro.bash
rm -rf * .*
источник

Q

Qwizzy in pro.bash
shopt -s dotglob
источник

🌚

🌚 YupiRex in pro.bash
rm -rf !(.|..)
источник

аᶘ

асоциальный пикотран... in pro.bash
источник

🌚

🌚 YupiRex in pro.bash
только нужно находиться в самой директории
источник

D

Dima in pro.bash
У мене еще какой-то праздник появился под название Разрешения доступа к связке ключей, при вызове Chrome и Chromium.
источник