Zen Installer - Ein grafischer Installer für Arch Linux
Gegen ein Skript, dass ein Paar de_DE Einträge in die passenden Dateien macht, und die # von #server= weg nimmt hätte ich nichts einzuwenden.
Am besten ohne jegliche Menuführung. Einfach ein Script, dass man händisch konfigurieren muss und dass danach seine Aufgaben ab rattert. So weiß jeder was das Ding gemacht hat und was nicht! So etwas schlichtes könnte ich mir sehr gut vorstellen.
Ein offizieller Arch Linux Installer ist jedoch ein ganz anderes Ding.
Die Leute von Calamares machen ihre Sache richtig gut. Man kann aber auch daran sehen, dass es nicht leicht ist einen einfachen und flexiblen Installer zu programmieren, ihn aktuell zu halten und Support zu leisten. calamares/issues
Arch hat gemessen an seiner Bedeutung nicht sehr viele Entwickler und es wäre schade wenn die wenigen den Fokus darauf setzen, etwas zu tun, dass Arch-Derivate auch bestens erledigen. Bisher leistet Arch eine Menge für Upstream. Es wäre schade wenn hier Kapazitäten verloren gehen.
Auch fände ich es verschwendete Zeit sich im Forum nur noch mit Screenshots darüber zu unterhalten wo man ein Kästchen in einem Tool ankreuzen muss und wo nicht.
Ich habe nichts gegen Installer oder den Weg den andere Distributionen einschlagen.
Denke aber, dass die Fokussierung auf das Elementare schon das richtige für Arch ist.
Am besten ohne jegliche Menuführung. Einfach ein Script, dass man händisch konfigurieren muss und dass danach seine Aufgaben ab rattert. So weiß jeder was das Ding gemacht hat und was nicht! So etwas schlichtes könnte ich mir sehr gut vorstellen.
Ein offizieller Arch Linux Installer ist jedoch ein ganz anderes Ding.
Die Leute von Calamares machen ihre Sache richtig gut. Man kann aber auch daran sehen, dass es nicht leicht ist einen einfachen und flexiblen Installer zu programmieren, ihn aktuell zu halten und Support zu leisten. calamares/issues
Arch hat gemessen an seiner Bedeutung nicht sehr viele Entwickler und es wäre schade wenn die wenigen den Fokus darauf setzen, etwas zu tun, dass Arch-Derivate auch bestens erledigen. Bisher leistet Arch eine Menge für Upstream. Es wäre schade wenn hier Kapazitäten verloren gehen.
Auch fände ich es verschwendete Zeit sich im Forum nur noch mit Screenshots darüber zu unterhalten wo man ein Kästchen in einem Tool ankreuzen muss und wo nicht.
Ich habe nichts gegen Installer oder den Weg den andere Distributionen einschlagen.
Denke aber, dass die Fokussierung auf das Elementare schon das richtige für Arch ist.
Ich wollte mit meiner Frage keine Grundsatzdiskussion auslösen oder einem auf die Füße treten.
Als ich angefangen habe mit Linux musste ich noch selber Kernel kompilieren und Knoppix war noch Lichtjahre entfernt. Wer das vielleicht noch kennt weiß was ich meine. Einen Kernel auf einem 386 zu kompilieren wegen der Grafikkarte konnte Stunden dauern. Einen wichtigen Schalter vergessen und dann noch mal neu anfangen.
Einen Installer der einem ein wenig Arbeit abnimmt ist (für mich) meiner Meinung nach schon nicht schlecht. Es surft ja heute auch kaum einer noch mit Lynx im Internet. Und wie heißt es doch so schön:
Wer nicht mit der Zeit geht, muss mit der Zeit gehen.
Allerdings hasse ich es wenn man mir vorschreiben will was ich benötige und was nicht. Darum bin ich auch zu Arch gekommen. Von Grund auf installieren und nur das was man benötigt. Mit einem Grundwissen und der Hilfe des Internets (Foren etc.) klappt das wunderbar. Und genau das macht der Zen-Installer. Er installiert mir ein Grundsystem und mehr nicht. Pamac und die Repositorys brauche ich ja nicht nehmen, die werden als Option angeboten. Mehr nicht.
@Werner
In diesem Sinne wünsche ich einen schönen Abend.
Als ich angefangen habe mit Linux musste ich noch selber Kernel kompilieren und Knoppix war noch Lichtjahre entfernt. Wer das vielleicht noch kennt weiß was ich meine. Einen Kernel auf einem 386 zu kompilieren wegen der Grafikkarte konnte Stunden dauern. Einen wichtigen Schalter vergessen und dann noch mal neu anfangen.
Einen Installer der einem ein wenig Arbeit abnimmt ist (für mich) meiner Meinung nach schon nicht schlecht. Es surft ja heute auch kaum einer noch mit Lynx im Internet. Und wie heißt es doch so schön:
Wer nicht mit der Zeit geht, muss mit der Zeit gehen.
Allerdings hasse ich es wenn man mir vorschreiben will was ich benötige und was nicht. Darum bin ich auch zu Arch gekommen. Von Grund auf installieren und nur das was man benötigt. Mit einem Grundwissen und der Hilfe des Internets (Foren etc.) klappt das wunderbar. Und genau das macht der Zen-Installer. Er installiert mir ein Grundsystem und mehr nicht. Pamac und die Repositorys brauche ich ja nicht nehmen, die werden als Option angeboten. Mehr nicht.
@Werner
Genau der Satz erinnert mich an die Ärzte im Krankenhaus. Einer wollte mir mal erklären was ich habe, bis ich ihn nach ca. 20 sec unterbrochen habe und meinte das man mit mir deutsch reden könnte. Und genauso steht es auch in vielen Anleitungen. Die sind nämlich schon für viele unverständlich und kompliziert. Da bekommt man keinen an Linux (geschweige Arch) heran. Selbst mit einem gewissen Grundverständnis. Das haben auch die meisten Distributionen erkannt.Werner schriebDer Sachverhalt ist ein und derselbe, die Herangehensweise jedoch diametral. Das ändert nichts an den Tatsachen, aber macht die Verständigung schwierig, was auch in rein technischen Diskussionen immer wieder zu Divergenzen und Missverständnissen führt.
In diesem Sinne wünsche ich einen schönen Abend.
Dir auch einen schönen Abend.
Eine kleine Hilfe, also keinen vollwertigen "Installer", vermisse ich auch manchmal. Gerade so Kleinigkeiten wie die Locales einstellen wäre damit leicht zu erledigen. Ich hatte mir mal selber ein Skript geschrieben, was die (bei mir immer gleichen) Konfigs setzt, aber mittlerweile kopiere ich nur noch die wichtigen Dateien per sshfs.
So nen kleines Tool, was man nach dem "arch-chroot /mnt" aufrufen könnte, hätte was.... 😉
Einen vollwertigen Installer halte ich aber für unnötig und auch zu aufwendig. Partitionieren, GPT oder MBR, EFI und der ganze andere Rotz, das zu automatisieren ist halt nicht so einfach.
Und:
Arch ist nun mal nicht für Einsteiger gedacht, ein grafischer Installer würde aber den Eindruck vermitteln, das es so sei. Bietest du ein Einsteiger-Setup, +muss+ auch der Rest für Einsteiger geeignet sein!
JM2C
So nen kleines Tool, was man nach dem "arch-chroot /mnt" aufrufen könnte, hätte was.... 😉
Einen vollwertigen Installer halte ich aber für unnötig und auch zu aufwendig. Partitionieren, GPT oder MBR, EFI und der ganze andere Rotz, das zu automatisieren ist halt nicht so einfach.
Und:
Arch ist nun mal nicht für Einsteiger gedacht, ein grafischer Installer würde aber den Eindruck vermitteln, das es so sei. Bietest du ein Einsteiger-Setup, +muss+ auch der Rest für Einsteiger geeignet sein!
JM2C
Naja, ein Skript für den eigenen Gebrauch zu schreiben ist nicht schwer, aber sobald man "Auswahl" mit einbaut, wird es schwieriger.tuxnix schrieb Hättest du Lust das zusammen auszuarbeiten?
Was erwartest du denn von dem Skript?
Schreiben können wir das gerne, bin ja immer froh wenn ich so etwas habe, will ja nicht einrosten.... 😉
Zur Idee:
Es sollte ein Skript ohne Menuführung sein.
Man tätigt seine Angaben in einen Konfigurationsabschnitt im Skript ein.
Das Skript selbst kann dadurch sehr einfach gehalten werden.
Auch sieht man sofort was es macht und was nicht.
Es hält sich eng an die Anleitung für Einsteiger.
Der Vorteil wäre dabei, dass es transparent und flexibel bleibt.
Man kann es lesen wie die Wiki-Anleitung.
Ich hab vor kurzem so etwas mal ins Unreine geschrieben aber noch nichts davon getestet.
Wahrscheinlich ist die Hälfte des Codes noch fehlerhaft, aber den Grundgedanken sollte man schon mal erkennen können.
Es sollte ein Skript ohne Menuführung sein.
Man tätigt seine Angaben in einen Konfigurationsabschnitt im Skript ein.
Das Skript selbst kann dadurch sehr einfach gehalten werden.
Auch sieht man sofort was es macht und was nicht.
Es hält sich eng an die Anleitung für Einsteiger.
Der Vorteil wäre dabei, dass es transparent und flexibel bleibt.
Man kann es lesen wie die Wiki-Anleitung.
Ich hab vor kurzem so etwas mal ins Unreine geschrieben aber noch nichts davon getestet.
Wahrscheinlich ist die Hälfte des Codes noch fehlerhaft, aber den Grundgedanken sollte man schon mal erkennen können.
#!/bin/bash
# naad.sh version 0.01 (alpha) Dez. 2017 from tuxnix.
# With no garanty at all.
#
#
#Start this script only when you know what it is doing.
#Edit "User Configuration Section" seriosly.
#This script follows arch-installation-guid https://wiki.archlinux.org/index.php/Installation_guide.
#
#
#You may need some terminal commands to get values for script configuration:
#(Lan=)
#ip link
#(grafikdriver=)
#lspci |grep VGA
#(keyboard)
#(layout=)
#localectl list-x11-keymap-layouts |less
#(model=)
#localectl list-x11-keymap-models |less
#(variant=)
#localectl list-x11-keymap-variants |less
#(options=)
#localectl list-x11-keymap-options |less
#--------------------------------------------------------Configuration Section-------------------------------------------------------------
BIOS=true
EFI=false
rootfs=arch
swap=swap
#Internetconnektion
Lan=enp0s7
#intel
Intel-ucode=false
#user_configuration
set_user=false
root_passwd=123456
user=duda
user_passwd=123456
myhost=duda-pc
#lokales
localtime="Europe/Berlin"
LANG=de_DE
lang=de
#keyboard
layout=de
model=pc105
variant=nodeadkeys
options=caps:numlock
#Desktop
grafikdriver=xf86-video-nouveau #choose: xf86-video-nouveau, ....
desktop=plasma #choose: LXDE, Xfce, LxQt, plasma or GNOME. Start desktop with 'startx'.
#Software applikatins: Edit packageselect (most language-packages will be loaded automaticaly - see end of script)
packageselect="firefox libreoffice-still thunderbird gimp vlc ttf-dejavu hunspell aspell hyphen"
#-----------------------------------------------------------------The Script--------------------------------------------------------------------------
# Make sure you are running as root
if (( `id -u` != 0 )); then { echo "Exit: Sorry, you must be root."; exit; } fi
echo "install basic system"
mount -L $rootfs /mnt
swapon -L $swap
pacstrap /mnt base base-devel
if [ Intel-ucode == true ] ; then
echo "get intel Microcode"
pacstrap /mnt intel-ucode
fi
echo "configer fstab"
genfstab -Lp /mnt > /mnt/etc/fstab
echo "arch-chroot"
arch-chroot /mnt/
echo "set hostname"
echo $myhost > /etc/hostname
#localization
echo "configure locale"
echo LANG=$LANG.UTF-8 > /etc/locale.conf
echo LANGUAGE=$LANG:$lang >> /etc/locale.conf
echo LC_COLLATE=$LANG.UTF-8 >> /etc/locale.conf
echo LC_TIME=$LANG.UTF-8 >> /etc/locale.conf
echo LC_MONETARY=$LANG.UTF-8 >> /etc/locale.conf
echo LC_NUMERIC=$LANG.UTF-8 >> /etc/locale.conf
echo LC_CTYPE=$LANG.UTF-8 >> /etc/locale.conf
echo LC_MESSAGES=$LANG.UTF-8 >> /etc/locale.conf
echo LC_PAPER=$LANG.UTF-8 >> /etc/locale.conf
echo LC_NAME=$LANG.UTF-8 >> /etc/locale.conf
echo LC_ADDRESS=$LANG.UTF-8 >> /etc/locale.conf
echo LC_TELEPHONE=$LANG.UTF-8 >> /etc/locale.conf
echo LC_MEASUREMENT=$LANG.UTF-8 >> /etc/locale.conf
echo LC_IDENTIFICATION=$LANG.UTF-8 >> /etc/locale.conf
echo LC_ALL= >> /etc/locale.conf
echo $LANG.UTF-8 UTF-8 >> /etc/locale.gen
echo $LANG ISO-8859-1 >> /etc/locale.gen
echo $LANG@euro ISO-8859-15 >> /etc/locale.gen
echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
locale-gen
echo "configure vconsole"
echo KEYMAP=$lang-latin1 > /etc/vconsole.conf
echo FONT=lat9w-16 >> /etc/vconsole.conf
ln -sf /usr/share/zoneinfo/$localtime /etc/localtime
echo "configure keyboard"
localectl set-x11-keymap [$layout] [$model] [$variant] [$options]
echo "aktivate all servers on mirrorlist"
"s/#Server/Server/g" /etc/pacman.d/mirrorlist
echo "set Initramfs"
mkinitcpio -p linux
if [[ set_user == true ]] ; then
echo "set rootpasswd and user"
echo -e $rootpasswd'\n'$rootpasswd | (passwd --stdin root)
useradd -p `mkpasswd "$user_passwd"` -d /home/"$user" -m -g users -G wheel,audio,video,games,power -s /bin/bash "$user"
cp /etc/sudoers /etc/sudoers.bak
sed 's/#%wheel ALL=(ALL) ALL /%wheel ALL=(ALL) ALL_/g'` /etc/sudoers
fi
echo "get internet connection and get fresh packages"
dhcpcd $Lan
pacman-key --init
pacman-key --populate archlinux
pacman -Syyu
echo "install grub"
pacman -S grub
grub-mkconfig -o /boot/grub/grub.cfg
if [[ BIOS == true ]] ; then grub-install /dev/sda ; fi
if [[ EFI == true ]] ; then grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub ; fi
echo "install and enable acpid and dbus"
pacman -S acpid dbus
systemctl enable acpid.service
systemctl enable dbus
if [[ "x$grafikdriver" != "x" ]] ; then echo "install x11"
pacman -S xorg-server xorg-xinit
pacman -S $grafikdriver
############Achtung in diesem Abschnitt sollen es Userrechte sein!!!! (Dies muss noch geändert werden)
cp /etc/X11/xinit/xinitrc /home/$user/.xinitrc
sed 's/twm &/# twm &/g'` /home/$user/.xinitrc
sed 's/clock -geometry 50x50-1+1 &/# clock -geometry 50x50-1+1 &/g'` /home/$user/.xinitrc
sed 's/xterm -geometry/# xterm -geometry/g'` /home/$user/.xinitrc
fi
if [[ $desktop == GNOME ]] ; then echo "install $desktop desktop"
sed 's/exec/# exec/g'` /home/$user/.xinitrc
echo "exec gnome-session" >> /home/$user/.xinitrc
pacman -S mutter gnome-desktop gnome-session networkmanager gnome-themes-standard nm-connection-editor gnome-control-center gnome-shell #gnome
elif [[ $desktop == plasma ]] ; then echo "install $desktop desktop"
sed 's/exec/# exec/g'` /home/$user/.xinitrc
echo "exec startkde" >> /home/$user/.xinitrc
pacman -S kwin plasma-desktop plasma-wayland-session plasma-nm plasma-pa plasma-nm breeze #plasma-meta networkmanager
elif [[ $desktop == Xfce ]] ; then echo "install $desktop desktop"
sed 's/exec/# exec/g'` /home/$user/.xinitrc
echo "exec startxfce4" >> /home/$user/.xinitrc
pacman -S openbox xfce4-session xfce4-panel human-icon-theme xfce4-terminal
elif [[ $desktop == LXDE ]] ; then echo "install $desktop desktop"
sed 's/exec/# exec/g'` /home/$user/.xinitrc
echo "exec startlxde" >> /home/$user/.xinitrc
pacman -S openbox lxsession lxpanel lxde-common lxde-icon-theme
elif [[ $desktop == LxQt ]] ; then echo "install $desktop desktop"
sed 's/exec/# exec/g'` /home/$user/.xinitrc
echo "exec startlxqt" >> /home/$user/.xinitrc
pacman -S openbox lxqt-session lxqt-pannel breeze-icons
fi
echo "install software selection"
pacman -S $packageselect
echo "install some language packages"
pacman -S man-pages-$lang
installed_package='pacman -Qs vim' && if [[ $installed_package == *"vim"* ]] ; then pacman -S vim-spell-$lang ; fi
installed_package='pacman -Qs aspell' && if [[ $installed_package == *"aspell"* ]] ; then pacman -S aspell-$lang ; fi
installed_package='pacman -Qs gimp' && if [[ $installed_package == *"gimp"* ]] ; then pacman -S gimp-help-$lang ; fi
installed_package='pacman -Qs hunspell' && if [[ $installed_package == *"hunspell"* ]] ; then pacman -S hunspell-$lang ; fi
installed_package='pacman -Qs firefox' && if [[ $installed_package == *"firefox"* ]] ; then pacman -S firefox-i18n-$lang ; fi
installed_package='pacman -Qs libreoffice-still' && if [[ $installed_package == *"libreoffice-still"* ]] ; then pacman -S libreoffice-still-$lang ; fi
installed_package='pacman -Qs libreoffice-fresh' && if [[ $installed_package == *"libreoffice-fresh"* ]] ; then pacman -S libreoffice-fresh-$lang ; fi
installed_package='pacman -Qs thunderbird' && if [[ $installed_package == *"thunderbird"* ]] ; then pacman -S thunderbird-i18n-$lang ; fi
installed_package='pacman -Qs plasma-desktop' && if [[ $installed_package == *"plasma-desktop"* ]] ; then pacman -S kde-l10n-$lang ; fi
installed_package='pacman -Qs bluegriffon' && if [[ $installed_package == *"bluegriffon"* ]] ; then pacman -S bluegriffon-i18n-$lang ; fi
installed_package='pacman -Qs hyphen' && if [[ $installed_package == *"hyphen"* ]] ; then pacman -S hyphen-$lang ; fi
installed_package='pacman -Qs kompozer' && if [[ $installed_package == *"kompozer"* ]] ; then pacman -S kompozer-i18n-$lang ; fi
echo "un-chroot"; exit
umount /dev/$disk'1'
echo "this configureation may not be needed: /etc/hosts, /etc/resolv.conf, /etc/modules-load.d/module.conf, /etc/pacman.conf"
echo ""
echo "All done"
echo "Do a reboot now"
echo "Configure BIOS for booting from disk"
exit 0
OKtuxnix schriebZur Idee:
Es sollte ein Skript ohne Menuführung sein.
Man tätigt seine Angaben in einen Konfigurationsabschnitt im Skript ein.
Ja, kann man erkennen, erschlägt einen aber ein wenig. Besser Schritt für Schritt sauber umsetzen und testen. Das mounten würde ich weglassen, und nur als Konfig "root=/mnt" mit aufnehmen.Ich hab vor kurzem so etwas mal ins Unreine geschrieben aber noch nichts davon getestet.
Wahrscheinlich ist die Hälfte des Codes noch fehlerhaft, aber den Grundgedanken sollte man schon mal erkennen können.
Mal schauen ob ich morgen früh ein wenig Zeit finde.... 😉
Das wird sicher das Beste sein.drcux schriebBesser Schritt für Schritt sauber umsetzen und testen.
Freue mich drauf hier was gemeinsam zu entwerfen.
In den arch-install-scripts gibt es doch das Script "genfstab".
Wie wäre es mit der Entwicklung eines Scripts namens "genlocale"?
Der Befehl könnte dann etwa so aussehen:
genlocale locale.conf-de /mnt > /mnt/etc/locale.conf
genlocale locale.gen-de /mnt > /mnt/etc/locale.gen
genlocale vconsole.conf-de /mnt > /mnt/etc/vconsole.conf
Der Gedanke dahinter ist nur, die in der Anleitung vorgesehenen Konfigurationen
etwas zu erleichtern. Denn beim Abschreiben der dortigen Inhalte können durchaus
leichte Fehler vorkommen, die ein Anfänger danach nicht mehr ohne weiteres lokalisieren kann.
Der Name der jeweiligen *.conf-Datei entspricht dem in der Anleitung beschriebenen.
Und damit die Sprache richtig eingestellt wird, das *-de dahinter, was durch jede andere Sprache ersetzt werden können sollte.
Man müßte nur an das Script genfstab herankommen. Ich habe noch nicht herausgefunden,
wie genau die arch-install-scripts aufgebaut sind.
Was meint ihr dazu?
Gruß
Manfred
Wie wäre es mit der Entwicklung eines Scripts namens "genlocale"?
Der Befehl könnte dann etwa so aussehen:
genlocale locale.conf-de /mnt > /mnt/etc/locale.conf
genlocale locale.gen-de /mnt > /mnt/etc/locale.gen
genlocale vconsole.conf-de /mnt > /mnt/etc/vconsole.conf
Der Gedanke dahinter ist nur, die in der Anleitung vorgesehenen Konfigurationen
etwas zu erleichtern. Denn beim Abschreiben der dortigen Inhalte können durchaus
leichte Fehler vorkommen, die ein Anfänger danach nicht mehr ohne weiteres lokalisieren kann.
Der Name der jeweiligen *.conf-Datei entspricht dem in der Anleitung beschriebenen.
Und damit die Sprache richtig eingestellt wird, das *-de dahinter, was durch jede andere Sprache ersetzt werden können sollte.
Man müßte nur an das Script genfstab herankommen. Ich habe noch nicht herausgefunden,
wie genau die arch-install-scripts aufgebaut sind.
Was meint ihr dazu?
Gruß
Manfred
- Bearbeitet
Zu den arch-install-scripts gehören
arch-chroot
genfstab
pacstrap
Alle drei sind sehr umfangreich. Ich kenne mich mit solchen Scripts nicht gut genug aus,
um selbst ans Werk gehen zu können, aber die Idee sollte Anreiz sein....
Gruß
Manfred
arch-chroot
genfstab
pacstrap
Alle drei sind sehr umfangreich. Ich kenne mich mit solchen Scripts nicht gut genug aus,
um selbst ans Werk gehen zu können, aber die Idee sollte Anreiz sein....
Gruß
Manfred
Eine Alternative könnte auch sein:
genlocale-de > /mnt/etc/
genlocale würde alle 3 Scripts intern produzieren und dann nacheinander nach /mnt/etc/ kopieren bzw. einrichten.
Möglicherweise müßte die Endung *-de noch genauer sein: *.de_DE, denn für de gibt es in der locale.gen mehrere verschiedene Ausgaben.
Gruß
Manfred
genlocale-de > /mnt/etc/
genlocale würde alle 3 Scripts intern produzieren und dann nacheinander nach /mnt/etc/ kopieren bzw. einrichten.
Möglicherweise müßte die Endung *-de noch genauer sein: *.de_DE, denn für de gibt es in der locale.gen mehrere verschiedene Ausgaben.
Gruß
Manfred
- Bearbeitet
@ManfredB
Vom Prinzip her ist es auch genau so gedacht. 🙂
Du kennst auch alle benötigten Befehle aus der Anleitung für Ensteiger
Wenn dort steht:
echo LANG=de_DE.UTF-8 > /etc/locale.conf
echo LANGUAGE=de_DE >> /etc/locale.conf
Ersetzt man das 'de_DE' durch eine Variable. Die nenne ich mal sinniger Weise 'LANG'.
Das kleine Skript dazu sähe dann so aus:
Ich denke mal, dass wir in etwa auch so anfangen werden. Ich warte aber auch noch gerne damit bis drcux etwas Zeit hat sich der Sache widmen zu können.
Dann können wir das Schritt für Schritt aufbauen.
Edit:
Im Thread #28 hab ich noch einige Ideen mehr dazu skizziert. Allerdings ist es besser klein anzufangen und alles Zeile für Zeile durch zu testen. Der Teufel steckt bekanntlich im Detail.
Auch gehört ein wenig Forschung Arbeit dazu. Schließlich möchte man auch exakt wissen, wie die Einträge in der Datei /etc/locale.conf vereinbart sind. locale.conf
Vom Prinzip her ist es auch genau so gedacht. 🙂
Du kennst auch alle benötigten Befehle aus der Anleitung für Ensteiger
Wenn dort steht:
echo LANG=de_DE.UTF-8 > /etc/locale.conf
echo LANGUAGE=de_DE >> /etc/locale.conf
Ersetzt man das 'de_DE' durch eine Variable. Die nenne ich mal sinniger Weise 'LANG'.
Das kleine Skript dazu sähe dann so aus:
#!/bin/bash
LANG=en_US #Kommentar: Setze hier deinen Ländercode ein. Z.B. de_DE für Deutschland oder en_US für die USA.
echo LANG=$LANG.UTF-8 > /etc/locale.conf
echo LANGUAGE=$LANG >> /etc/locale.conf
Beim Ausführen des Skripts werden die zwei Befehlszeilen automatisch ausgeführt, wobei $LANG jeweils durch den zugewiesenen Wert von 'LANG' also hier im Beispiel 'en_US' ersetzt wird.Ich denke mal, dass wir in etwa auch so anfangen werden. Ich warte aber auch noch gerne damit bis drcux etwas Zeit hat sich der Sache widmen zu können.
Dann können wir das Schritt für Schritt aufbauen.
Edit:
Im Thread #28 hab ich noch einige Ideen mehr dazu skizziert. Allerdings ist es besser klein anzufangen und alles Zeile für Zeile durch zu testen. Der Teufel steckt bekanntlich im Detail.
Auch gehört ein wenig Forschung Arbeit dazu. Schließlich möchte man auch exakt wissen, wie die Einträge in der Datei /etc/locale.conf vereinbart sind. locale.conf
Der zeninstaller hat ja ein einfaches System für die Erstellung der locale-Dateien.
Ich habe mir inzwischen auf meiner Daten-Partition ein Verzeichnis eingerichtet mit dem Namen:
ARCHlocale
Darin liegen die eingerichteten Dateien
locale.conf
locale.gen
vconsole.conf
Es ist nun egal, ob ich mit der archinstall-iso oder aus einer bestehenden Installatieo heraus ArchLinux neu installiere.
Ich brauche nur das Verzeichnis öffnen und die drei Dateien herüberkopieren.
Das ist natürlich keine Hilfe für Leute, die ArchLinux ganz neu installieren, zB neben Windows10.
Dabei kam mir aber die Idee: wie aufwändig ist es wohl, Pakete mit den jeweiligen Sprachen
in die repos aufzunehmen. Wahrscheinlich nicht machbar....
Gruß
Manfred
Ich habe mir inzwischen auf meiner Daten-Partition ein Verzeichnis eingerichtet mit dem Namen:
ARCHlocale
Darin liegen die eingerichteten Dateien
locale.conf
locale.gen
vconsole.conf
Es ist nun egal, ob ich mit der archinstall-iso oder aus einer bestehenden Installatieo heraus ArchLinux neu installiere.
Ich brauche nur das Verzeichnis öffnen und die drei Dateien herüberkopieren.
Das ist natürlich keine Hilfe für Leute, die ArchLinux ganz neu installieren, zB neben Windows10.
Dabei kam mir aber die Idee: wie aufwändig ist es wohl, Pakete mit den jeweiligen Sprachen
in die repos aufzunehmen. Wahrscheinlich nicht machbar....
Gruß
Manfred
- Bearbeitet
Klar, das klappt. Ist auch interessant zu erfahren wie sich jeder so seine Tricks erarbeitet.ManfredB schriebIch brauche nur das Verzeichnis öffnen und die drei Dateien herüber kopieren.
JaDas ist natürlich keine Hilfe für Leute, die Arch Linux ganz neu installieren,
Gerade das wollte ich dir mit dem kleinen Beispiel oben vermitteln. Es ist gar nicht nötig dutzende Dateien für den gleichen Zweck zu haben.Dabei kam mir aber die Idee: wie aufwändig ist es wohl, Pakete mit den jeweiligen Sprachen
in die repos aufzunehmen. Wahrscheinlich nicht machbar....
Jeder Benutzer kann seinen eigenen Ländercode einsetzen und das Skript macht den Rest.
Deshalb heißt die Variable ja auch Variable.
Der Befehl 'echo LANG=de_DE.UTF-8 > /etc/locale.conf' (und die daran folgenden Zeilen) machen im Prinzip dann nichts anderes als du, wenn du die Datei rüber kopierst.
'echo LANG=de_DE.UTF-8' bedeutet: Mache die Ausgabe "LANG=de_DE.UTF-8" und das '> /etc/locale.conf' bedeutet schreibe diese Ausgabe in die Datei /etc/locale.conf.
Man fängt meistens mit dem Skript-Coden an, wenn es Aufgaben gibt die man immer wieder erledigen muss und möchte, dass der Computer dies für einen erledigt.
Im Grunde ist ein Skript nichts anderes als ein Arbeitszettel den der PC selbstständig ausführen kann.
Ich hoffe ich habe bei dir das Interesse daran etwas befördert.
Aber die Grundkenntnisse solltest du dir selbst erarbeiten. Es gibt sehr schöne Anleitungen dazu im Netz.
Es gibt ja keinen Mangel an Installern die das können. Und hier auf https://wiki.archlinux.de/title/Arch-Derivate sind sie alle aufgelistet.Der Zeninstaller hat ja ein einfaches System für die Erstellung der locale-Dateien.
Was sie alle nicht können hat Werner sehr schön in einem Satz auf den Punkt gebracht.
Sie erledigen die Installation aber hinterher weiß keiner was der Installer denn eigentlich alles getan hat.
Ein Skript, das man mit 5-6 Variablen an seine Bedürfnisse anpasst hat aber den Vorteil gegenüber grafischen oder halbgrafischen Lösungen, dass man es lesen kann wie ein Wiki-Artikel.
Man hätte also sowohl einen Spickzettel als auch die Möglichkeit es automatisch ausführen zu lassen in einem.
Natürlich ist das keine Lösung für den blutigen Laien. Aber für den gibt es ausreichend andere Möglichkeiten (Manjaro). Es wäre aber für viele Arch Nutzer eine Erleichterung und Zeitersparnis.
Ich z.B. muss auch noch beim 10 mal Arch aufsetzen immer noch in die Wiki schauen, weil ich mir nicht alles merken kann. Da wäre so ein automatischer Spickzettel schon eine Erleichterung.
Soweit meine Motivation so ein Skript zu erstellen.
Da gebe ich dir in allem recht.
Ich habe vor Jahren auch mal scripts geschrieben, um Sachen zu testen.
Doch das ist so lange her, daß ich heute wieder bei Null anfangen müßte.
Vor allem ein solches Script, wie es euch hier vorschwebt mit der Möglichkeit,
einen Wunsch einzugeben, und das Script erledigt diese Aufgabe.
Mir fällt gerade ein, daß es zB bei Gentoo das Programm eselect gibt,
zB eselect locale list und dann eselect locale set
Wenn ich eingebe: eselect locale list
wird mir eine lange Liste von Sprachen angezeigt,
aus denen ich die für mich passende auswählen kann.
Diese Sprachen haben Nummern, zb 6 für de-DE oder 9 für de_DE.utf8
Setze ich nun diese Sprache fest:
eselect locale set 6 bzw 9
muß ich anschließend
env-update && source /etc/profile
eingeben, damit ab sofort diese Sprache genutzt wird.
Leider wird hier keine locale.conf, locale.gen oder vconsole.conf
zubereitet.
Aber so könnte es auch laufen, wenn man das ändert.
Gruß
Manfred
Mit eselect locale list wäre es bei ArchLinux vielleicht auch machbar.
Ich habe vor Jahren auch mal scripts geschrieben, um Sachen zu testen.
Doch das ist so lange her, daß ich heute wieder bei Null anfangen müßte.
Vor allem ein solches Script, wie es euch hier vorschwebt mit der Möglichkeit,
einen Wunsch einzugeben, und das Script erledigt diese Aufgabe.
Mir fällt gerade ein, daß es zB bei Gentoo das Programm eselect gibt,
zB eselect locale list und dann eselect locale set
Wenn ich eingebe: eselect locale list
wird mir eine lange Liste von Sprachen angezeigt,
aus denen ich die für mich passende auswählen kann.
Diese Sprachen haben Nummern, zb 6 für de-DE oder 9 für de_DE.utf8
Setze ich nun diese Sprache fest:
eselect locale set 6 bzw 9
muß ich anschließend
env-update && source /etc/profile
eingeben, damit ab sofort diese Sprache genutzt wird.
Leider wird hier keine locale.conf, locale.gen oder vconsole.conf
zubereitet.
Aber so könnte es auch laufen, wenn man das ändert.
Gruß
Manfred
Mit eselect locale list wäre es bei ArchLinux vielleicht auch machbar.
- Bearbeitet
So, ich habe dieses eselect-Programm von gentoo eben mal unter ArchLinux installiert.
Dann habe ich eselect locale list eingegeben und folgendes Ergebnis bekommen:
Gruß
Manfred
Dann habe ich eselect locale list eingegeben und folgendes Ergebnis bekommen:
eselect locale list
Available targets for the LANG variable:
[1] C
[2] de_DE
[3] de_DE@euro
[4] de_DE.iso88591
[5] de_DE.iso885915@euro
[6] de_DE.utf8
[7] deutsch
[8] german
[9] POSIX
[ ] (free form)
Also zeigt es auch in ArchLinux an, was ich schon beschrieben habe.Gruß
Manfred
- Bearbeitet
Ich habe mal für den Anfang etwas gebastelt, so stell ich mir das vor:
#!/bin/bash
# start as root?
if [ $UID -ne 0 ]
then sudo bash -c "$0 $*"; exit $?
fi
# stop in a clean way
trap cleanupandexit 0 1 2 3 15
# print help message
usage()
{
cat << EOF
usage: $0 options
With genlocale you can create needed locale files for arch linux.
-h Helpmessage
-l LANG Choose language
-r DIR Root file system
-x With XOrg
Example:
genlocale -l de_DE -r /mnt -x
EOF
}
cleanupandexit()
{
echo $message
exit $rc
}
# optargs
while getopts "l:r:xh" OPTION
do
case $OPTION in
h)
usage
exit 1
;;
l)
lang=$OPTARG
;;
r)
rootfs=$OPTARG
;;
x)
xorg=1
;;
esac
done
# check $rootfs
if [ ! -e "$rootfs/etc/locale.gen" ]
then
rc=1; message="Rootfs $rootfs isn't a install directory!"; cleanupandexit
fi
# check $lang
grep "#$lang" "$rootfs/etc/locale.gen" 1> /dev/null
if [ $? != "0" ]
then
rc=1; message="Language $lang doesn't exist!"; cleanupandexit
fi
# edit locale.gen
sed -ie "s/#$lang/$lang/g" "$rootfs/etc/locale.gen"
# #### test ####
echo $lang $rootfs $xorg
rc=0; message=OK; cleanupandexit