Compare commits
13 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d3ff64bb66 | ||
![]() |
f362a4c2bd | ||
![]() |
ba3589be8a | ||
![]() |
c882db3239 | ||
![]() |
6a639a69c1 | ||
![]() |
6708c97aaa | ||
![]() |
ab9604e9ad | ||
![]() |
373b0cf8a1 | ||
![]() |
a83afb40b2 | ||
![]() |
e82ec1149c | ||
![]() |
b49778ed90 | ||
![]() |
54e0e2395f | ||
![]() |
b863f262bf |
12
README.md
|
@ -1,6 +1,6 @@
|
|||
# Setup neuer Rechner
|
||||
|
||||
## Beschreibung
|
||||
Dieses Repository enthält Skripte und Tools, die zum Einrichten neuer Systeme verwendet werden.
|
||||
|
||||
Bitte die Readme-Dateien in den Unterordnern, mit den Namen der Betriebssysteme ansehen, um weitere Informationen über die Verwendung der Skripte zu erhalten.
|
||||
# Setup neuer Rechner
|
||||
|
||||
## Beschreibung
|
||||
Dieses Repository enthält Skripte und Tools, die zum Einrichten neuer Systeme verwendet werden.
|
||||
|
||||
Bitte etwaige Readme-Dateien in den Unterordnern beachten, um weitere Informationen über die Verwendung der Skripte zu erhalten.
|
||||
|
|
|
@ -1,136 +0,0 @@
|
|||
|
||||
Anleitung zur Vorbereitung einer Windows10-ISO für eine (fast) automatische Installation
|
||||
|
||||
benötigte Software:
|
||||
|
||||
+ Windows 10 ISO in neuester Version
|
||||
+ Rufus: [https://rufus.ie/](https://rufus.ie/)
|
||||
+ ImgBurn: [http://www.imgburn.com/](http://www.imgburn.com/)
|
||||
+ autounattend.xml [hier aus dem repo runterladen](../windows/autounattend.xml)
|
||||
+ Powershell-Script für die Installation [hier aus dem repo runterladen](../windows/Setup.ps1)
|
||||
+ USB-Stick mind. 8GB
|
||||
+ Einen Rechner auf dem Windows installiert ist
|
||||
|
||||
Nachdem alle notwendige Software installiert ist können wir beginnen.
|
||||
|
||||
a) Entpacke die Windows 10-ISO an einen Ort wo du sie wiederfindest
|
||||
|
||||
1. die Windows 10 kann unter Windows sehr einfach als Laufwerk gemountet werden. Entweder indem man einen Doppelklick auf die ISO macht oder einen Rechtsklick auf die ISO macht und dann „Bereitstellen“ auswählt. 
|
||||
|
||||
Die Windows-ISO wird damit als neues Laufwerk gemountet und in einem Fenster geöffnet. (In meinem Fall ist der Laufwerkbuchstabe H:)
|
||||
|
||||

|
||||
|
||||
2. Kopiere den gesamten Inhalt der Windows-ISO. Mit Strg+A kann der gesamte Inhalt markiert werden. Dann Rechtsklick → Kopieren auswählen
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
3. Füge das kopierte an der vorher gewählten Stelle wieder ein. In meinem Fall ist der Ordner "Win 10"
|
||||
|
||||

|
||||
|
||||
b) Kopiere die vorher runtergeladene autounattend.xml in das Stammverzeichnis der entpackten ISO, sodass es aussieht wie hier:
|
||||
|
||||

|
||||
|
||||
c) Als nächstes muss noch das Powershell-Script an die passende der ISO kopieren, dies ist allerdings etwas aufwändiger und braucht eine Powershell. Bitte der Anleitung an dieser Stelle Schritt für Schritt folgen und die Pfade mit den korrekten Pfaden ersetzen:
|
||||
|
||||
1. Öffne eine Administrator-Powershell. Dazu kann einfach mit derWindows-Suche im Startmenü nach Powershell gesucht werden. Mit einem Rechtsklick kann eine Administrator-Powershell geöffnet werden:
|
||||
|
||||

|
||||
|
||||
2. Prüfe nochmals dass du in einer Administrator-Powershell bist. Wenn alles korrekt ist, sollte „system32“ im Pfad zu sehen sein:
|
||||
|
||||

|
||||
|
||||
3. Wechsle nun in das Hauptverzeichnis der Systemplatte (in meinem Fall ist dies C:). Dazu kannst du den „cd“-Befehl nutzen. Für meinen Fall lautet das Command also:
|
||||
|
||||
cd C:\
|
||||
|
||||
4. Erstelle dort ein Verzeichnis. Das wirst du später brauchen. Ich hab meines „iso“ genannt. Um das Verzeichnis zu erstellen lautet der Befehl:
|
||||
|
||||
mkdir iso
|
||||
|
||||
5. Nutze jetzt das Tool DISM in der Powershell um die install.wim der ausgepackten ISO zu inspizieren. Dazu kommt folgender Befehl zum Einsatz (der Pfad ist entsprechend anzuspassen):
|
||||
|
||||
dism /Get-WimInfo /WimFile:C:\Users\Stefan\Desktop\test\Win10\sources\install.wim
|
||||
|
||||
Dies zeigt alle in der ISO vorhandenen Installationsmöglichkeiten, wie hier zu sehen:
|
||||
|
||||

|
||||
|
||||
6. Mounte den entsprechenden Index (Nummer der Installationsmöglichkeit aus der Liste zuvor) in in Nr. 4 erstellten Ordner. In meinem Beispiel habe ich Windows 10 Home gewählt, deshalb ist meine Index-Nummer 1. Für Windows 10 Pro müsste Index-Nummer 5 gewählt werden. Gemountet wird die install.wim mit folgendem Befehl:
|
||||
|
||||
dism /Mount-Wim /WimFile:C:\Users\Stefan\Desktop\test\Win10\sources\install.wim /index:1 /MountDir:C:\iso
|
||||
|
||||
wenn der Vorgang abgeschlossen ist befindet sich unter C:\iso die Systemfestplatte die bei einer neuen Windows-Installation kopiert wird. Dies bedeutet wenn wir dort eine Datei hineintun und die install.wim wieder schließen. Bei einer neuen Installation mit dem modifizierten ISO ist die Datei dann in der neuen Installation auch an der gleichen Stelle zu finden.
|
||||
|
||||
7. Kopiere nun die am Anfang runtergeladene Setup.ps1 (Powershell-Script) in das Verzeichnis C:\iso sodass es aussieht wie hier (für das Kopieren ist eine Bestätigung als Administrator erforderlich.):
|
||||
|
||||

|
||||
|
||||
8. Sobald dies erledigt ist musst du nur noch die Änderungen „commiten“ und die install.wim unmounten. Stelle vorher sicher dass kein Fenster des Windows-Explorer mehr geöffnet ist! Dies erledigt dieser Befehl:
|
||||
|
||||
dism /Unmount-Image /MountDir:C:\iso /Commit
|
||||
|
||||
9. (optinal) Die Schritte 5 – 8 müssen nun noch für alle anderen Indexe wiederholt werden, die das Script ebenfalls enthalten sollen. Statt Index 1 für Windows 10 Home kann dann bsw. Index-Nummer 5 für Windows 10 Pro verwendet werden. Wenn alle gewünschten Indexe modifiziert sind kann mit der Anleitung fortgefahren werden.
|
||||
|
||||
d) Im nächsten Schritt erstellen wir aus unserem Ordner mit der entpackten ISO wieder eine Windows 10-ISO die auf einen USB-Stick kopiert werden kann und für eine Installation verwendet werden kann.
|
||||
|
||||
Dazu startest du einfach das Programm ImgBurn und folgst den Screenshots:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
e) im letzten Schritt kann die ISO dann mithilfe des Programms Rufus auf einen USB-Stick kopiert werden. Starte dazu das Programm Rufus und folge der Anleitung:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Bei der Erstellung des Sticks darauf achten ob das Zielsystem BIOS oder UEFI nutzt und die Einstellungen entsprechend anpassen. (siehe Screenshot 31-UEFI oder 31-BIOS)
|
||||
|
||||
BIOS:
|
||||
|
||||

|
||||
|
||||
UEFI:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Sobald Rufus die ISO auf den Stick geschrieben hat kann der USB-Stick für die Installation von Windows 10 verwendet werden.
|
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 29 KiB |
|
@ -1,130 +0,0 @@
|
|||
# My preseed file for Kubuntu 20.0 LTS
|
||||
|
||||
d-i debian-installer/locale string de_DE
|
||||
d-i localechooser/supported-locales multiselect de_DE.UTF-8, en_GB.UTF-8, ar_SY.UTF-8, fa_IR.UTF-8, uz_Arab_AF.UTF-8
|
||||
d-i keyboard-configuration/xkb-keymap select de
|
||||
d-i keyboard-configuration/layoutcode string de
|
||||
# Optionally specify additional locales to be generated.
|
||||
|
||||
d-i debian-installer/splash boolean false
|
||||
d-i console-setup/ask_detect boolean false
|
||||
d-i console-setup/layoutcode string de
|
||||
d-i console-setup/variantcode string
|
||||
|
||||
# Enable extras.ubuntu.com.
|
||||
d-i apt-setup/extras boolean true
|
||||
|
||||
|
||||
### Partitioning
|
||||
# If the system has free space you can choose to only partition that space.
|
||||
# This is only honoured if partman-auto/method (below) is not set.
|
||||
#d-i partman-auto/init_automatically_partition select biggest_free
|
||||
|
||||
# Alternatively, you may specify a disk to partition. If the system has only
|
||||
# one disk the installer will default to using that, but otherwise the device
|
||||
# name must be given in traditional, non-devfs format (so e.g. /dev/sda
|
||||
# and not e.g. /dev/discs/disc0/disc).
|
||||
# For example, to use the first SCSI/SATA hard disk:
|
||||
#d-i partman-auto/disk string /dev/sda
|
||||
# In addition, you'll need to specify the method to use.
|
||||
# The presently available methods are:
|
||||
# - regular: use the usual partition types for your architecture
|
||||
# - lvm: use LVM to partition the disk
|
||||
# - crypto: use LVM within an encrypted partition
|
||||
#d-i partman-auto/method string regular
|
||||
|
||||
# You can choose one of the three predefined partitioning recipes:
|
||||
# - atomic: all files in one partition
|
||||
# - home: separate /home partition
|
||||
# - multi: separate /home, /var, and /tmp partitions
|
||||
#d-i partman-auto/choose_recipe select atomic
|
||||
|
||||
#d-i partman/default_filesystem string ext3
|
||||
d-i partman/choose_partition select finish
|
||||
|
||||
# If one of the disks that are going to be automatically partitioned
|
||||
# contains an old LVM configuration, the user will normally receive a
|
||||
# warning. This can be preseeded away...
|
||||
d-i partman-lvm/device_remove_lvm boolean true
|
||||
# The same applies to pre-existing software RAID array:
|
||||
d-i partman-md/device_remove_md boolean true
|
||||
# And the same goes for the confirmation to write the lvm partitions.
|
||||
d-i partman-lvm/confirm boolean true
|
||||
d-i partman-lvm/confirm_nooverwrite boolean true
|
||||
|
||||
# Just in case, the positive answer to all other imagineable conformation questions:
|
||||
d-i partman-partitioning/confirm_write_new_label boolean true
|
||||
d-i partman/confirm boolean true
|
||||
d-i partman/confirm_nooverwrite boolean true
|
||||
d-i partman/confirm_write_new_label boolean true
|
||||
d-i partman-md/confirm boolean true
|
||||
|
||||
# Time
|
||||
d-i time/zone string Europe/Berlin
|
||||
d-i clock-setup/utc boolean true
|
||||
d-i clock-setup/ntp boolean true
|
||||
d-i clock-setup/ntp-server string ntp.ubuntu.com
|
||||
|
||||
### Mirror settings
|
||||
# If you select ftp, the mirror/country string does not need to be set.
|
||||
#d-i mirror/protocol string ftp
|
||||
#d-i mirror/country string manual
|
||||
#d-i mirror/http/hostname string http.us.debian.org
|
||||
#d-i mirror/http/directory string /debian
|
||||
d-i mirror/http/proxy string http://apt-proxy:3142
|
||||
|
||||
# LinuxMint will *demand* a user during installation, ignoring the value
|
||||
# of the passwd/make-user flag, so we need to provide the user data here.
|
||||
# You should not preseed the password in clear text, this is just an example!
|
||||
# Set to 'oem'
|
||||
d-i passwd/user-fullname string OEM
|
||||
d-i passwd/username string oem
|
||||
d-i passwd/user-password-crypted password $6$VxY8Sv9YSjh6nfrd$pIxEGR3UjMLQ5bjtw4AOU/SMD8BZmGzSWDhA6hJvnOyQdKZty3Yvpsms.3Nty28SQEMcwVFEESjYbZuut0X6I0.
|
||||
d-i passwd/user-password-again password $6$VxY8Sv9YSjh6nfrd$pIxEGR3UjMLQ5bjtw4AOU/SMD8BZmGzSWDhA6hJvnOyQdKZty3Yvpsms.3Nty28SQEMcwVFEESjYbZuut0X6I0.
|
||||
d-i passwd/root-login boolean false
|
||||
d-i user-setup/encrypt-home boolean false
|
||||
d-i user-setup/allow-password-weak boolean true
|
||||
|
||||
|
||||
# Use non-free packages
|
||||
ubiquity ubiquity/use_nonfree boolean true
|
||||
|
||||
# Install the Kubuntu desktop.
|
||||
tasksel tasksel/first multiselect kubuntu-desktop
|
||||
# Install KDE translation packages.
|
||||
d-i pkgsel/language-pack-patterns string language-pack-kde-$LL kde-i18n-$LL
|
||||
# Install the KDE oem-config frontend (if in OEM mode).
|
||||
d-i oem-config-udeb/frontend string kde
|
||||
# On live DVDs, don't spend huge amounts of time removing substantial
|
||||
# application packages pulled in by language packs. Given that we clearly
|
||||
# have the space to include them on the DVD, they're useful and we might as
|
||||
# well keep them installed.
|
||||
ubiquity ubiquity/keep-installed string icedtea6-plugin openoffice.org
|
||||
|
||||
#### Advanced options
|
||||
### Running custom commands during the installation
|
||||
# d-i preseeding is inherently not secure. Nothing in the installer checks
|
||||
# for attempts at buffer overflows or other exploits of the values of a
|
||||
# preconfiguration file like this one. Only use preconfiguration files from
|
||||
# trusted locations! To drive that home, and because it's generally useful,
|
||||
# here's a way to run any shell command you'd like inside the installer,
|
||||
# automatically.
|
||||
|
||||
# This first command is run as early as possible, just after
|
||||
# preseeding is read.
|
||||
#d-i preseed/early_command string anna-install some-udeb
|
||||
# This command is run immediately before the partitioner starts. It may be
|
||||
# useful to apply dynamic partitioner preseeding that depends on the state
|
||||
# of the disks (which may not be visible when preseed/early_command runs).
|
||||
#d-i partman/early_command \
|
||||
# string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
|
||||
# This command is run just before the install finishes, but when there is
|
||||
# still a usable /target directory. You can chroot to /target and use it
|
||||
# directly, or use the apt-install and in-target commands to easily install
|
||||
# packages and run commands in the target system.
|
||||
#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
|
||||
# Script am Ende
|
||||
#d-i preseed/late_command string wget -O - http://netboot/kubuntu_late_command.sh | bash
|
||||
|
||||
# on target:
|
||||
d-i preseed/late_command string chroot /target bash /cdrom/preseed/kubuntu_late_command.sh
|
|
@ -1,224 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# execute self with sudo if user is not root
|
||||
[[ $UID -ne 0 ]] && exec sudo ./"$0"
|
||||
|
||||
###
|
||||
# Set variables
|
||||
###
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
DPKG_CFG_FRAGMENT=/etc/dpkg/dpkg.cfg.d/non-interactive
|
||||
|
||||
# Linux distro
|
||||
script_distro='Kubuntu Linux 20.4.0'
|
||||
|
||||
# Additional packages
|
||||
packages=(
|
||||
# Graphics
|
||||
gimp
|
||||
inkscape
|
||||
pinta
|
||||
krita
|
||||
|
||||
# Office
|
||||
libreoffice
|
||||
|
||||
# Security
|
||||
keepassxc
|
||||
|
||||
# Games
|
||||
#0ad
|
||||
beneath-a-steel-sky
|
||||
billard-gl
|
||||
blobby
|
||||
blockout2
|
||||
flight-of-the-amazon-queen
|
||||
freeciv
|
||||
frozen-bubble
|
||||
gbrainy
|
||||
gnome-games
|
||||
gweled
|
||||
hedgewars
|
||||
lincity-ng
|
||||
lure-of-the-temptress
|
||||
minetest
|
||||
openttd
|
||||
pingus
|
||||
pipewalker
|
||||
pokerth
|
||||
supertux
|
||||
supertuxkart
|
||||
teeworlds
|
||||
wesnoth
|
||||
widelands
|
||||
|
||||
# Gaming platforms
|
||||
playonlinux
|
||||
steam
|
||||
wine-stable
|
||||
winetricks
|
||||
|
||||
# System management
|
||||
kpartx
|
||||
oem-config
|
||||
|
||||
# Tools
|
||||
f3
|
||||
hardinfo
|
||||
regionset
|
||||
vim
|
||||
|
||||
# Media
|
||||
cheese
|
||||
vlc
|
||||
|
||||
# Knowledge (incl. programs from the former ubunbu-edu-* meta packages)
|
||||
blinken
|
||||
calibre
|
||||
cantor
|
||||
chemtool
|
||||
dia
|
||||
einstein
|
||||
fritzing
|
||||
gamine
|
||||
gcompris
|
||||
goldendict
|
||||
inkscape
|
||||
kalgebra
|
||||
kalzium
|
||||
kanagram
|
||||
kbruch
|
||||
kgeography
|
||||
khangman
|
||||
kig
|
||||
klettres
|
||||
kmplot
|
||||
kstars
|
||||
ktouch
|
||||
ktuberling
|
||||
kturtle
|
||||
kwordquiz
|
||||
laby
|
||||
lightspeed
|
||||
lybniz
|
||||
marble
|
||||
melting
|
||||
parley
|
||||
pencil2d
|
||||
ri-li
|
||||
rocs
|
||||
step
|
||||
tuxmath
|
||||
tuxpaint
|
||||
tuxtype
|
||||
yorick
|
||||
|
||||
# Language support
|
||||
language-selector-common
|
||||
openoffice.org-hyphenation
|
||||
language-pack-kde-ar
|
||||
language-pack-kde-uk
|
||||
language-pack-kde-ru
|
||||
language-pack-kde-fa
|
||||
)
|
||||
|
||||
###
|
||||
# Functions
|
||||
###
|
||||
|
||||
# $*: message to echo
|
||||
e() {
|
||||
printf "\e[31m>>>\e[0m %s\n" "$*"
|
||||
}
|
||||
|
||||
# It's a pain to stop (ctrl+c, kill) execution with all the Python applications
|
||||
# so we catch SIGINT and SIGTERM and exit immediately
|
||||
handle_signal() {
|
||||
e "Ausführung abgebrochen! Skript wird beendet."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# always executed on shell exit regardless of reason. for cleanup tasks
|
||||
handle_exit() {
|
||||
e "Finales Cleanup wird durchgeführt …"
|
||||
rm -f "$DPKG_CFG_FRAGMENT"
|
||||
}
|
||||
|
||||
trap handle_signal SIGINT SIGTERM
|
||||
trap handle_exit EXIT
|
||||
|
||||
pkg() {
|
||||
apt install "$@" --yes --quiet
|
||||
}
|
||||
|
||||
###
|
||||
# Greeting
|
||||
###
|
||||
echo "\
|
||||
#####################################
|
||||
# Computertruhe-Installationsskript #
|
||||
#####################################
|
||||
|
||||
###
|
||||
# Maintainer: Computertruhe e. V.
|
||||
# Website: https://computertruhe.de/
|
||||
# Version: 1.0.0
|
||||
# Repo: https://codeberg.org/Computertruhe/computertruhe-setup
|
||||
# Distro: ${script_distro}
|
||||
###
|
||||
"
|
||||
e "Starte initiales Setup für Rechner mit frisch installiertem '${script_distro}' …"
|
||||
|
||||
# ChCh apt proxy benutzen (bedingt = wenn da)
|
||||
ping -c 1 apt-proxy
|
||||
if [ "$?" -eq "0" ]; then
|
||||
echo 'Acquire::https::Proxy "http://apt-proxy:3142";' > /etc/apt/apt.conf.d/01aptproxy
|
||||
echo 'Acquire::http::Proxy "http://apt-proxy:3142";' >> /etc/apt/apt.conf.d/01aptproxy
|
||||
e "Proxy Apt-Aktiv"
|
||||
else
|
||||
e "Kein Apt-Proxy"
|
||||
fi
|
||||
echo 'Dpkg::Options "--force-unsafe-io";' >> /etc/apt/apt.conf.d/01aptproxy
|
||||
|
||||
|
||||
###
|
||||
# Automatic installation
|
||||
###
|
||||
# place temporary dpkg configurations to ensure non-interactive upgrade
|
||||
cat <<'DPKG' >"$DPKG_CFG_FRAGMENT"
|
||||
force-confold
|
||||
force-confdef
|
||||
DPKG
|
||||
|
||||
e "Paketquellen aktualisieren …"
|
||||
apt update --yes --quiet
|
||||
|
||||
e "System aktualisieren (apt) …"
|
||||
apt full-upgrade --yes --quiet
|
||||
|
||||
e "Proprietäre Treiber installieren (sofern verfügbar) …"
|
||||
ubuntu-drivers autoinstall
|
||||
|
||||
e "Zusätzliche Software installieren …"
|
||||
pkg "${packages[@]}"
|
||||
|
||||
e "Sprachunterstützung vervollständigen …"
|
||||
pkg $(check-language-support)
|
||||
pkg fonts-arabeyes
|
||||
|
||||
# these packages have to be installed after "$(check-language-support)"
|
||||
pkg hunspell-de-at hunspell-de-ch hunspell-de-de hunspell-uk hunspell-ru
|
||||
|
||||
e "Unnötige Pakete entfernen und Cache bereinigen …"
|
||||
apt clean --yes --quiet
|
||||
apt autoremove --yes --quiet
|
||||
|
||||
|
||||
###
|
||||
# Finalisation
|
||||
###
|
||||
e "Apt proxy wieder entfernen..."
|
||||
rm /etc/apt/apt.conf.d/01aptproxy
|
||||
|
||||
e "Initiales Setup beendet."
|
||||
oem-config-prepare
|
|
@ -1,172 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# execute self with sudo if user is not root
|
||||
[[ $UID -ne 0 ]] && exec sudo ./"$0"
|
||||
|
||||
###
|
||||
# Set variables
|
||||
###
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
DPKG_CFG_FRAGMENT=/etc/dpkg/dpkg.cfg.d/non-interactive
|
||||
|
||||
# Linux distro
|
||||
script_distro='Kubuntu Linux 22.04'
|
||||
|
||||
# Additional packages
|
||||
packages=(
|
||||
libreoffice
|
||||
keepassxc
|
||||
kpartx
|
||||
# oem-config
|
||||
hardinfo
|
||||
regionset
|
||||
cheese
|
||||
vlc
|
||||
|
||||
# Language support
|
||||
language-selector-common
|
||||
openoffice.org-hyphenation
|
||||
|
||||
# AR
|
||||
language-pack-kde-ar
|
||||
fonts-arabeyes
|
||||
hunspell-ar
|
||||
libreoffice-l10n-ar
|
||||
mythes-ar
|
||||
hunspell-ar
|
||||
thunderbird-locale-ar
|
||||
|
||||
# DE
|
||||
language-pack-kde-de # Installed only with Internet connection during the OEM setup.
|
||||
firefox-locale-de
|
||||
thunderbird-locale-de # Installed only with Internet connection during the OEM setup.
|
||||
hunspell-de-de
|
||||
mythes-de
|
||||
hyphen-de
|
||||
mythes-de
|
||||
|
||||
# EN
|
||||
thunderbird-locale-en-gb
|
||||
|
||||
# FA
|
||||
language-pack-kde-fa
|
||||
firefox-locale-fa
|
||||
thunderbird-locale-fa
|
||||
libreoffice-l10n-fa
|
||||
myspell-fa
|
||||
|
||||
# RU
|
||||
language-pack-kde-ru
|
||||
firefox-locale-ru
|
||||
thunderbird-locale-ru
|
||||
hyphen-ru
|
||||
mythes-ru
|
||||
hunspell-ru
|
||||
|
||||
# UK
|
||||
language-pack-kde-uk
|
||||
libreoffice-l10n-uk
|
||||
firefox-locale-uk
|
||||
thunderbird-locale-uk
|
||||
hyphen-uk
|
||||
mythes-uk
|
||||
hunspell-uk
|
||||
wukrainian
|
||||
)
|
||||
|
||||
###
|
||||
# Functions
|
||||
###
|
||||
|
||||
# $*: message to echo
|
||||
e() {
|
||||
printf "\e[31m>>>\e[0m %s\n" "$*"
|
||||
}
|
||||
|
||||
# It's a pain to stop (ctrl+c, kill) execution with all the Python applications
|
||||
# so we catch SIGINT and SIGTERM and exit immediately
|
||||
handle_signal() {
|
||||
e "Ausführung abgebrochen! Skript wird beendet."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# always executed on shell exit regardless of reason. for cleanup tasks
|
||||
handle_exit() {
|
||||
e "Finales Cleanup wird durchgeführt …"
|
||||
rm -f "$DPKG_CFG_FRAGMENT"
|
||||
rm -f /etc/apt/apt.conf.d/01aptproxy
|
||||
}
|
||||
|
||||
trap handle_signal SIGINT SIGTERM
|
||||
trap handle_exit EXIT
|
||||
|
||||
pkg() {
|
||||
apt install "$@" --yes --quiet
|
||||
}
|
||||
|
||||
###
|
||||
# Greeting
|
||||
###
|
||||
echo "\
|
||||
#####################################
|
||||
# Computertruhe-Installationsskript #
|
||||
#####################################
|
||||
|
||||
###
|
||||
# Maintainer: Computertruhe e. V.
|
||||
# Website: https://computertruhe.de/
|
||||
# Version: 1.0.1
|
||||
# Repo: https://codeberg.org/Computertruhe/computertruhe-setup
|
||||
# Distro: ${script_distro}
|
||||
###
|
||||
"
|
||||
e "Starte initiales Setup für Rechner mit frisch installiertem '${script_distro}' …"
|
||||
|
||||
# Generell auto-apt-proxy installieren
|
||||
# tut nicht weh und erweitert apt jetzt und in Zukunft, einen host apt-proxy oder andere
|
||||
# z.b. in SRV-Records benannte caches zu verwenden. gut für spätere updates.
|
||||
e "Apt proxy automatisch verwenden"
|
||||
apt install auto-apt-proxy
|
||||
|
||||
###
|
||||
# Automatic installation
|
||||
###
|
||||
# place temporary dpkg configurations to ensure non-interactive upgrade
|
||||
cat <<'DPKG' >"$DPKG_CFG_FRAGMENT"
|
||||
force-confold
|
||||
force-confdef
|
||||
DPKG
|
||||
|
||||
e "Paketquellen aktualisieren …"
|
||||
apt update --yes --quiet
|
||||
|
||||
e "System aktualisieren (apt) …"
|
||||
apt full-upgrade --yes --quiet
|
||||
|
||||
e "Proprietäre Treiber installieren (sofern verfügbar) …"
|
||||
ubuntu-drivers autoinstall
|
||||
|
||||
e "Zusätzliche Software installieren …"
|
||||
pkg "${packages[@]}"
|
||||
|
||||
e "Sprachunterstützung vervollständigen …"
|
||||
pkg $(check-language-support)
|
||||
e "Arabische Schrift"
|
||||
pkg fonts-arabeyes
|
||||
e "Kyrillische Schrift"
|
||||
pkg xfonts-cyrillic
|
||||
|
||||
# these packages have to be installed after "$(check-language-support)"
|
||||
pkg hunspell-de-at hunspell-de-ch hunspell-de-de hunspell-uk hunspell-ru
|
||||
|
||||
e "Unnötige Pakete entfernen und Cache bereinigen …"
|
||||
apt clean --yes --quiet
|
||||
apt autoremove --yes --quiet
|
||||
|
||||
|
||||
###
|
||||
# Finalisation
|
||||
###
|
||||
|
||||
e "Initiales Setup beendet."
|
||||
oem-config-prepare
|
|
@ -11,18 +11,19 @@ DPKG_CFG_FRAGMENT=/etc/dpkg/dpkg.cfg.d/non-interactive
|
|||
|
||||
# Name of the distribution
|
||||
script_distro='Linux Mint 22.1'
|
||||
script_version='2.3.4'
|
||||
script_version='2.3.7'
|
||||
|
||||
# Additional packages
|
||||
packages=(
|
||||
# Program packages
|
||||
libreoffice
|
||||
openoffice.org-hyphenation
|
||||
keepassxc
|
||||
cheese
|
||||
gparted
|
||||
hardinfo
|
||||
keepassxc
|
||||
libreoffice
|
||||
mint-meta-codecs # May not have been installed during the OEM setup because the corresponding checkbox was not checked or no internet connection was available.
|
||||
openoffice.org-hyphenation
|
||||
regionset
|
||||
cheese
|
||||
vlc
|
||||
)
|
||||
|
||||
|
@ -43,11 +44,11 @@ handle_signal() {
|
|||
|
||||
# Always executed when exiting the shell, regardless of the reason.
|
||||
handle_exit() {
|
||||
e "Finale Aufräumarbeiten werden durchgeführt …"
|
||||
e "Finale Aufräumarbeiten durchgeführen …"
|
||||
rm -f "$DPKG_CFG_FRAGMENT"
|
||||
rm -f /etc/apt/apt.conf.d/01aptproxy
|
||||
|
||||
e "Initiales Setup beendet."
|
||||
e "Initiales Setup beendet. Bitte Neustart durchführen."
|
||||
}
|
||||
|
||||
trap handle_signal SIGINT SIGTERM
|
||||
|
@ -76,7 +77,7 @@ echo "\
|
|||
e "Starte initiales Setup für Rechner mit frisch installiertem '${script_distro}' …"
|
||||
|
||||
# The installation of auto-apt-proxy does no harm and allows the use of an apt-proxy or other caches, e.g. named in SRV records.
|
||||
e "Installiere APT-Proxy-Autodetektor …"
|
||||
e "APT-Proxy-Autodetektor installieren …"
|
||||
apt install auto-apt-proxy
|
||||
|
||||
###
|
||||
|
@ -121,3 +122,7 @@ then
|
|||
else
|
||||
e "Das Skript läuft nicht auf einem MacBook."
|
||||
fi
|
||||
|
||||
e "Firmware aktualisieren …"
|
||||
fwupdmgr refresh
|
||||
fwupdmgr update --assume-yes --no-reboot-check
|
||||
|
|