GoboLinux

Gobolinux ist eine ungewöhnliche Linux-Distribution, die eine modernere und elegantere Philosophie verfolgt:

Es wird ein alternatives File-System verwendet, das gänzlich ohne Package-Manager auskommt.
Dies wird erreicht, indem alles was zu einem Programm dazugehört auch in ein Verzeichnis reinkommt.
Kleines Detail am Rande - Die ersten 8 GoboLinux User verwendeten KDE.

Um zb ein Perl Programm zu erstellen, erstellt man ein Recipe und spezifiziert recipe_type=yes anstelle von recipe_type=yes. Danach ruft man Compile auf.

Noch ein Wort zu "unmanaged Paths".
Unmanaged paths sind all jene Verzeichnisse die nicht in die /Programs Hierarchie gehören, wie zum Beispiel /System/Kernel, /System/Variable und so weiter.

Most of the time (if not always) you will run into unmanaged files when the program you are trying to install requires some run-time only files (/System/Variable) or kernel modules (/System/Kernel). Namely I believe fuse is trying to install his kernel module, thus you must declare it in the recipe.

BuildDependencies

Listed Abhängigkeiten auf beim Builden.

Optionen fürBuildDependencies

-h Help
Beispiele:

CreatePackage

Um ein Packet zu erstellen:
CreatePackage ProgramName
CreatePackage linux

Optionen für CreatePackage

-b verwende bzip2 Kompression
-d Development Version, nützlich für Developers
-g verwende gzip Kompression
-k keep behält die neue Version
-n setzt eine neue Version
-p persönliches Backup
-s sign signiert Packages
-t target dir, erstellt ein Package innerhalb des angegeben Verzeichnis anstatt von .
-D erstelle kein Dependencies file

ChrootCompile (deprecated)

Fast alle Pakete ausgenommen OpenOffice.org Firefox und Thunderbird wurden in Gobolinux mittels ChrootCompile kompiliert.

CompileProgram (deprecated)

CompileProgram ist der alte Gobolinux Weg ein Programm zu installieren. Es ist gewissermassen eine Abkürzung für configure && make && make install.

CompileProgram entpackt den source tarball und druckt via less, die Dateien README und INSTALL aus bevor es weiterfährt.
Dazu schaut es nach
/Files/Compile/Archives
CompileProgram ist deprecated, sprich - es sollte nicht mehr benutzt werden. Benutze stattdessen Compile, wie in Compile AppName - soweit ich allerdings weiss, funzt Compile nur mittels Recipes. Daher kann man CompileProgram ohne Probleme weiter nutzen.

Compile

Will man ein Recipe lokal kompilieren, nutzt man Compile -W foo, wobei hier "foo" der Name des Recipes ist. /Files/Compile/Archives
The dummy URL must end with the name of the Archive.

Den Linux-Kernel kann man so runterladen:
Compile -B linux
Den Perl-XML Parser kann man so installieren:
Compile Perl-XML-Parser
Mit anderen Namen:
Compile libxrandr [] --app-name Xorg --version-number 7.2
Configure Optionen zufügen:
Compile foo --configure-options "--enable-macco-is-the-only-truth"
Compile gtk+ --configure-options "--disable-libaspell"

Compile: Optionen für Compile

-b batch mode, keine Fragen werden gestellt
-c cross compiling für andere Architekturen
-e überschreibt Versionsname
-h zeigt Hilfe an
-k behält Dateien sofern das Verzeichnis bereits existiert
-n überschreibt Programmnamen, anwendbar wenn man einen anderen Programm Namen nutzen will
-v zeigt die Version an
-B wir holen nur das Quellpaket (also so wie "wget foobar"), wir kompilieren nicht
-C lässt Compile laufen, ohne ./configure auszuführen (dabei seit 012)
-I installiere das Programm NICHT
-V Info wird detailliert angezeigt
-W zu nutzen wenn keine Verbindung zum Internet besteht. Hiermit versucht man nicht, Recipes von entfernten Stellen zu holen, auch werden keine Archive geholt.
--configure-topions um Configure Options an Compile zu übergeben.
Compile dient dazu, fix fertige Recipes zu installieren.
Ein Recipe, das erstellt wird, wird automatisch nach
/Files/Compile/Store
gegeben.
Gobolinux 011 kommt mit Compile 1.0.1
Gobolinux 013 kommt mit Compile 1.7.1
Gobolinux 014 kommt mit Compile 1.9.0
Gobolinux 015 kommt mit Compile 1.10.0

Compile entpackt die Quelldatei zuerst mit dem Programm aunpack. Aunpack kümmert sich selbst um die Archive. Compile kann die Quelle tarballs herunterladen, entpacken, kompilieren und installieren. Die Scripts, die dabei zur Anwendung kommen, sind die Recipes
Gobolinux 011 war die Compile Version 1.0.1
Beispiele
Compile allegro
Archive werden hier gespeichert:
/Files/Compile/Archives/

Um das neueste Compile zu erhalten geht dies hier:
unalias Compile; Compile Compile

Wiki Eintrag zu Compile findet man hier

CompileKernel

CompileKernel versucht den Linux Kernel neu zu kompilieren. (Allerdings existiert dies nicht mehr, es ist deprecated)
Man verwendet mittlerweile nur mehr Compile
Compile linux funzt auch.

Beispiele hierzu:
Compile Linux version
Compile Linux 2.6.11.9
Compile Linux $KERNELV
Dies verwendet die .config Datei von /System/Kernel/Status/config.gz als Ausgangsunkt um eine neue .config zu erstellen.

ConfigTools

ConfigTools is a package we have created to aid on the configuration of the LiveCD for xorg.conf generation/configuration, mouse detection, GRUBs menu.lst configuration, fstab generation and listing of network interfaces.
It is used by the LiveCD package and by the Installer only, and doesnt need to be invoked by hand at any time.
In order to change the default window manager, just add:
exec xfce # into ~/.xinitrc

GetAvailable

GetAvailable hilft einem zu sehen, welche Packages und Recipes im Store vorhanden sind.
Hier ein Beispiel um zu sehen welche Pakete für XFCE erhältlich sind:
GetAvailable -t contrib_package
GetAvailable -t contrib_package | grep --ignore-case xfce

GoboPath2Ruby

wandelt Strings für Ruby um, so das Ruby Bescheid weiss, wo etwas abgelegt wird.
Ich habe noch nicht ganz verstanden, wozu das gut ist.

GetRecipe (deprecated?)

Lädt ein Recipe herunter.

GenXorgConf

GenXorgConf generiert eine default Xorg.conf für Gobolinux.
In Verbindung mit ModifyXorgConf kann man eine xorg.conf erstellen, zB
GenXorgConf | ModifyXorgConf > /etc/X11/xorg.conf
GXC | MXC > /etc/X11/xorg.conf

InstallPackage

Mittels InstallPackage installiert man neue Programme, genauer gesagt Binärpakete, in den Ordner /Programs. Befindet sich bereits ein Programm gleichen Namens dort, wird man gefragt, ob man das alte Programm behalten möchte, oder entfernen.
Beispiel dazu:
InstallPackage name.tar.bz2
InstallPackage KDE--3.1.4--i686.tar.bz2
Nachdem die Installation fertig ist, wird man informiert, welche (und ob) andere Packete notwendig sind. KDE zB braucht XFree86 / X.

Den Signature check kann man so abstellen:
InstallPackage -S KDE--3.1.4--i686.tar.bz2
Will man Abhängigkeitsprobleme auflösen, verwendet man die --batch Option:
InstallPackage --batch KDE--3.3.04--i686.tar.bz2
InstallPackage --batch /Mount/Cloop/Programs/KDE

GenBuildInformation - Informationen über Build Information herausfinden.

GenBuildInformation ist ein Shell Script.

MakeRecipe - Das Herstellen von Recipes (RecipeCooking)

Optionen für MakeRecipe

-F die Datei wird nicht erneut heruntergeladen.
-h zeigt Hilfemenu an.
-F no fetch, wir laden das Package nicht erneut herunter sondern setzen voraus, das es bereits vorhanden ist.
Recipes sind da, um Programme zu erstellen.

Bevor man selbst anfängt, eigene Recipes zu erstellen, sollte man zuerst diese Datei editieren:
nano /System/Settings/Compile/Compile.conf
Generell nützt man das zb so:
MakeRecipe foobar-2.35.tar.bz2
MakeRecipe http://conky-1.5.0.tar.bz2
Klappt das, kann man Compile foobar nutzen.
Folgende Werte sind wichtig
compile_version=cvs-20060216
compile_version legt die Version fest.
url="http://dl.matroska.org/downloads/libebml/libebml-0.7.6.tar.bz2"
Die URL legt fest, woher man die Version erhalten kann.
file_size=56317
Gibt die Grösse an.
file_md5=bb054799dfdf6bfa5dd2cf95416ff021
m5dsumme
is_makefile=yes
Keine Ahnung
dir=libebml-0.7.6/make/linux
Keine Ahnung
install_variables=(
prefix={target}
Schritt Eins: Finde ein Programm.
Beispiel: http://ftp.gnu.org/gnu/bool/bool-0.2.tar.gz
Schritt Zwei: Beispiele zum Erstellen eines Recipe:
MakeRecipe gobolinux_program_url
MakeRecipe http://ftp.gnu.org/gnu/bool/bool-0.2.tar.gz
MakeRecipe http://unc.dl.sourceforge.net/sourceforge/joe-editor/joe-3.1.tar.gz
Alternativ gibt man noch mehr Parameter an, zB:
MakeRecipe AppName Version gobolinux_program_url
Will man nicht herunterladen, geht dies hier:
MakeRecipe --no-fetch allegro-4.2.2 http://mesh.dl.sourceforge.net/sourceforge/alleg/allegro-4.2.2.tar.gz
Die Dateien werden hier gespeichert:
/Files/Compile/Archives/
Ein Recipe hat mehrere Parameter. url= gibt an wo man den Quellcode finden kann, also die Source herunterladen kann. file_size=6338536 wiederum gibt an, wie gross die Datei ist.
Ist übrigens nicht mandatory.
Der Parameter is_compileprogram=yes|no, wenn er auf ja eingestellt ist, bedeutet dies, das kein configure script mit dabei geliefert wurde.
Nachdem das Recipe erstellt oder heruntergeladen wurde, kann man es mittels Compile ProgramName kompilieren
Hier noch ein Beispiel-Recipe:
# Recipe for version 4.1.11 Pre Build by Jonas Karlsson 
    # on Mon Apr 18 10:05:55 CEST 2005
    compile_version=1.2.3
    url="ftp://ftp.sunet.se/pub/unix/databases/MySQL-4.1/mysql-standard-4.1.11-pc-linux-gnu-i686.tar.gz"
    pre_install() {
       if ! grep -q mysql goboSettings/group
       then
         Log_Normal "Adding group mysql"
         groupadd mysql
       fi
       if ! grep -q "mysql:x:" goboSettings/passwd
       then
         Log_Normal "Adding user mysql"   
         useradd mysql -g mysql -c 'added by 
         Compile for MySQL' -d goboPrograms/MySQL -s goboExecutables/false
       fi
     }
     post_install() {
       Log_Normal "Installing prepared tables"
       target/bin/mysql_install_db --user=mysql
       Log_Normal "Changing ownership of Variable to mysql:mysql"
       chown -R mysql:mysql goboPrograms/MySQL/Variable
     }
     is_manifest=yes
     manifest_option=exclude_list
     manifest=(
      #   "bin/*:bin"
      #   "include:"
      #   "docs:"
      #   "lib:"
      #   "man:"
      #   "share/*:Shared"
      #   "data/*:Shared"
      "scripts"
Übrigens...



Die Spezifikation findet man hier:
Recipe Format Specification

Faq zu Gobolinux Recipes

Welche Variable wird genutzt um die URL eines Paketes zu kennzeichnen?

httpSourceforge
Ein Beispiel ist
url = httpSourceforge/Foo/Foo-1.0.tar.bz2
Diese Variable sollte übrigens in /System/Settings/Compile/Compile.conf definiert sein.

PrepareProgram

Zweck von PrepareProgram (mein Alias dazu ist PP) ist es, eine Hierarchie in /Programs zu erstellen und die Sources vorzubereiten.
Mit der Option -t erstellt man einen Tree.

Man sollte PrepareProgram innerhalb eines Verzeichnis laufen lassen.

VerwendungsBeispiele für PrepareProgram:
PrepareProgram ProgramName VersionNumber --AdditionalOptions
PrepareProgram Alsa 2.0
PP Freeipmi 0.5.2
PrepareProgram Opera 9.23

VerzeichnisBaum in /Programs erstellen geht so:
PrepareProgram -t Dosbox 0.72
PrepareProgram -t Opera 9.23

PrepareProgram erstellt Settings wie /Programes/Name/Settings,/Programes/Name/Versionsnummer etc.
Danach kommt es zu Phase 2 von PrepareProgram, in der das script nachschaut, ob es ein GNU-autoconf configure script gibt. PrepareProgram führt es dann aus (- meistens mit --prefix und --sysconfdir settings) und natürlich den additional user options2 =AdditionalOptions)+
Gab es kein GNU configure, schaut PrepareProgram nach, ob ein "custom" configure die --prefix option zulässt. Falls ja, verwendet PrepareProgram dieses.
Als letzte Möglichkeit parsed PrepareProgram die sources nach fixen Pfaden in den Makefiles und verändert diese (nachdem vorher diese Dateien noch gesichert wurden, alle Veränderungen werden geloggt.)

Gibt man die --batch option, gibt es keine weitere User Interaktion.
PrepareProgram erstellt auch ein Settings Verzeichnis. Wird dieses Verzeichnis nicht gebraucht, wird es wieder gelöscht.

Das /System/Settings Verzeichnis wird durch goboSettings bereitgestellt:
e $goboSettings
Will man in PrepareProgram reinschauen, kann man diese Zeile benutzen:
vim /Programs/Scripts/Current/bin/PrepareProgram

RunTask

Optionen fürRunTask

-h Help
-v Version
Übrigens:
Listener ergänzt RunTask ein wenig, denn Listener lauscht auf mögliche Filesystem Events, und führt dann Aktionen durch.
So kann man zb den Link Tree automatisch cleanen sobald packages entfernt werden.
RunTask läuft Boot Aufgaben von der Command line.
Beispiel:
RunTask Network start

RemoveBroken

Mittels RemoveBroken entfernt man fehlerhafte symbolische Links. RemoveBroken schaut, ob die Dateien fehlende symbolische Links sind. Falls ja, werden sie entfernt. Ohne Argumente nimmt RemoveBroken die Dateien aus STDIN (zB via pipe)+
VerwendungsBeispiele (remove symlinks, remove broken symlinks):
cd /System/Links; find | RemoveBroken
pwdsyslinksfind | RB
find /System/Links | RemoveBroken
goboremovebroken

RemoveProgram

Mittels RemoveProgram entfernt man ein Programm, zum Beispiel:

RemoveProgram LAME

Beispiele:
RP Vim 7.0
RP MPlayer 1.0rc1

SandboxInstall

Damit installiert man Programm in einer sicheren Art und Weise.
SandboxInstall führt eigentlich nur "make install" durch.
SandboxInstall assumes a few things have been done.
It assumes it is called as a part of the following sequence:
PrepareProgram --tree Foo 1.0
SandboxInstall
SymlinkProgram Foo 1.0
Since the program isnt compiled for Gobo paths, "make install" will try installing through legacy links. This means using UnionSandbox rather than SandboxInstall. After "make install", check the rw branch for /System/Links. Move installed files to /Programs.

StartTask

Damit startet man Tasks.
StartTask MySQL

SymlinkProgram

Erstellen von Symlinks. SymlinkProgram erstellt Verknüpfungen unter /System/Links.
Beispiele:
SymlinkProgram |AppName| |version|
SymlinkProgram SQLite 1.34
SymlinkProgram /Programs/LSW
SymlinkProgram -c overwrite xcb-proto
SP Sqlite 3.4.0

SymlinkProgramm erstellt einen Link nach /System/Links/Executables.
Um Glibc 2.5 zu resymlinken kann man folgendes verwenden:
SymlinkProgram -f Glibc 2.5 seems to work

SignProgram

Ich denke das is der Gobolinux Way um ein Package zu GPG verifizieren.

UseFlags

UseFlags reads R/Dependencies and R/BuildDependencies inside that directory

UpdateSettings (deprecated)

Hat man neue Scripts oder Recipes installiert, muss man dies machen:
UpdateSettings Compile
UpdateSettings Scripts

NewVersion

Optionen fürNewVersion

b Help
Beispiele zu NewVersion:
NewVersion --source 8.4.12 tcl-tk 8.4.14
NewVersion Allegro 4.1.12

GoboHide

Es gibt Programme, die fixe und absolute Pfadangaben nutzen. Daher muss eine gewisse Rückwärtskompatibilität eingehalten werden. Damit dies nicht angezeigt wird, wird GoboHide verwendet.

Die Realisierung von Gobohide geschieht mittels einem optionalem Patch des Linux Kernel.

Die Scripts von Gobolinux

Man findet zuweilen in den Scripts von Gobolinux Einträge wie source GoboPath. Die Datei GoboPath findet man unter /Programs/Scripts/Current/bin/GoboPath, und sie ist dafür zuständig, Variablen wie GoboSettings und so weiter zu setzen.

Gobo Functions

Name of Function Defined in this file Purpose
Add_Option_Boolean /Programs/Scripts/Current/Functions/OptionParser
Add_Option_Entry -
Verify_Superuser /Programs/Scripts/Current/Functions/GoboLinux
Install_GConf_Schemas /Programs/Scripts/Current/Functions/GoboLinux Erlaubt es einem, GConf Schemas zu installieren.
Log_Terse /Programs/Scripts/Current/Functions/Log Log_Terse (wie auch all die andere Log_* Funktionen) ruft Log_Function auf, mit jeweils verschiedenen Parametern.
ColorMake /Programs/Scripts/Current/bin/ColorMake
ScriptFunctions /Programs/Scripts/Current/bin/ScriptFunctions Hat viele ENVIRONMENT Variablen wie zum Beispiel scriptName, scriptPath, scriptVersion aber auch die 2 Funktionen Import und Parameters. Die meisten anderen Shell Scripts in Gobolinux sourcen diese Datei, zB so source ScriptFunctions

Der GoboLinux FileTree

Die Entwickler von GoboLinux haben sich für eine logischere Desktop Struktur entschieden, die unten zu sehen ist.

/usr /usr, hat Symlinks zu bin, include, lib,local,man, sbin,share, X11R6, die wiederum auf zB /System/Links/Executables etc zeigen
/Depot Miscellaneous Files, also vielleicht für Video Dateien etc
/Depot/Install/Wizard/runInstaller.sh Dies ist das Installer script. Nach einer Gobolinux Installation wird es wieder gelöscht.
/Files/Codecs Video und Audio Codecs
/Files/Documentation Dokumentation für Programme - scheint aber nicht mehrzu existieren.
/Files/Descriptions Beschreibungen von Programmen. Wird auch vom Manager verwendet
/Files/Compile Enthält die Unterverzeichnisse Archives, LocalRecipes, Recipes und Sources, sowie die Datei Recipes.log
/Files/Compile/Archives Quelldateien die kompiliert werden können und hier gespeichert werden. CompileProgram verwendet es.
/Files/Compile/LocalRecipe Ein Speicherort für lokale Recipes
/Files/Compile/Sources Ein Speicherort für die Source Dateien
/Files/Fonts Alle schönen Fonts in diesem Verzeichnis, hat Verzeichnisse wie 100dpi, 75dpi, CID, Console, Cyrillic, Ghostscript, Misc, OpenType, TrueType, Type1
/Files/Plugins Plugins für diverse Applikationen wie xmms
/Programs Installierte Programme / Pakete, ist in etwa /usr/bin, /usr/local/bin
Jedes Program hat seine eigene Sektion hier, siehe unten.
-/Programs/AppName Speichert Applikationen logisch (self contained).
/Programs/BootScripts wichtige Bootscripts sind hier zu finden.
/Programs/BootScripts/Current/ inkludiert zb +Resources/Defaults/Settings/BootScripts/Multi
/Programs/BootScripts/Current/Resources/Tasks hat in 011 Dateien wie CheckFS, CheckRootFS, CreateChmod, MountProc, MountSys, Network, NetworkInterface, SetClock, StaticNetworkInterface. Es sollte im Gegensatz zu Resources/Daemons verwendet werden, da Resources/Daemons deprecated ist.
/Programs/BootScripts/Settings/BootScripts ist ein Verzeichnis. Das ist ein wenig seltsam, der gleiche Name im Dir... ) auf jeden fall sind dort Scripts drinnen wie Done, Halt, Init, Multi, Options, Reboot, Single und ein Ordner zu Network
/Programs/BootScripts/Settings/NetworkOptions Hier findet man Einstellungen zum Network. Zum Editieren zb:
nano /etc/NetworkOptions
/Programs/BootScripts/Settings/ hat BootScript Einstellungen
/Programs/BootScripts/Settings/inittab /etc/inittab
/Programs/CoreUtils/ Enthält Programme wie mkdir
/Programs/CoreUtils/5.2.1/bin/hostname Zum Herausfinden des hostname. Debian zB hat meist einen Eintrag in /etc/hostname
/Programs/Compile/ Wo finde ich Compile? Hier. Ist ein shell script.
/Programs/Compile/Settings/Compile/Compile.conf Wo finde ich Compile Settings? Genau, hier. Hat wichtige Variablen wie zb compileArchivesDir oder Definitionen wie
compileDir="${goboPrefix}/Files/Compile"
/Programs/Glibc Glibc, in 011 ist es 2.3.2, in 012 ist es hmm später -) und in 013 ist es Version 2.4 per default.
/Programs/KDE-Base/Current/Shared/config/kdm/kdmrc Die kdmrc Datei, nützlich um AutoLogins zu erlauben.
/Programs/KBD/1.12/lib/kbd/keymaps/i386/qwerty/ Inkludiert die verschiedenen Keymaps
/Programs/KBD/1.12/lib/kbd/keymaps/i386/qwertz/ Das selbe für deutsche Keymaps
/Programs/Make/3.80/bin/make GNU make
/Programs/MPlayer/Current/Shared/mplayer/font Fonts für MPlayer
/Programs/OpenSSH/4.0p1/sbin/sshd /usr/sbin/sshd
/Programs/Scripts Diverse Scripts
/Programs/Scripts/Settings Settings zB für zsh
/Programs/Scripts/Settings/zsh zsh
/Programs/Scripts/2.1.26/bin/ColorMake
/Programs/Scripts/2.1.26/bin/GoboPath GoboPath setzt Variablen wie goboSettings, goboBoot, goboLibraries
/Programs/Scripts/2.1.26/bin/SymlinkProgram Aufgabe von SymlinkProgram ist es, Symlinks zu erstellen.
/Programs/Scripts/2.1.26/bin/RemoveBroken RemoveBroken entfernt fehlende Symlinks. PythonScript
/Programs/Shadow Seltsames Dir, Hat Unterdirs
/Programs/Shadow/Settings Unter anderem findet man /etc/shells hier. In 011 sind die vorinstallierten shells bash und zsh
/Programs/Syslogd hat in Unterverzeichnissen zB Syslogd drinnen
/Programs/Xorg/6.7.1/lib/X11/xinit Enthält Systemweite Einstellungen für den X Server wie zB xinitrc und xserverrc
/System System Files. Hat die Unterverzeichnisse Kernel, Links, Settings, Variable.
/System/Kernel Hat die Unterverzeichnisse Boot, Devices, Modules, Objects und Status.
/System/Kernel/Boot/ Hat die kernel entries, message, System.maps und so weiter... Entspricht /boot
/System/Kernel/Boot/grub/menu.lst Grub Menu Liste, zum Editieren zB nano /System/Kernel/Boot/grub/menu.lst
/System/Kernel/Devices /dev
/System/Kernel/Devices/sda /dev/sda
/System/Kernel/Devices/proc /proc
/System/Kernel/Modules /lib/modules
/System/Kernel/Status/config.gz Wird verwendet für das Kompilieren eines neuen Kernel
/System/Kernel/Status/mounts Für mtab und ähnliches
/System/Kernel/Status/kcore Kcore zeigt den RAM Platz deines Computer an. /proc/kcore
/System/Kernel/Status/uptime /proc/uptime
/System/Links/ Symlinks um mit traditionellem Linux kompatibel zu sein
/System/Links/Daemons hat in 011 Symlink-Einträge zu Klogd und Syslogd
/System/Links/Environment Hat Links zu den diversen Environment Resourcen, zb KDEDIRS aber auch CFLAGS. Beispiel:
Scripts--2.7.0 -> /Users/x/DATA/../Programs/Scripts/2.7.0/Resources/Environment
Nach Meinung der Mailing List sollte KDEDIR eher zu /System/Links zeigen, und eventuell /usr, /lib, /bin gobohidden sein. Für Gobolinux GCC findet man die Einträge hier - /System/Links/Environment/GCC-.
Sollte man hier Einträge verändern, wird empfohlen, SymlinkProgram aufzurufen um den Cache erneut zu erstellen.
/System/Links/Environment/Cache Hat vor allem EDITOR
/System/Links/Executables /usr/bin /sbin /usr/lib wobei man hier scripts wie Compile, CompileProgram, CreatePackage und so weiter finden kann. Auch das Python Script GuessLatest ist hier zu finden. Will man mal einen Symlink auf ein Programm manuell erstellen, kann man dies hier tun, und es wird automagisch gelinkt.
/System/Links/Headers hat Dateien wie values.h, dies wiederum ist ein Symlink auf /Programs/Glibc/include/values.h. Dies ist somit der Ordner für die include Directories, entspricht in etwa dem traditionellen /usr/include
/System/Links/Headers/SDL Headers für SDL
/System/Links/Libraries /lib, auch in ldconfig und im LD_LIBRARY_PATH gespeichert, der auf /System/Links/Libraries zeigt. Die Symlinks dort zeigen auf /Programs/*/lib, und dort finden sich wiederum die shared objects .so, .a und so weiter.
/System/Links/Libraries/pkgconfig /usr/local/lib/pkgconfig, wird vor allem bei GNOME Libraries genutzt.
/System/Links/Manuals Symlinks die auf die diversen Manuals verweisen
/System/Links/Shared /usr/share
/System/Links/Tasks hat links von zB GoboHide auf /Programs/GoboHide/Current/Resources/Tasks/GoboHide
/System/Logs hier kommen alle Logs rein
/System/Settings /etc/, System Settings werden hier in Form von Symlinks gespeichert. Ein Beispiel wäre hier für XORG /System/Settings/X11/xorg.conf
/System/Settings/BootOptions Hier kommen Boot Optionen rein, zB Module die beim booten geladen werden sollen. Für User Veränderungen gibt es eine Sektion namens UserDefinedModules - siehe auch die folgenden Einträge. Auch findet man hier HostName Eintrag, um den Namen des Computers zu setzen.
/System/Settings/BootScripts/BootUp BootUp Scripts kommen hier rein, zum Beispiel apachectl start. Man sollte nicht vergessen, die Task auch wieder beim Shutdown zu beenden.
nano /System/Settings/BootScripts/BootUp
Zum Hinzufügen von Apache zb
echo Exec "Starting Apache ..." /System/Links/Executables/apachectl start >> /System/Settings/BootScripts/BootUp
/System/Settings/BootScripts/ShutDown Zum Beenden der Bootup Scripts.
/System/Settings/Compile/compile.conf Hat Informationen für MakeRecipe zB Author, URL eines Programmes etc..
/System/Settings/fonts/local.conf Dies sollte ein Symlink sein zu /Programs/Fontconfig/Settings/fonts/local.conf
/System/Settings/fstab /etc/fstab
/System/Settings/inetd hat irgendwas mit Protokollen und Internet zu tun glaube ich
/System/Settings/inittab Welches File hier gelesen wird ist das relevante für Gobolinux. inittab zeigt auf /Programs/BootScripts/Settings/inittab
/System/Settings/modprobe.conf modprobe.conf trägt Information wie man Kernel Module gegebenenfalls nachladen kann. Hat auch Aliases wie zb alias eth1 8139too
/System/Settings/resolv.conf Die resolv.conf Datei. search chello.at und so weiter
/System/Settings/Scripts/GetAvailable.conf Dies ist recht ähnlich der debian-spezifischen Datei /etc/apt/sources.list.
Mehr dazu siehe im Eintrag zu GetAvailable
/System/Settings/udev/rules.d/10-udev.rules Hier kann man Symlinks erstellen. Beispiele
BUS="ide", KERNEL="hdc", SYMLINK="dvd cdrw dvdrw"
KERNEL="nvidia*", NAME="%k", GROUP="video"
Ein Beispiel ist weiter unten zu finden. udev lädt diese Regeln nach jedem Start via udevstart ein.
/System/Settings/udev/rules/50-udev.rules Hier gilt ähnliches wie bereits oben genannt. nano /System/Settings/udev/rules.d/50-udev.rules
/System/Settings/UseFlags.conf Die Use Flags von Gobolinux. Alternativ dazu kann man die $USE environment variable verwenden.
/System/Settings/zsh zsh Settings
/System/Variable /var und weitere wichtige Dateien wie log
/System/Variable/log/ /var/log für Logfiles die hier gesammelt werden.
/Users User Heim Verzeichnisse, entspricht /home
/Mount /mnt
/Mount/CD-ROM /cdrom

LiveCD Layout

/usr/share/Installer In dem Verzeichnis gibt es einige wichtige Dateien
/usr/share/Installer/Profiles/Base In dieser Datei findet man ein Base-Install
/usr/share/Installer/Profiles/Typical In dieser Datei findet man ein Typical-Install
Installer Installer is an alias to "GoboLinuxInstaller install". GoboLinuxInstaller is a python script+

Die Gobolinux Sandbox - Wie gebe ich Programme ins Gefängnis

Was ist die Sandbox in Gobolinux?

Die Sandbox ist die Umgebung (environment) die verwendet wird, wenn man Programme installiert. Sie stellt sicher, das man keinen Blödsinn machen kann. Das Programm Compile nutzt zb die Sandbox. Zur Zeit ist die Sandbox nit zwingend notwendig, es gibt Recipes die die Sandbox ausschalten (disablen), um zb die Kernel Module zu installieren.

Wie sehe ich alle Symlinks in / und wie verstecke ich sie wieder?

Um sie anzuzeigen
StopTask GoboHide
Um sie zu verstecken
StartTask GoboHide

Was hat die variable {goboPrograms} zu bedeuten?

Diese Variable ist eine Referenz, unter welchem Directory ein Programm installiert wurde. Rootless home ist übrigens /home/usr/Programs.

Wie finde ich heraus, wo Gobolinux die keyboard maps speichert?

Zerst mal updatedb eintippen. Danach, locate qwertz und man sieht mehrere Ergebnisse.

What is a subtree injection?

I can install into one programs tree from another program.

Welches Filesystem habe ich?

cat /System/Kernel/Status/mounts

Ich hab KDE und Library Probleme. Wie kann ich das fixen?

Add a file called /Programs/K3B/Current/Resources/Environment with a single line like this:
export KDEDIRS=KDEDIRS:/Programs/K3B/Current
Same for every KDE-based app.

Wann und wie hoch war Gobolinux' höchste Platzierung auf distrowatch.org?

Platz 31 am 15.JUN 2005.

Platz 16 (515) am 08.NOV.2006

Wie mounte ich einen USB Stick unter GoboLinux?

mount /System/Kernel/Devices/sda1 /Mount

Eventuell setzt man auch noch einen Eintrag in /System/Settings/fstab

# usb /System/Kernel/Status/bus/usb usbfs defaults, devmode=0666 0 0
none /System/Kernel/Status/bus/usb usbfs defaults 0 0

Um den USB Stick zum laufen zu bringen, ist eventuell noch vorher ein modprobe usb_storage notwendig (lsmod überprüfen)
# modprobe usb_storage
Module werden automatisch geladen. WIE KANN ICH MODULES AUTOMATISCH LADEN?

Was is der default runlevel in Gobolinux?

2
GoboLinux verwendet die Runlevels aber nicht "old fashioned"

Wie funktioniert das Upgraden des Kernel? - How does Upgrading the Kernel work?

If there is a recipe for an earlier version of a program you can always use that as a template for a new one. Use NewVersion for that, example:
NewVersion linux 2.6.11.8
and you get a recipe for kernel version 2.6.11.8 based on the recipe for latest offical recipe (2.6.11 at this moment)

Wie ändere ich meinen Mirror?
Editiere /Programs/Scripts/Settings/Scripts/GetAvailable.conf

Wie werden die Runlevel behandelt?

Dafür gibt es zwei Scripte - Multi und Single. Siehe im Baum wo man diese Skripte finden kann.

Gobolinux und Nvidia?

Einfach in vim /etc/X11/xorg.conf den Eintrag Driver nv zu Driver nvidia ändern.

Ich hab ein Python Problem in Gobolinux. Was tun?

Schau die Variable PYTHONOPTIMIZE an. Sie sollte sich in
cat /Programs/Python/Current/Resources/Environment
befinden. In dieser Datei nun den Wert von PYTHONOPTIMIZE=2 zu PYTHONOPTIMIZE=1 setzen.

Wie bringe ich Netzwerk und Gobolinux zum Laufen?

Editiere /P/BootScripts/Settings/BootOptions Zum Testen
StartTask Network
StopTast Network
Bei statischer IP sollte man nicht DHCP Broadcast aktivieren. Ausserdem sollte man die module identifizieren. lsmod
Wenn du dann noch deinen router pingen kannst und der als default gateway drinsteht, ist alles klar. Adresse:80.108.103.172 Bcast:80.108.103.255 Maske:255.255.255.0 shevegen 3c59x 37032 0 shevegen sis900 16644 0 shevegen 8250 17336 0 "modprobe -r 3c59x"

Warum braucht GoboLinux keinen Packager Manager?

GoboLinux braucht keinen Packet-Manager da alle Dateien zu einem Programm in einem Verzeichnis (Unter /Programs) installiert werden. In einem gewöhnlichen *NIX System gehen die Binaries normalerweise in /bin, /usr/bin, /sbin, /usr/sbin, /usr/local/bin, /usr/local/sbin oder ähnlichem (Meistens /usr/bin und /usr/local/bin)
Ein Package Handler löscht ausserdem nicht benötigte Dateien. Programme, die Autoconf Tools verwenden, werden mittels "./configure make su make install" leicht erstellt. In Gobolinux übergibt Compile die prefix --prefix= an configure, das bewirkt, das alle Dateien in ein Verzeichnis reinkommen.

Funny Error Messages:
Mono requires /proc to be mounted.
libtool: install: error: cannot install `libgimpmodule-2.0.la' to a directory not ending in /usr/lib
libtool: link: only absolute run-paths are allowed

Email Listing of GoboLinux-Using Guys:


Hisham - gobo@gobolinux.org
MailingList - gobolinux-users@lists.gobolinux.org

Meine GoboScripts:

GoboTransformer.rb
GoboTransformer verfrachtet eine Datei in /usr/bin in ein neues Verzeichnis unter $PROGRAMS/Name/Version/bin. Mit anderen Worten, man konvertiert damit eine FHS Struktur in eine GOBO Struktur.

Links zu Gobolinux

URL:
http://gobolinux.org/mwm/
Username: shevegen
Password: mahavishnuorchestra

Sitemap