Udostępniaj zainstalowane biblioteki między Debianem a Ubuntu

19

Próbuję podzielić dysk twardy na partycje i zainstalować Ubuntu i Debian. Nie muszę więc zachowywać żadnych starych danych. Zostaną wykorzystane najnowsze wersje obu systemów operacyjnych.

Próbuję zrozumieć, w jaki sposób mogę instalować biblioteki, programy itp. Poprzez apt w Ubuntu i nie instalować go ponownie na Debianie i odwrotnie. Tutaj zakładam, że wszystko, co działa na Ubuntu, będzie działało na Debianie i, mam nadzieję, również na odwrót.

Wiem, że mogę dzielić / home. Ale to nie tam będzie większość bibliotek / programów. Czy powinienem umieścić / usr na innej partycji i zamontować / usr na obu systemach operacyjnych? A może po prostu muszę zamontować / usr / local? Czy jest na to lepszy sposób?

dev_nut
źródło
11
Twoje założenie jest błędne.
Anwar
10
Twoje założenie jest bardzo błędne.
Rinzwind
4
Hmmm, to pytanie zmniejszające liczbę głosów wprowadza mnie w błąd. Czy nie jest to uzasadnione pytanie wypełnione nadzieją i utopijnymi fantazjami wszystkich wariantów debiana dzielących pliki binarne (w końcu to ten sam komputer o tej samej architekturze)?
dev_nut
4
Głosowanie jest moje. Uważam to za uzasadnione pytanie. Nie każdy jest tak doświadczony. A jeśli nikt nie zadaje tego rodzaju pytań, gdzie byśmy skończyli?
Rinzwind
1
Głosowano, ponieważ jest to uzasadnione i nie wszystkie niedoświadczone pytanie.
Jos

Odpowiedzi:

16

Czy jest na to lepszy sposób?

  • Zainstaluj całe oprogramowanie używane jako przystawki.
  • Zainstaluj całe używane oprogramowanie na partycji o nazwie /opt/. Prawdopodobnie będzie to instalacja źródłowa ( tar.gz).

Te 2 metody instalacji można udostępniać między dystrybucjami. Ostatni musisz dodać coś do ŚCIEŻKI lub skopiować usługę do głównego systemu.

Nie możesz współdzielić / usr / lub / var / między 2 różnymi instalacjami. Możesz jednak udostępnić / usr / local /. 2 dystrybucje mogą mieć różne wersje bibliotek, więc może być konieczne zainstalowanie kilku bibliotek w jednym z tych systemów. Ale te kilka kilobajtów, które oszczędzasz, nie jest warte czasu, który poświęcisz na to. Ponadto prawdopodobnie nadal będziesz uszkadzał którykolwiek system.

Rinzwind
źródło
Ta odpowiedź w rzeczywistości próbuje dać mi jakieś rozwiązania. Kiedy mówisz, że nie powinienem udostępniać / usr, czy nie powinienem tego robić nawet z tymi samymi wersjami ubuntu?
dev_nut
@dev_nut Nie należy udostępniać /usr/*między dwoma systemami; możesz się nimi dzielić, /usr/local/*choć nadal istnieje ryzyko, że „lokalne” oprogramowanie będzie do pewnego stopnia niezgodne między dwoma wydaniami. (więc twoje fstabreguły zostałyby /usr/local/*zamontowane na innej partycji, a następnie byłyby udostępnione w obu)
Thomas Ward
1
@dev_nut rzecz jest. 2 różne wersje oprogramowania w 2 systemach operacyjnych spowodują awarię jednego z nich. Ponadto: mogą występować między nimi różnice w konfiguracji dla domyślnych użytkowników, którzy psują rzeczy (użytkownicy znajdują się w / etc / password). Problemem może być ten sam użytkownik z innym UID i GUID.
Rinzwind
11

Jedyną rzeczą, której nigdy nie robisz, jest łączenie repozytoriów Debiana i Ubuntu, bibliotek systemowych, programów itp. To spowoduje poważne uszkodzenie obu systemów. (Dotyczy to również mieszania Ubuntu i nieoficjalnych wariantów, takich jak Mint; i chociaż teoretycznie możesz mieszać Kubuntu i Ubuntu na przykład 16.04, po prostu nie powinieneś i powinieneś trzymać ich oddzielne systemy podstawowe).

Ubuntu jest w znacznie szybszym cyklu wydawniczym z dużo bardziej zaktualizowanymi bibliotekami oprogramowania niż Debian. Odwrotność jest również prawdą - Debian nie ma zaktualizowanych bibliotek itp.

Mieszanie i dopasowywanie spowoduje rozbicie systemów. Dlatego nie udostępniacie sobie bibliotek.

Aby to zrobić, zepsuje oba systemy. Nie próbuj współdzielić bibliotek i programów między dwoma systemami.

Chociaż technicznie możesz współużytkować katalogi domowe użytkowników w różnych wydaniach i dystrybucjach, możesz mieć dziwne problemy z jednym lub kilkoma systemami operacyjnymi z powodu różnych wersji konfiguracji różnych wersji oprogramowania w każdym systemie.

Thomas Ward
źródło
3

Jeszcze jeden punkt, który chcę dodać do istniejącej odpowiedzi, dotyczy apti dpkg, w jaki sposób obsługują informacje o zainstalowanym oprogramowaniu.

dpkg , która jest podstawową aplikacją do zarządzania pakietami, używa /var/lib/dpkg/statuspliku do przechowywania i pobierania informacji o pakietach debian zainstalowanych w systemie. Jest to bardzo specyficzne dla twojego biegania. Nawet pojedynczy wpis może pomieszać cały proces zarządzania pakietami.

Powiedzmy na przykład, że masz 3.18zainstalowaną wersję dla nautilusUbuntu. Następnie, jeśli podzielisz się tymi informacjami, debian zobaczy, że ma to 3.18dla Nautilusa, nawet jeśli tak naprawdę jest 3.16. To bardzo uproszczony przykład. Ale może być bardziej złożona. Na przykład debian może zobaczyć, że masz zainstalowane pakiety z nieistniejącego repozytorium bez uzasadnionego powodu i spróbuje je usunąć i odwrotnie.

Odpowiedź Rinzwinda ilustruje jeden prosty sposób obejścia wspólnej aplikacji, tj. Użycie samodzielnych aplikacji dystrybuowanych jako pakiety snap lub flat-pak. Nie są to biblioteki współdzielone, ale jeśli potrzebujesz czegoś w rodzaju wspólnej aplikacji, która może spełnić Twój cel.

Anwar
źródło