64-bitowe binarki w /usr/lib

Tomasz Pala gotar at polanet.pl
Sat Jul 1 02:59:11 CEST 2017


On Fri, Jun 30, 2017 at 13:50:20 +0200, Adam Osuchowski wrote:

>> No i powiedz mi, gdzie jest 'prawidłowiej'?
> 
> IMHO w /usr/lib64 ale to wyłącznie ze względu na multiliba.

multilib dotyczy .so, prywatne moduły przychodzące z binarką się nie
łapią pod ten termin. Owszem, można zainstalować binarki w różnych
architekturach... ale to koszmar.

> Na systemie
> 64-bit only osobiście mógłbym mieć wszystko w /usr/lib. Przynjamniej
> dopełnianie w shellu byłoby prostsze.

Jakie ma znaczenie, czy system jest mieszany czy czysty, gdy git-core
masz jeden pakiet?

>> W takim razie ta lokalizacja jest bez znaczenia.
> 
> Owszem, z dokładnością do multiliba, jak wyżej. I pytanie co oznacza,
> że jest bez znaczenia: że każdy może sobie wybrać co mu się podoba czy
> że wybieramy którąś z nich ale jedną, żeby było spójnie?

Albo zrobimy libexec, który do tego służy, albo należy tę kwestię po
prostu zignorować - bo ani nie powoduje realnych problemów, ani nie jest
nieprawidłowo.

>> 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.
> 
> Chyba nie rozumiem. Sam stwierdziłeś, że na rpmie się multiliba nie robi.
> Zgoda. Ale skoro ,,ważność'' nie jest istotna, to na niczym się w takim
> razie nie powinno robić.

No właśnie. Więc /usr/libexec/rpm, /usr/libexec/mc, /usr/libexec/git.
Albo niech sobie ląduje gdzie chce, bo to jest i tak bez znaczenia.
Robienie roboty tylko dla samej roboty jest bez sensu - a ustalanie
lokalizacji tego typu plików albo będzie wprowadzało dodatkowy porządek
(libexec), albo będzie zbędną kosmetyką (lib czy lib64).

>> 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...
> 
> Pisząc tu ,,współdzielone'' masz na myśli ogólnie biblioteki .so czy te,
> które są używane przez więcej niż jeden pakiet? Bo jeżeli to drugie, to

Mam na myśli binarki, które udostępniają publiczne ABI i są 'legalnie'
uruchamiane przez ZEWNĘTRZNE aplikacje (nie: inny pakiet z tego samego
drzewa). Czyli nawet nie wszystkie .so, a jedynie mniej-więcej te, do
których są dostępne devele.

> w przypadku gita czy dovecota te binarki to są właśnie dokładnie własne
> moduły i dlatego jakby był jeszcze możliwy trzeci katalog na ich
> umiejscowienie (poza lib i lib64) to bałagan byłby jeszcze większy.

To mamy chyba rozbieżne definicje 'bałaganu'. Powiedz mi - co binarki
gita robią w /usr/lib*? Czy gdyby /usr/share/doc/git-* przenieść również
do /usr/lib, czyli zlikwidować jeden katalog, to zmniejszymy bałagan?
Była kiedyś dystrybucja, która chciała pakietować każdy pakiet w swoim
katalogu, a'la windows.

> Ja bym powiedział raczej, że było dobrze i w pewnym momencie ktoś ten
> bałagan celowo wprowadził:
> 
> https://git.pld-linux.org/?p=packages/git-core.git;a=blobdiff;f=git-core.spec;h=ad97d6bf6d5d1780af42cef74059fd5e76c3cdcd;hp=ef53117014cd23cbf07dae6cf3a611874876bb6f;hb=6743dd7eda7fdf45a0e70c079ac80440814754e9;hpb=ad39aec1a27ea283c19a4c450fa18d37ab0a7d28

Ale jak wprowadził bałagan? Skoro już ustaliliśmy, że jest bez
znaczenia, czy będzie lib czy lib64, to poziom bałaganu się tym commitem
nie zmienił. A gdyby to przenieść do libexec, to by się zmniejszył - bo
od razu byś wiedział, gdzie te pliki być POWINNY.

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


More information about the pld-devel-pl mailing list