Jak prawidłowo rozwidlasz dystrybucję Linuksa? [Zamknięte]

19

Zastanawiałem się, jak przejść do tworzenia dystrybucji Linuksa. LFS wydaje się przesadą, wolałbym rozwidlić istniejącą dystrybucję. Wiem, że istnieje kilka „respin” aplikacji, ale wydaje się, że pozwalają one jedynie na dodanie dodatkowych aplikacji do zainstalowania, nie pozwalają na modyfikację repozytoriów, konfiguracji itp.

To, czego szukam, to wiedza o tym, jak wziąć istniejącą dystrybucję i znacząco ją zmodyfikować, najlepiej modyfikując Fedorę lub Mennicę, chociaż może być konieczne użycie starszego jądra.

Doceniamy ogólne porady, w jaki sposób zmodyfikowałbyś pliki, które dostarczasz? Z jakich narzędzi korzystasz? Jak owinąłbyś to w liveCD? Jak prowadzisz repozytorium?

To nie jest imię
źródło
Oznaczenie do zamknięcia jako zbyt szerokie.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:

12

Możesz stworzyć dystrybucję, po prostu tworząc własne repozytorium pakietów z dostosowanymi pakietami. To wszystko, czym jest dystrybucja. Nie ma znaczenia, jak duże lub małe są zmiany.

Więc jeśli chcesz rozwidlić dystrybucję, po prostu skopiuj całe repozytorium źródłowe, zmień dowolne pakiety i opublikuj repozytorium jako własne (upewniając się, że nie naruszasz żadnych umów licencyjnych dystrybucji, z której kopiujesz) .

To z definicji tworzy nową dystrybucję.

Patrick
źródło
Jak byś zawinął to w płytę CD? Jak byś go hostował?
Not a name
1
Zależy od systemu pakowania, ale będą mieli sposoby na tworzenie repozytoriów CD i instalatorów oraz hosting sieci.
XTL
Jak powiedzieć menedżerowi pakietu, aby używał zaktualizowanego pakietu zamiast pakietu nadrzędnego dystrybutora? Jak zarządza się zależnościami, kiedy trzeba odbudować pakiety, ponieważ coś zmieniło się w dystrybucji nadrzędnej?
7

Zobacz to pytanie i inne pytanie .

Klasyczna odpowiedź brzmi: „zacznij od Linuksa od zera”, idź stamtąd. I to jest prawidłowy sposób: wiele dystrybucji wywodzi się na przykład z Debiana. Wiele dystrybucji wywodzi się z systemu Red Hat lub Slackware lub evan Arch Linux.

Powiedziałbym, że musisz mieć naprawdę jasny i możliwy do obrony cel dla tej dystrybucji. Wcześniej dystrybucje miały takie cele, jak „pasuje na pojedynczą dyskietkę” lub „działa na żywo z płyty CD”, lub „opracować menedżera pakietów, który rozwiązuje wszystkie problemy”.

Jednak nie jestem pewien, czy to wystarczy w dzisiejszych czasach. Prawie każda dziwna nisza z brodą ma swoją dystrybucję: test penetracji ma BackTrack, całkowicie darmowy ma gNewSense, linst może zostać przedłużony na czas nieokreślony. Będziesz musiał mieć więcej niż niszę, w przeciwnym razie po prostu zrób Linux From Scratch i skończ z tym.

Bruce Ediger
źródło
W świetle tej odpowiedzi (lub komentarza) zmodyfikuję pytanie, aby było bardziej jasne.
Nie ma imienia
Wygląda na to, że LFS jest przeznaczony dla maszyn x86_64. Nie wydaje mi się dobrym pomysłem (dla mnie) próba zbudowania dystrybucji dla RaspberryPi 3B + od podstaw. Wygląda na to, że wiele kół zostanie wymyślonych na nowo. Nie wspominając już o wszystkich problemach z portowaniem menedżera rozruchu i jądra na płycie.
4

Fedora jest w rzeczywistości bardzo prosta (choć niełatwa ) do rozwidlenia lub „remiksowania”, jak to nazywają. Definicje repo znajdują się w fedora-release. Konfiguracje są spakowane z samymi aplikacjami, więc będziesz musiał je odbudować z SRPM. Po zebraniu pakietów, z których chcesz utworzyć widelec, biegnij, createrepoaby zamienić je w rzeczywiste repo. Następnie możesz użyć narzędzi wymienionych na wiki, aby wygenerować media z repozytorium.

Ignacio Vazquez-Abrams
źródło
2

Mogę na to odpowiedzieć! Dystrybucja GNU / Linux to połączenie oprogramowania GNU i innych źródeł. Przynajmniej chcesz rozwidlić pakiety oprogramowania, które chcesz zmodyfikować, zmodyfikować je, ponownie skompilować, a następnie ponownie rozpowszechnić widelec wybranej dystrybucji .

To jednak nie wszystko, ponieważ musisz bardzo uważać na znaki towarowe i prawa autorskie do rozpowszechnianej dystrybucji. (Nie jestem prawnikiem), ale radzę zmienić markę dystrybucji, którą tworzysz, ponieważ (prawdopodobnie) nie chcesz kojarzyć dystrybucji z nadrzędną (nie jestem pewien, czy to, ale może to powodować problemy z dystrybucją nadrzędną. Jeśli chcesz powiedzieć, że konkretnie rozpowszechniłeś konkretną dystrybucję, możesz wyraźnie o niej wspomnieć, ale nie używaj jej znaków towarowych. Ponownie nie jestem prawnikiem).

Musisz także znaleźć sposób na dostarczenie repozytorium z oprogramowaniem dla swojej dystrybucji, a także dowiedzieć się, czy chcesz, aby Twoje repozytoria istniały poza głównymi dystrybucjami, czy też były jedynymi dla Twojej dystrybucji, a także znaleźć sposoby na to, aby nie złamać dystrybucja, gdy ktoś ją zaktualizuje.

Oprócz tego istnieją również 3 pliki, które możesz jawnie chcieć zmienić, są to /etc/issue(być może /etc/issue.netteż), /etc/os-releasea /etc/lsb-releaseprzy ostatnim trzeba zmienić, aby zmienić listę GRUB-a dla twojej dystrybucji. Pamiętaj, aby sprawdzić /etc/default/grublinię GRUB_DISTRIBUTOR. Tak powinno byćGRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null

To, jak podejdziesz do kwestii oprogramowania, zależy wyłącznie od ciebie (odejmowanie i dodawanie oprogramowania), ale twoja nowa dystrybucja powinna być już gotowa (nie wiem, czy w tym momencie coś zapomnę).

Jednak jeśli chcesz mojej osobistej opinii, wolałbym stworzyć nową dystrybucję linuksa po Linuksie od zera , a następnie rzucić menedżera pakietów na wierzch, zamiast bezpośrednio rozwidlać dystrybucję. Rozwidlenie dystrybucji ma tę zaletę, że zyskujesz przewagę, ale jeśli zdecydujesz się usunąć rzeczy, może to bardzo szybko stać się bólem głowy, ponieważ nigdy nie możesz być pewien zależności w dystrybucji rodzica.

NlightNFotis
źródło
0

Kiedy wchodzisz na Linuksa, modifyingstaje się rzeczą na bardzo dużą skalę.

Powinieneś stworzyć sobie wyraźne granice tego, co chcesz dodać, usunąć lub zmodyfikować z określonej dystrybucji. jeśli tego nie zrobisz, będziesz się zastanawiać bez końca na każdym kroku. (z doświadczenia).

Hanan N.
źródło
przegłosowano, ponieważ tak naprawdę nie mówi to nic bardzo przydatnego.
strugee