5
0
Fork 0
mirror of https://codeberg.org/Computertruhe/Setup-Skripte.git synced 2024-06-06 18:46:25 +02:00

Compare commits

..

No commits in common. "main" and "1.0.0" have entirely different histories.
main ... 1.0.0

12 changed files with 142 additions and 1008 deletions

View file

@ -2,5 +2,3 @@
## 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.

View file

@ -1,48 +0,0 @@
!/bin/bash
# ##############
# Nettes Skript, das eine Datei via http holt
# erwartet wird eine Liste von image-Dateien
# zeilenweise getrennt
# im gleichen Verzeichnis sollten sie liegen
# ################################
BASISURL="http://ct-pc/images"
INDEXURL="$BASISURL/index"
index=$(wget -qO- $INDEXURL)
echo $index
imgs=()
for element in $index;
do
imgs+=("$element")
imgs+=("")
done
os=`dialog --menu "Abbild wählen" 0 0 0 \
"${imgs[@]}" 3>&1 1>&2 2>&3`
dialog --clear
# Demonstriert dialog mit Auswahl
GG=`lsblk -r -p -n -oNAME`
echo $GG
Devs=()
for dev in $GG; do
Devs+=($dev)
Devs+=("")
done
echo ${Devs[@]}
dev=`dialog --menu "Festplattengerät wählen" 0 0 0 \
"${Devs[@]}" 3>&1 1>&2 2>&3`
dialog --clear
dialog --yesno "Bestätigen Sie Ihre Auswahl: $dev" 0 0
dialog --clear

View file

@ -1,89 +0,0 @@
#!/bin/bash
if [[ -z "$(command -v growpart)" || -z "$(command -v btrfs)" ]]; then
echo "growpart oder btrfs fehlt! Installiere cloud-guest-utils und btrfs-progs..."
sudo apt update
sudo apt install -y cloud-guest-utils btrfs-progs
fi
if [ -z "$(command -v dialog)" ]; then
echo "dialog fehlt! Installiere dialog..."
sudo apt update
sudo apt install -y dialog
fi
while true;
do
dialog --clear
# select filename using dialog
IMG=$(dialog --title "Image-Datei wählen. Mit *Leertaste* selektieren" --stdout --fselect ./ 14 88)
GG=$(lsblk -r -p -n -o NAME,TYPE |grep disk | cut -f1 -d' ')
echo $GG
Devs=()
for dev in $GG; do
Devs+=($dev)
Devs+=("")
done
DEV=`dialog --menu "Festplattengerät wählen" 0 0 0 \
"${Devs[@]}" 3>&1 1>&2 2>&3`
dialog --clear
dialog --yesno "Bestätigen Sie Ihre Auswahl: $DEV <- $IMG" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt"; break;;
1) echo "Sicherheitshalber beendet"; exit 1;;
255) echo "[ESC], Sicherheitshalber beendet"; exit 1;;
esac
done
#---------
if [ -z "$(command -v growpart)" ]; then
echo "growpart fehlt! Installiere cloud-guest-utils..."
sudo apt update
sudo apt install -y cloud-guest-utils
fi
if [ -z "$IMG" ] ; then
echo "Image-File angeben!"
exit 1
fi
if [ -z "$DEV" ] ; then
echo "HDD dev angeben! z. B. /dev/hdc"
exit 1
fi
echo "Warte 2 Sekunden vor dem löschen, abbrechen mit strg + c..."
sleep 2
echo "Achtung - vorbei, ich mache jetzt alles platt auf" "${DEV}"
NVME_PARTITION_SUFFIX=''
if [[ "$DEV" == *"nvme"* ]]; then
echo "$DEV is NVME device"
NVME_PARTITION_SUFFIX='p'
fi
case "$IMG" in
*.bz2)
sudo dd if="$IMG" bs=1M status=progress | bzip2 -d > "$DEV"
;;
*)
sudo dd if="$IMG" of=$DEV bs=1M status=progress
;;
esac
sync
sudo growpart $DEV 3
sudo mount ${DEV}${NVME_PARTITION_SUFFIX}3 /mnt
sudo btrfs filesystem resize max /mnt
sudo umount /mnt
sync

View file

@ -1,96 +0,0 @@
#!/bin/bash
if [ -z "$(command -v dialog)" ]; then
echo "dialog fehlt! Installiere dialog..."
sudo apt update
sudo apt install -y dialog btrfs-progs
fi
GG=$(lsblk -r -p -n -o NAME,TYPE |grep disk | cut -f1 -d' ')
echo $GG
Devs=()
for dev in $GG; do
Devs+=($dev)
Devs+=("")
done
while true
do
dev=`dialog --menu "Platte einlesen. Festplattengerät wählen" 0 0 0 \
"${Devs[@]}" 3>&1 1>&2 2>&3`
dialog --clear
dialog --yesno "Bestätigen Sie Ihre Auswahl: $dev" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt"; break;;
1) echo "Neu wählen";;
255) echo "[ESC]"; exit 1;;
esac
done
while true
do
dialog --clear
# show an inputbox
FILENM=$(dialog --title "Imagedatei" --inputbox "Dateiname \*.img " 8 60 3>&1 1>&2 2>&3 3>&- )
# get respose
respose=$?
case $response in
1) exit 2 ;;
255) echo "[ESC]"; exit 1;;
esac
dialog --clear
dialog --yesno "Gewählte Datei: $FILENM" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt"; break;;
1) echo "Neu wählen";;
255) echo "[ESC]"; exit 1;;
esac
done
echo "Ermittle letzten Sektor von Quelldevice $dev"
LASTSECT=$(sudo fdisk -x "$dev" | tail -1 | awk '{print $3}' )
dialog --clear
dialog --yesno "Letzter Sektor von letzter Partition auf $dev ist $LASTSECT . OK?" 0 0
# Get exit status
# 0 means user hit [yes] button.
# 1 means user hit [no] button.
# 255 means user hit [Esc] key.
response=$?
case $response in
0) echo "Bestätigt";;
1) echo "Sicherheitshalber beendet"; exit 1;;
255) echo "[ESC]"; exit 1;;
esac
echo "Bereit $dev bis $LASTSECT in $FILENM zu schreiben"
sudo dd if=$dev of="$FILENM" bs=512 count=$LASTSECT status=progress

View file

@ -1,26 +0,0 @@
Dialogbasierte Imager-Skripte
Einfaches Zeug mit dd.
Einlesen:
Bereite die Platte vor. Die dritte Partition sollte / sein und btrfs haben
Verkleinere die Partition mit kparted so weit wie möglich.
Wähle die betreffende Platte aus. Nutze dabei das gesamt-Device
z.B. /dev/sdc.
Wähle dann einen Dateinamen.
Das Skript ermittelt den Endsektor der letzten Partition (z.B. /dev/sdc3) und erstellt ein
Image indem es dd verwendet.
Ausschreiben:
dlg_platte_beschreiben.sh
einfach aufrufen, sudo-Rechte werden bei Bedarf erfragt.
Der erste Dialog fragt nach dem Device auf das geschrieben werden soll.
Wähle die angeschlossene SSD aus, raw. Nicht die Partition. Also /dev/sde z.B.
Der nächste Dialog lässt das Image auswählen.
Wähle es aus und bestätige. Achtung: 'dialog' möchte die Selektion mit <Leertaste>.
Nach einer Sicherheisfrage geht es los.
Es dauert eine weile und die Platte ist bespielt.
Zum Schluss wird die letzte Partition auf die Plattengröße expandiert.

View file

@ -1,32 +0,0 @@
#!/bin/bash
IMG="$1"
DEV="$2"
if [[ -z "$(command -v growpart)" || -z "$(command -v btrfs)" ]]; then
echo "growpart oder btrfs fehlt! Installiere cloud-guest-utils und btrfs-progs..."
sudo apt update
sudo apt install -y cloud-guest-utils btrfs-progs
fi
if [ -z "$IMG" ] ; then
echo "Image-File angeben!"
exit 1
fi
if [ -z "$DEV" ] ; then
echo "HDD dev angeben! z. B. /dev/hdc"
exit 1
fi
echo "Warte 5 Sekunden vor dem löschen, abbrechen mit strg + c..."
sleep 5
echo "Achtung - vorbei, ich mache jetzt alles platt auf" "${DEV}"
sudo dd if="$IMG" of=$DEV bs=1M status=progress
sync
sudo growpart $DEV 3
sudo mount ${DEV}3 /mnt
sudo btrfs filesystem resize max /mnt
sudo umount /mnt
sync

View file

@ -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

View file

@ -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

View file

@ -1,136 +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
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"
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}' …"
# 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)
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

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Execute itself with sudo if user is not root.
# execute self with sudo if user is not root
[[ $UID -ne 0 ]] && exec sudo ./"$0"
###
@ -9,83 +9,137 @@
export DEBIAN_FRONTEND=noninteractive
DPKG_CFG_FRAGMENT=/etc/dpkg/dpkg.cfg.d/non-interactive
# Name of the distribution
script_distro='Linux Mint 21.3'
# Linux distro
script_distro='Linux Mint 20'
# Additional packages
packages=(
# Program packages
# Graphics
gimp
inkscape
pinta
# 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
gparted
# Tools
f3
hardinfo
regionset
vim
# Media
cheese
vlc
# Language related packages
# Generic
# 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
# AR
language-pack-gnome-ar-base
firefox-locale-ar
fonts-arabeyes
hunspell-ar
libreoffice-l10n-ar
mythes-ar
thunderbird-locale-ar
# DE
language-pack-gnome-de-base # Installed only with Internet connection during the OEM setup.
firefox-locale-de
hunspell-de-at
hunspell-de-ch
hunspell-de-de
thunderbird-locale-de # Installed only with Internet connection during the OEM setup.
# EN
thunderbird-locale-en-gb
# FA
language-pack-gnome-fa-base
firefox-locale-fa
libreoffice-l10n-fa
myspell-fa
thunderbird-locale-fa
# RU
language-pack-gnome-ru-base
firefox-locale-ru
thunderbird-locale-ru
# UK
language-pack-gnome-uk-base
libreoffice-l10n-uk
firefox-locale-uk
thunderbird-locale-uk
hyphen-uk
mythes-uk
hunspell-uk
wukrainian
language-pack-ar
language-pack-gnome-ar
language-pack-fa
language-pack-gnome-fa
)
###
# Functions
###
# $*: message to echo.
# $*: message to echo
e() {
printf "\e[32m>>>\e[0m %s\n" "$*"
printf "\e[31m>>>\e[0m %s\n" "$*"
}
# It's a pain to stop execution (CTRL+C, kill) with all the Python applications so we catch SIGINT and SIGTERM and exit immediately.
# 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 when exiting the shell, regardless of the reason.
# always executed on shell exit regardless of reason. for cleanup tasks
handle_exit() {
e "Finale Aufräumarbeiten werden durchgeführt …"
e "Finales Cleanup wird durchgeführt …"
rm -f "$DPKG_CFG_FRAGMENT"
rm -f /etc/apt/apt.conf.d/01aptproxy
e "Initiales Setup beendet."
}
trap handle_signal SIGINT SIGTERM
@ -106,34 +160,25 @@ echo "\
###
# Maintainer: Computertruhe e. V.
# Website: https://computertruhe.de/
# Version: 2.3.2
# Repo: https://codeberg.org/Computertruhe/Setup-Skripte
# 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}' …"
# Use APT proxy if available.
ping -c 1 apt-proxy > /dev/null 2>&1
if [ "$?" -eq "0" ]; then
e "Nutze APT-Proxy."
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
else
e "Kein APT-Proxy gefunden."
fi
echo 'Dpkg::Options "--force-unsafe-io";' >> /etc/apt/apt.conf.d/01aptproxy
###
# Automatic installation
###
# Place temporary dpkg configurations to ensure non-interactive upgrade.
# place temporary dpkg configurations to ensure non-interactive upgrade
cat <<'DPKG' >"$DPKG_CFG_FRAGMENT"
force-confold
force-confdef
DPKG
e "Besten Spiegelserver für '${script_distro}' auswählen …"
mint-switch-to-local-mirror
e "Paketquellen aktualisieren …"
apt update --yes --quiet
@ -146,24 +191,43 @@ mintupdate-cli --yes upgrade
e "Proprietäre Treiber installieren (sofern verfügbar) …"
ubuntu-drivers autoinstall
e "Multimedia-Codecs installieren …"
pkg mint-meta-codecs # Installed only with Internet connection during the OEM setup.
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
e "Unnötige Pakete entfernen und Cache bereinigen …"
apt clean --yes --quiet
apt autoremove --yes --quiet
e "Handbuch \"Linux Mint Handbuch der Computertruhe für Ein- und Umsteiger*innen\" herunterladen …"
mkdir /etc/skel/Desktop
wget -O "/etc/skel/Desktop/Linux Mint Handbuch der Computertruhe für Ein- und Umsteiger*innen.pdf" https://computertruhe.de/handbuecher/linux_mint.pdf
# https://askubuntu.com/questions/1037553/how-to-configure-a-dconf-key-globally-across-all-user-accounts#1037557
# https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/desktop_migration_and_administration_guide/custom-default-values-system-settings
e "Tastatur- und Desktop-Optionen anpassen …"
mkdir -vp /etc/dconf/{profile,db/local.d}
e "Handbuch \"Besonderheiten von MacBooks im Zusammenhang mit Linux Mint\" herunterladen …"
if [ $(dmidecode -t1 | grep -ci "macbook") -ge 1 ]
then
wget -O "/etc/skel/Desktop/Besonderheiten von MacBooks im Zusammenhang mit Linux Mint.pdf" https://computertruhe.de/handbuecher/macbook_linux_mint.pdf
else
e "Das Skript läuft nicht auf einem MacBook."
fi
cat <<'EOF' > /etc/dconf/profile/user
user-db:user
system-db:local
EOF
cat <<'EOF' > /etc/dconf/db/local.d/00-keyboard-layout
[org/gnome/libgnomekbd/keyboard]
layouts=['de', 'ara', 'ir']
[org/cinnamon/desktop/interface]
keyboard-layout-show-flags=false
keyboard-layout-use-upper=true
keyboard-layout-prefer-variant-names=true
EOF
dconf update
###
# Finalisation
###
e "Initiales Setup beendet."

View file

@ -1,5 +0,0 @@
Dieses Skript kannst Du verwenden, um damit einen Computer mit Linux Mint und den wichtigsten Programmen und Einstellungen automatisiert zu installieren. Weitere Informationen sind im Wiki unter https://wiki.computertruhe.de/Instandsetzung_der_Hardware#Installation
## Verwenden des linux_mint.sh Skriptes
(Was muss ich tun, wenn ich es zur automatisierten Installation verwenden möchte - Schritt für Schritt)

View file

@ -1,142 +0,0 @@
# Liesmich für die setup.ps1
Windows Powershell Script um automatisiert mittels Chocolately Programme zu installieren und Windowseinstellungen zu machen.
## Script ausführen:
* Powershell suchen
* rechte Maustaste und "als Administrator ausführen" wählen
* Sicherheitsmeldung bestätigen
### Im Powershell-Fenster
* Befehl "set-executionPolicy -scope process bypass" ausführen.
* Meldung mit "j" und Entertaste bestätigen
Damit wird die Windowssicherheit für dieses Fenster (Session) ausgeschaltet und Du kannst das Script ausführen.
* Script ausführen z.B. "c:\setup.ps1"
* Warten bis die Programme installiert sind. Am Ende kommt eine Erfolgsmeldung, was alles installiert wurde.
## Script Anpassen
### Windows Einstellungen
* to be done
### Chocolatey
Chocolatey ist ein Paketmanager, mit dem Du unter Windows vollautomatisiert Programme installieren kannst.
https://chocolatey.org/
Im Skript wird das Programm installiert und die Installation einiger Programme angestoßen.
Die Installation im Skript erfolgt über "choco install Programmname".
Verfügbare Programmpakete findest Du unter https://community.chocolatey.org/packages
### Windows Apps deinstallieren
Alle Apps deinstalieren (Vorsicht!):
Get-AppxPackage | Remove-AppxPackage
Alle Apps bis auf einige Ausnahmen deinstallieren (Vorsicht!)
Get-AppxPackage | where-object {$_.name notlike “*store*”} | where-object {$_.name notlike “*communicationsapps*”} | where-object {$_.name notlike “*people*”} | Remove-AppxPackage
Alle Standardapps wieder installieren
Get-AppxPackage | foreach {Add-AppxPackage -register „$($_.InstallLocation)\appxmanifest.xml“ -DisableDevelopmentMod}
Einzelne Apps deinstallieren:
3D Builder
Get-AppxPackage *3dbuilder* | Remove-AppxPackage
Alarm und Uhr
Get-AppxPackage *windowsalarms* | Remove-AppxPackage
Asphalt 8: Airborne
Get-AppxPackage *Asphalt8Airborne* | Remove-AppxPackage
Begleiter für Telefon
Get-AppxPackage *windowsphone* | Remove-AppxPackage
Candy Crush Saga
Get-AppxPackage *CandyCrushSaga* | Remove-AppxPackage
Drawboard PDF
Get-AppxPackage *DrawboardPDF* | Remove-AppxPackage
Erste Schritte
Get-AppxPackage *getstarted* | Remove-AppxPackage
Facebook
Get-AppxPackage *Facebook* | Remove-AppxPackage
Feedback Hub
Get-AppxPackage *feedback* | Remove-AppxPackage
Filme & TV
Get-AppxPackage *zunevideo* | Remove-AppxPackage
Finanzen
Get-AppxPackage *bingfinance* | Remove-AppxPackage
Fotos
Get-AppxPackage *photos* | Remove-AppxPackage
Groove-Musik
Get-AppxPackage *zunemusic* | Remove-AppxPackage
Kalender & Mail
Get-AppxPackage *communicationsapps* | remove-appxpackage
Kamera
Get-AppxPackage *windowscamera* | Remove-AppxPackage
Karten
Get-AppxPackage *windowsmaps* | Remove-AppxPackage
Kontakte
Get-AppxPackage *people* | Remove-AppxPackage
Microsoft Solitaire Collection
Get-AppxPackage *solitairecollection* | Remove-AppxPackage
Nachrichten
Get-AppxPackage *bingnews* | Remove-AppxPackage
Nachrichten & Skype
Get-AppxPackage *messaging* | remove-appxpackage
Office holen
Get-AppxPackage *officehub* | Remove-AppxPackage
OneNote
Get-AppxPackage *onenote* | Remove-AppxPackage
Paint 3D
Get-AppxPackage *mspaint* | Remove-AppxPackage
Rechner
Get-AppxPackage *windowscalculator* | Remove-AppxPackage
Skype
Get-AppxPackage *skypeapp* | Remove-AppxPackage
Sport
Get-AppxPackage *bingsports* | Remove-AppxPackage
Sprachrekorder
Get-AppxPackage *soundrecorder* | Remove-AppxPackage
Windows DVD Player
Get-AppxPackage *dvd* | Remove-AppxPackage
Xbox Identity Provider
Get-AppxPackage *xboxIdentityprovider* | Remove-AppxPackage
Xbox
Get-AppxPackage *xboxapp* | Remove-AppxPackage
Weitere Informationen
https://www.deskmodder.de/wiki/index.php/Windows_10_Apps_entfernen_deinstallieren