Wie starte ich eine neue Linux Distribution? [geschlossen]

28

Einige meiner Freunde und ich sind daran interessiert, eine neue Linux-Distribution zu starten. Wie machen wir das? Was müssen wir planen?

Hintergrundgeschichte

Ich vertrete eine Community von Linux-Systemadministratoren / -Implementierern, die unter anderem folgende Bedürfnisse haben:

  • Eine bestimmte "schlanke" Kernelkonfiguration
  • Paketmanagement, das unseren Anforderungen entspricht
  • Für unsere Anwendungsfälle optimierte Binärpakete
  • X-less System

Auf den Punkt gebracht: Wir benötigen eine speziell konfigurierte Linux-Distribution in Produktionsqualität, die ausschließlich als paravirtualisierte Produktionsserver ausgeführt werden kann . Anstatt jedes Mal, wenn wir einen VM-basierten Server benötigen, durch alle Rahmen und Schleifen zu springen , hätten wir gern ein halbfertiges System, das für seine Umgebung optimiert ist.

Da es sich bei diesen VMs um Produktionsserver handelt, ist Stabilität ein Muss, und die verfügbaren Paketverwaltungssysteme, die uns derzeit bekannt sind, bieten keine Gewähr. Zyppund Conarysind die am nächsten an unseren Bedürfnissen, aber noch einmal in einigen Punkten vermissen.

pepoluan
quelle
1
Was genau wollen Sie von einem Paketmanager? Was sind für Sie die Schwächen von APT, Zypp, Conary, Yum ...?
Tshepang
3
Anstatt eins nach dem anderen zu erklären, ist dies das, wonach wir suchen: (1) mehrere Ebenen von 'Stabilitäten' anstelle von simplen "Testing-vs-Stable" (2) intelligenten Abhängigkeitslösern (3) Multi-Versionierung (in ein begrenzter Sinn, eine Art wie Gentoo Portage SLOTs) (4) Rollback (optional, aufgrund der Snapshot-Fähigkeit von VM-Hypervisoren, aber immer noch nett zu haben)
pepoluan
1
Können Sie erklären, was mehrere Stabilitätsstufen bedeuten?
Tshepang
2
Ist aptitudeder Abhängigkeitslöser von weit genug fortgeschritten?
Tshepang
10
Jede Anforderung, die Sie gestellt haben, wird erfüllt, indem Sie einfach eine vorhandene Distribution auswählen und Ihr eigenes Repository (mit möglicherweise einem alternativen Paketmanager) mit Ihrem eigenen definierten Release-Zyklus erstellen. Sie haben diese Option abgelehnt und auch die LFS-Option abgelehnt. Außerdem wird der Paketmanager fälschlicherweise als kritischer Stabilitätsfaktor angesehen. Dies ist lediglich ein Hilfswerkzeug, das an sich wenig mit der allgemeinen Systemstabilität zu tun hat.
Forcefsck

Antworten:

22

Vielleicht möchten Sie sich Linux From Scratch ansehen :

Linux From Scratch (LFS) ist ein Projekt, in dem Sie Schritt für Schritt Anweisungen zum Erstellen Ihres eigenen angepassten Linux-Systems erhalten, das vollständig aus dem Quellcode stammt.

tommytom
quelle
Fast, aber nicht ganz. Das ist eher so, als würde man ein benutzerdefiniertes Linux für den eigenen Bedarf erstellen. Aber meine Community möchte ein ganzes Framework, z. B. benutzerdefinierte Kernel, benutzerdefinierte Init, benutzerdefinierte Paketverwaltung usw. Wie fangen wir an?
Pepoluan
4
Mit LFS zu beginnen und ein ganzes Framework darauf aufzubauen, wie von Ihnen beschrieben, ist eigentlich eine Definition von "Starten Ihrer eigenen Linux-Distribution".
Forcefsck
2
@pepoluan: dazu gibt es keinen guide. Sobald Sie eine laufende Shell und Core-Utils installiert haben, haben Sie ein Betriebssystem. Für den Rest kopieren Sie entweder aus anderen Distributionen oder erfinden alles neu. In jedem Fall ist das Erstellen einer neuen Distribution sehr aufwändig und es gibt keine einfachen Antworten darauf.
Forcefsck
1
@forcefsck danke für die Warnung :) ... ich stimme zu, es wird zweifellos ein großes Unterfangen sein. Schade, es gibt keine "Kriegsgeschichten" oder ähnliches, nur um keine Fehler zu wiederholen.
Pepoluan
2
@pepoluan Ich wette, es gibt Kriegsgeschichten, nur nicht so sauber verpackt. Schauen Sie sich zum Beispiel Archive von Mailinglisten an, die in den Anfängen verschiedener Distributionen erstellt wurden.
Tshepang
9

Sie werden ein minimal laufendes System benötigen, wahrscheinlich von einer anderen Distribution, um Ihre eigene Distribution mit genug "booten" zu können, um mindestens gcc oder einen anderen C-Compiler zum Laufen zu bringen. Zunächst müssen Sie entscheiden, welche Kernbibliotheken (einschließlich libc) und welche Software den Basisstatus "ohne installierte Pakete" Ihres Systems enthalten. Rufen Sie dann den Quellcode für diese Bibliotheken und Software ab, kompilieren Sie sie, stellen Sie sicher, dass die gesamte Software die benötigten Bibliotheken findet, und erstellen Sie Ihre Basisumgebung auf niedriger Ebene.

Im Grunde genommen die Bootstrap - Umgebung wird nicht mehr als ein laufenden Kernel und das absolute Minimum Sie brauchen eine grundlegende Shell, einen C - Compiler zu erhalten, und grundlegenden Dinge wie rm, cp, tarund Sachen wie das Arbeiten. Das nächste, was Sie danach zum Laufen bringen sollten, ist Perl. Nachdem Sie Ihr Basissystem erstellt haben, müssen Sie es beibehalten und einige Startskripten erstellen, die das System vom ersten Start zu einer verwendbaren Shell mit einem Compiler führen.

Dann müssen Sie ein Paketsystem und -format entwerfen / schreiben und den Quellcode in die Software herunterladen, die Sie verpacken möchten, kompilieren und verpacken und ein robustes Verteilungssystem für Ihre Pakete entwerfen. Nichts davon ist trivial. Viel Glück.

LawrenceC
quelle
Ahh, sehr informativ, danke! Ja, ich habe keine Illusion, dass dies ein einfaches Unterfangen wäre. Zum Glück bin ich nicht allein. Ich werde die Gemeinschaft sammeln und wir werden streiten, wer was tun wird :)
pepoluan
0

Wenn Sie nur eine Reihe von Standardanwendungen benötigen, können Sie eine vorhandene Distribution wie Ubuntu mit einfachen Werkzeugen anpassen. http://maketecheasier.com/reconstructor-creating-your-own-ubuntu-distribution/2008/07/05

balki
quelle
Mmm ... nicht wirklich. Sie sehen, ich bin Teil einer Community von Benutzern, deren Bedürfnisse von keiner existierenden Distribution wirklich erfüllt werden, insbesondere in Bezug auf die Kernelkonfiguration und die Paketverwaltung. Wir sind alle mit Linux vertraut und haben genügend Zeit, um zu versuchen, eine eigene Distribution zu erstellen.
Pepoluan
0

Sie haben nicht wirklich angegeben, was Sie vom Paketmanager erwarten.

OpenSuse bietet jedoch einen Build-Service, mit dem Sie problemlos jedes Paket (einschließlich des Kernels) anpassen und sogar eine ganze Distribution erstellen können.

http://en.opensuse.org/Portal:KIWI

https://build.opensuse.org

Lass mich sein
quelle
-1

Dort gibt es eine Seite, auf der Sie alle Distributionen sowie eine einfache Beschreibung und Übersicht sehen können. So hilft es Ihnen, die beste zu wählen:

http://distrowatch.com/

Aber zum Starten empfehle ich Ubuntu oder Kubuntu. so einfach und benutzerfreundlich.

shgnInc
quelle
ubunut und kubuntu sind bei der optimierung der umgebung virtueller maschinen sehr stabil und definitiv keine gute idee, auch wenn es sich um distro watch handelt.
Kiwy
Ich schlage es nur vor, um ihm einen Anhaltspunkt zu geben, um sich mit ihnen vertraut zu machen.
ShgnInc