64-bitowe binarki w /usr/lib

Tomasz Pala gotar at polanet.pl
Thu Jun 29 13:30:33 CEST 2017


On Wed, Jun 28, 2017 at 10:09:09 +0200, Adam Osuchowski wrote:

>> liby przychodzą w pakiecie zawierającym binarkę gita i to są bardziej
>> jego (prywatne) moduły, niż biblioteki współdzielone.
> 
> Ale to jest dokładnie ten sam przypadek co np. dovecot (znalazło by się
> jeszcze parę innych). On też ma swoje własne binarki/biblioteki
> nieprzeznaczone do użycia wprost przez kogoś/coś innego i ma je w
> /usr/lib64/dovecot.

No i powiedz mi, gdzie jest 'prawidłowiej'?

> I tego dotyczyło moje pytanie. Bibliotek współdzielonych
> na 64-bitowym systemie nikt raczej nie będzie wrzucał do /usr/lib, bo linker
> dynamiczny i tak ich tam nie będzie szukał więc byłyby wówczas bezużyteczne.

W takim razie ta lokalizacja jest bez znaczenia. I mamy różnie - dlatego
pisałem właśnie, że wg mnie to objaw zwykłego bałaganu.

>> Ktoś mógłby argumentować, że na tym się multiliba nie robi.
>> Coś jak /usr/lib/rpm.
> 
> rpm może i jest sesnownym przykładem bo to jest część core'a systemu,
> ale imho git to jest aplikacja jak każda inna.

No, rozróżnianie po 'ważności' to już przesada. Nawet wyznacznik
techniczny: 'system ma wstać bez dostępu do /usr', jest już mocno
dyskusyjny, a co dopiero jakiśtam rpm.

>> W Fedorze np. to leży w /usr/libexec/git-core i gdybyśmy chcieli mieć
>> porządek, to również tak powinniśmy to zorganizować:
>> 
>> https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html
> 
> Myślałem na libexeciem ale doszedłem do wniosku, że jeszcze jeden
> potencjalny katalog wprowadziłby jeszcze większy bałagan.

To nie jest jeszcze jeden potencjalny, a zupełnie inny - tam trafiają
prywatne moduły, a nie biblioteki współdzielone. Funkcjonalne
wydzielenie czegoś nie może zwiększać bałaganu...

Poza tym miałem na myśli coś jeszcze innego - mianowicie, jeżeli libexec
jest używany w innych dystrybucjach, to jest obsługiwany przez
buildsystemy aplikacji. Osobiście pamiętam kilka przypadków, gdy
musiałem rzeźbić prefix aplikacji, żeby pasował %_libdir zależny od
architektury. Czyli robić dodatkową robotę tylko dlatego, że nie mamy
libexec. Prawdopodobnie ktoś tej dodatkowej roboty z gitem nie wykonał i
w efekcie moduły gita zmieniły lokalizację, jak to właśnie zauważyłeś.

-- 
Tomasz Pala <gotar at pld-linux.org>


More information about the pld-devel-pl mailing list