sudo apt install chromium eingibt, erhält man Chromium nicht auf Basis eines *.deb Paketes, sondern stattdessen als Snap Paket.snap und mehr Schutz der Privatsphäre:siehe: apt
> reporting="ubuntu-report whoopsie popularity-contest apport apport-symptoms apport-gtk apport-kde apport-noui" > sudo apt purge $reporting && sudo apt-mark hold $reporting && sudo apt autoremove && sudo apt autoclean
alternativ kann man auch nur popularity-contest deaktivieren:
> sudo rm /etc/cron.daily/popularity-contest
Zum Schluss sollte noch ein Pi-Hole im LAN auf (z. B.) einem Raspberry Pi 4 installiert werden.
Um Snap zu löschen, deinstallieren wir folgende Pakete:
> sudo apt purge snapd ubuntu-core-launcher squashfs-tools
Nun entfernen wir letzte übergebliebene Paket-Altleichen und starten das System danach durch.
> apt autoremove && sudo reboot
> apt install flatpak
Software Flatpak Plugin installieren
> apt install gnome-software-plugin-flatpak
Flathub Repository zufügen:
> flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
System durchstarten:
> reboot
Web-Browser installieren:
> flatpak install org.mozilla.firefox org.chromium.Chromium > ls -lha /var/lib/flatpak/exports/bin/org.mozilla.firefox /var/lib/flatpak/exports/bin/org.chromium.Chromium /var/lib/flatpak/exports/bin/org.chromium.Chromium /var/lib/flatpak/exports/bin/org.mozilla.firefox > ls -lha /var/lib/flatpak/exports/share/icons/hicolor/64x64/apps/* /var/lib/flatpak/exports/share/icons/hicolor/64x64/apps/org.chromium.Chromium.png /var/lib/flatpak/exports/share/icons/hicolor/64x64/apps/org.mozilla.firefox.png
Update-Informationen:
> /usr/lib/update-notifier/apt-check 108;2 > /usr/lib/update-notifier/apt-check --human-readable 108 updates can be installed immediately. 2 of these updates are security updates. To see these additional updates run: apt list --upgradable
Reboot notwendig?:
> cat /var/run/reboot-required *** System restart required ***
> ubuntu-security-status 2390 packages installed, of which: 1891 receive package updates with LTS until 4/2025 481 could receive security updates with ESM Apps until 4/2030 15 packages are from third parties 3 packages are no longer available for download Packages from third parties are not provided by the official Ubuntu archive, for example packages from Personal Package Archives in Launchpad. For more information on the packages, run 'ubuntu-security-status --thirdparty'. Packages that are not available for download may be left over from a previous release of Ubuntu, may have been installed directly from a .deb file, or are from a source which has been disabled. For more information on the packages, run 'ubuntu-security-status --unavailable'. Enable Extended Security Maintenance (ESM Apps) to get 1 security update (so far) and enable coverage of 481 packages. This machine is not attached to an Ubuntu Advantage subscription. See https://ubuntu.com/advantage
nach einem neuen Ubuntu-Release schauen:
> /usr/lib/ubuntu-release-upgrader/check-new-release Checking for a new Ubuntu release There is no development version of an LTS available. To upgrade to the latest non-LTS development release set Prompt=normal in /etc/update-manager/release-upgrades. > /usr/lib/ubuntu-release-upgrader/check-new-release -q
was man eigentlich immer braucht:
> apt install vim screen mc
damit man auch "übliche" Audio- und Video-Dateien anschauen kann (ab Ubuntu 18.04):
> apt install vlc vlc-l10n libdvd-pkg > dpkg-reconfigure libdvd-pkg
Ubuntu 18.04: Server returned error NXDOMAIN, mitigating potential DNS violation
> rm /etc/resolv.conf > ln -s /var/run/systemd/resolve/resolv.conf /etc/resolv.conf > systemctl restart resolvconf
hier muss man einstellen, was man haben will:
> vi /etc/update-manager/release-upgrades ... #Prompt=normal Prompt=lts
…will man jedes Update mitmachen, dann muss man normal einstellen,
meine Erfahrung mit Ubuntu hat jedoch gezeigt, dass nur die lts-Versionen sauber funktionieren.
Upgrade:
> apt -y update > apt -y full-upgrade > apt -y autoclean > apt -y autoremove
Release-Upgrade:
> do-release-upgrade
besonders in VMs ist das hier manchmal nach dem do-release-upgrade aber noch vor dem Reboot notwendig (/dev/sda muß natürlich angepasst werden):
> df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 2.4G 17G 13% / > grub-install --root-directory=/ /dev/sda > grub-mkconfig -o /boot/grub/grub.cfg
Quelle: https://wiki.ubuntuusers.de/Ubuntu_Pro/#Hinweise-auf-Ubuntu-Pro-deaktiveren
root@xxx:~# pro config set apt_news=false root@xxx:~# sed -ie 's/.*/#&/' /etc/apt/apt.conf.d/20apt-esm-hook.conf root@xxx:~# rm -f /etc/apt/apt.conf.d/20apt-esm-hook.confe
> ls -lha /var/log/apt/
> less /var/log/apt/history.log > less /var/log/dpkg.log
> fgrep 'install ' /var/log/dpkg.log > egrep 'upgrade|remove' /var/log/dpkg.log
https://tecadmin.net/how-to-enable-ssh-as-root-on-aws-ubuntu-instance/
> sed -i 's|.* ssh-|ssh-|' /root/.ssh/authorized_keys > rm -f /root/.ssh/authorized_keyse
Quelle: https://debianforum.de/forum/viewtopic.php?t=156597
siehe auch https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/
nervig sind diese immerwiederkehrenden Meldungen auf allen Konsolen:
Password entry required for 'Enter Private Key Password:' (PID 7244). Please enter password with the systemd-tty-ask-password-agent tool!
man stopt den Dienst so:
> systemctl stop systemd-ask-password-wall.service ; systemctl stop systemd-ask-password-wall.path
oder deaktiviert ihn so:
> systemctl disable systemd-ask-password-wall.service ; systemctl disable systemd-ask-password-wall.path
Wichtig ist hierbei, dass beide Kommandos schnell hintereinander ausgeführt werden, denn wenn man den Dienst für den "service" stopt, wird er über den "path" wieder aktiviert bzw. umgekehrt.
ein Beispiel aus Ubuntu 18.04
# ls -lha /etc/systemd/system/rexray.service /etc/systemd/system/docker.service.wants/rexray.service lrwxrwxrwx 1 root root 34 Jul 19 2019 /etc/systemd/system/docker.service.wants/rexray.service -> /etc/systemd/system/rexray.service -rw-r--r-- 1 root root 257 Jul 19 2019 /etc/systemd/system/rexray.service
[Unit] Description=rexray Wants=scini.service Before=docker.service After=scini.service [Service] EnvironmentFile=/etc/rexray/rexray.env ExecStart=/usr/bin/rexray start ExecReload=/bin/kill -HUP $MAINPID KillMode=process [Install] WantedBy=docker.service
> apt install procps
> top
top - 16:05:33 up 6:41, 11 users, load average: 0,54, 0,71, 0,82
Tasks: 428 gesamt, 1 laufend, 427 schlafend, 0 gestoppt, 0 Zombie
%CPU(s): 2,3 be, 2,3 sy, 0,0 ni, 95,4 un, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
MiB Spch : 31946,2 gesamt, 16525,8 frei, 8795,7 belegt, 6624,7 Puff/Cache
MiB Swap: 2048,0 gesamt, 2048,0 frei, 0,0 belegt. 22460,6 verfü Spch
PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL
55221 root 20 0 12756 4236 3308 R 13,3 0,0 0:00.03 top
1245 kernoops 20 0 11256 444 0 S 6,7 0,0 0:01.06 kerneloops
1502 root -51 0 0 0 0 S 6,7 0,0 4:30.59 irq/145-nvidia
1 root 20 0 169248 13292 8372 S 0,0 0,0 0:45.36 systemd
> apt install sysstat
> iostat
...
avg-cpu: %user %nice %system %iowait %steal %idle
3,38 0,00 1,75 0,20 0,00 94,66
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
loop0 0,00 0,01 0,00 0,00 340 0 0
nvme0n1 20,88 133,32 288,59 0,00 3185309 6895289 0
sda 0,01 0,43 0,00 0,00 10296 0 0
> apt install nicstat
> nicstat
Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat
16:02:44 eno1 138.4 74.59 145.5 107.5 974.1 710.7 0.11 1.01
16:02:44 tap0 63.93 63.59 69.95 73.31 935.9 888.2 5.24 0.00
16:02:44 lo 0.06 0.06 0.59 0.59 105.3 105.3 0.00 0.00
Netzwerkrestart auf Ubuntu 16.04:
> systemctl restart networking
zuverlässigstes Update-Kommando
(ggf. muss man in diesem Kommando den Kernel anpassen, hier wird der normale "Generic"-Kernel vorgesehen, auf VMs kann das anders gewünscht sein):
> time (locale-gen ; apt-get autoclean ; apt autoremove ; dpkg --configure -a ; apt-get dist-upgrade ; apt-get autoclean ; aptitude autoclean ; apt autoremove ; apt install linux-headers-generic linux-image-generic ; apt update && apt upgrade) && echo OK ; dpkg --configure -a ; apt purge $(dpkg -l | sed "s/^rc[ ]*//;s/ .*//" | egrep ^linux-) ; dpkg -l | sed "s/^ii[ ]*//;s/ .*//" | egrep ^linux- ; uname -a
quick & dirty version des Update-Kommandos:
> time (locale-gen ; apt update ; dpkg --configure -a ; apt autoremove ; apt full-upgrade ; apt autoremove) && echo OK ; dpkg --configure -a ; dpkg -l | awk '/linux-/{print $1,$2}' ; uname -a
wem es nur darum geht, die alten Kernel zu entfernen, dem wird dieses reichen:
> apt-get autoclean ; apt-get autoremove ; apt purge $(dpkg -l | sed "s/^rc[ ]*//;s/ .*//" | egrep ^linux-)
wenn es diese Fehlermeldung
dpkg: Fehler: dpkg-Status-Datenbank ist von einem anderen Prozess gesperrt
gibt, dann hilft, fast immer, der Aufruf von diesem Kommando:
> kill $(lsof | fgrep /var/lib/dpkg/lock | awk '{print $2}') 2>/dev/null
> cat /etc/lsb-release DISTRIB_ID=LinuxMint DISTRIB_RELEASE=15 DISTRIB_CODENAME=olivia DISTRIB_DESCRIPTION="Linux Mint 15 Olivia"
> cat /etc/os-release NAME="Ubuntu" VERSION="13.04, Raring Ringtail" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 13.04" VERSION_ID="13.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
Auf der Ubuntu-Web-Seite kann man zwischen drei verschiedenen Installations-CD's auswählen:
Betreuungszeiträume der einzelnen Ubuntu-Veröffentlichungen:
Die aktuellen Images bekommt man von hier, auch tagesaktuelle Versionen:
man kann sie aber so wieder aktivieren:
als erstes muss darauf geachtet werden, dass die Datei den richtigen Kopf hat ("-e" ggf. entfernen ⇒ "#!/bin/bash"):
> vi /etc/rc.local > chmod 0755 /etc/rc.local > /lib/systemd/system-generators/systemd-rc-local-generator > vi /lib/systemd/system/rc-local.service > systemctl enable rc-local.service > systemctl status rc-local.service > systemctl restart rc-local.service > systemctl status rc-local.service
ggf. ist das hier nötig:
> ln -s /etc/systemd/system/multi-user.target.wants/rc-local.service /etc/systemd/system/rc-local.service ; mv /etc/systemd/system/rc-local.service /etc/systemd/system/multi-user.target.wants/rc-local.service > systemctl status rc-local.service
#!/bin/bash #------------------------------------------------------------------------------# # # Dieses Skript entfernt alle alten Kernel # und lässt nur eine definierte Anzahl (BEHALTEN=?) an Kerneln im System. # #------------------------------------------------------------------------------# BEHALTEN="2" # wieviel Kernel erhalten bleiben sollen #------------------------------------------------------------------------------# VERSION="v2015091200" dpkg --configure -a #if [ "$(fgrep "QEMU Virtual CPU" /proc/cpuinfo | head -n1 | awk '{print $4,$5,$6}')" = "QEMU Virtual CPU" ] ; then # aptitude -y install linux-virtual linux-image-extra-virtual #else # aptitude -y install linux-generic #fi ### Dieses Kommando muss aber vor dem Gebrauch angepasst werden!!! ### hier werden auch veraltete Kernel (z.B. 3.5.0) mit entfernt, ### wenn z.B. der LTS-Kernel "3.2.0" und der veraltete Kernel "3.5.0" zusammen installiert sind #dpkg -l | fgrep linux- ; aptitude -y purge $(dpkg -l | awk '/linux-/{print $2}' | egrep "[a-z]-3[.]" | fgrep -v "3.2.0-90" | fgrep -v "2.6.32-74" | fgrep -v "3.13.0-63") ### ### purge-old-kernels ### https://github.com/dustinkirkland/bikeshed/blob/master/purge-old-kernels aptitude purge $(ls -tr /boot/vmlinuz-* | head -n -${BEHALTEN} | grep -v "$(uname -r)$" | cut -d- -f2- | awk '{print "linux-image-" $0 " linux-headers-" $0}') ### hier wird gezeigt, was übrig geblieben ist dpkg -l | fgrep linux-
Ubuntu 16.04/18.04
> grub-install --root-directory=/ /dev/sda > grub-mkconfig -o /boot/grub/grub.cfg
https://wiki.ubuntuusers.de/GRUB_2/Konfiguration/
Dummerweise sind die Bootmeldungen in Ubuntu abgestellt, so kann man sie sich wieder einstellen:
> vi /etc/default/grub GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 #GRUB_HIDDEN_TIMEOUT_QUIET=false GRUB_TIMEOUT=15 GRUB_TIMEOUT_STYLE=menu GRUB_CMDLINE_LINUX_DEFAULT="noplymouth" GRUB_DISABLE_OS_PROBER=true
Die Variable GRUB_DISABLE_OS_PROBER=true bewirkt, dass keine anderen Laufwerke nach OS-Installationen durchsucht werden.
aktivieren:
> update-grub2
> vi /etc/default/grub GRUB_DEFAULT=0 #GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` #GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity" #GRUB_CMDLINE_LINUX="" ### apt purge plymouth libplymouth4 ### update-grub ; update-initramfs -u -k all ; update-grub GRUB_CMDLINE_LINUX_DEFAULT="noplymouth nomodeset xforcevesa text ipv6.disable=1" GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=1" > update-grub > update-initramfs -u -k all > update-grub
> vi /etc/sysctl.conf ... net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 > vi /etc/sysctl.d/99-sysctl.conf ... net.ipv6.conf.all.forwarding=0 net.ipv6.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_source_route = 0 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 > sysctl -p net.ipv6.conf.all.forwarding = 0 net.ipv6.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_source_route = 0 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
Dateien werden üblicherweise (in der GUI) nicht sofort gelöscht, wenn man sie über einen Dateimanager löscht. Sie werden stattdessen in den Ordner ~/.local/share/Trash/files verschoben.
mit Sprachauswahl:
> sudo dpkg-reconfigure locales
Spracheinstellungen / Systemweite Änderung / Benutzerspezifische Änderung
> locale-gen de_DE.UTF-8
> vi /etc/default/locale LANG="de_DE.UTF-8" LANGUAGE="de_DE:de"
> aptitude install language-pack-de language-pack-gnome-de language-pack-gnome-de-base language-pack-kde-de libreoffice-l10n-de libreoffice-help-de thunderbird-locale-de firefox-locale-de > update-locale LANG=de_DE.UTF-8 > dpkg-reconfigure locales Generating locales... de_AT.UTF-8... up-to-date de_BE.UTF-8... up-to-date de_CH.UTF-8... up-to-date de_DE.UTF-8... up-to-date de_LI.UTF-8... up-to-date de_LU.UTF-8... up-to-date en_AG.UTF-8... done en_AU.UTF-8... done en_BW.UTF-8... done en_CA.UTF-8... done en_DK.UTF-8... done en_GB.UTF-8... done en_HK.UTF-8... done en_IE.UTF-8... done en_IN.UTF-8... done en_NG.UTF-8... done en_NZ.UTF-8... done en_PH.UTF-8... done en_SG.UTF-8... done en_US.UTF-8... done en_ZA.UTF-8... done en_ZM.UTF-8... done en_ZW.UTF-8... done Generation complete.
so werden alle direkt installierten Pakete ermittelt:
> for i in $(dpkg -l | awk '/^ii /{print $2}');do aptitude show ${i};done | egrep -B4 'Automatisch installiert: nein|Automatically installed: no' | awk '/Paket:/||/Package:/{print $2}' | tee /tmp/pakete.txt
> aptitude -y reinstall $(cat /tmp/pakete.txt)
Um daraus eine Desktop-Installation zu machen, muss man mindesten das Paket "ubuntu-desktop" installieren. Manchmal möchte man auch noch zusätzlich das Paket "gnome" installieren.
Schon während einer Neuinstallation von Ubuntu bekommt man angeboten das komplette Homeverzeichnis verschlüsseln zu lassen.
Will man einen neuen Benutzer anlegen, der sofort ein verschlüsseltes Homeverzeichnis bekommt, dann macht man das mit diesem Kommando:
# adduser --encrypt-home fritz
Will man sein Homeverzeichnis später verschlüsseln, dann startet man einfach dieses Kommando:
# ecryptfs-migrate-home -u fritz
Jetzt ist es wichtig, dass sich der Benutzer fritz vor dem nächsten Reboot einmal (mit seinem neu verschlüsselten Home) anmeldet!
Zum Abschluss der Installation wird man aufgefordert die Passphrase zu sichern/notieren, damit man im Falle der Fälle wieder an seine Daten kommt, sollte das System kaputt sein, oder man die Platte in einen anderen PC einbinden möchte.
Hat man sich die Passphrase allerdings während der Installation nicht gesichert, oder die Mitschrift verlegt, kann man sich mit diesem Kommando jederzeit, im laufenden Betrieb, die Passphrase anzeigen lassen:
# ecryptfs-unwrap-passphrase
Hat man für das Homeverzeichnis ("/home") eine eigene Partition vorgesehen und nur auf der root-Partition ("/") ein neues System installiert, dann kann man das verschlüsselte Homeverzeichnis, auch ohne notierter Passphrase, wieder im System einbinden.
Als erstes muss man den entsprechenden Benutzer ("fritz") anlegen (zu beachten ist, dass der Benutzer seine alten UID und GID wieder bekommen soll):
# useradd fritz # passwd fritz
jetzt müssen noch die entsprechenden Werkzeuge installiert werden:
# aptitude install ecryptfs-utils
Jetzt sollte der Benutzer nach dem Login seine Daten wieder zurück haben.
aktuell laufende Kernelversion ist die 2.6.32-22.33:
# uname -rv 2.6.32-22-server #33-Ubuntu SMP Wed Apr 28 14:34:48 UTC 2010
neueste installierte Kernelversion ist die 2.6.32-22.35:
# aptitude show linux-image-$(uname -r) | awk '/^Version:/ {print $NF}'
2.6.32-22.35
Pakete, die man nicht braucht:
# aptitude purge apparmor network-manager network-manager-gnome network-manager-pptp network-manager-pptp-gnome
Pakete, die man praktisch immer braucht:
# aptitude -y install openssh-server mc smartmontools screen bmon star ethtool rsyslog rsyslog-relp
Pakete die man fast immer braucht:
# aptitude -y install vobcopy unattended-upgrades cron-apt update-notifier smartmontools openssh-server screen ntp smplayer mencoder x264 thunderbird-locale-de thunderbird-gnome-support thunderbird-calendar-timezones unzip unrar mc
Pakete die man ggf. braucht:
# aptitude -y install smartmontools mpt-status
Gelegentlich bekommt man in Ubuntu soeinen Fehler:
dpkg: Fehler beim Parsen, in Datei "/var/lib/dpkg/available" nahe Zeile xxxx Paket »modutils«: Fehler in Versionszeichenkette "yyyy:": nichts hinter Doppelpunkt in Versionsnummer
dpkg: parse error, in file "/var/lib/dpkg/available" near line xxxx package »modutils«: error in Version string "yyyy:": nothing after colon in version number
Lösen kann man es durch das Ausführen der folgenden Befehle:
# dpkg --clear-avail # dpkg-reconfigure apt
Quell-Repository der Pakete anzeigen,
so werden alle installierten Pakete angezeigt, die von universe oder multiverse installiert wurden:
# aptitude search ~i -F"%s# %p" | egrep "universe|multiverse"
Statistik über die installierten und nicht von Ubuntu gepflegten Pakete anzeigen:
# ubuntu-support-status --show-unsupported
> lsof /var/lib/apt/lists/lock > lsof /var/lib/dpkg/lock > lsof /var/cache/apt/archives/lock > lsof /run/lock/aptitude
In diesem Artikel wird die Methode mit "apt-ftparchive" aus dem Paket "apt-utils" vorgestellt.
Alternativ kann man sich auch eines mit "reprepro" aufbauen.
Prinzipiell kann man dem Rechner sagen, dass er sich die IP-Aresse von einem DHCP-Server holt (wenn einer da ist) oder man gibt ihm einfach eine statische IP-Adresse.
Zu beachten ist hierbei, dass der DHCP-Server im selben Netz stehen muss, wie die Rechner, die von ihm eine Adresse bekommen sollen!
Im einfachsten Fall trägt man nur das Loop-Device ein, dann wird auf allen Netzwerkkarten versucht per DHCP eine IP-Adresse zu bekommen:
# vi /etc/network/interfaces auto lo iface lo inet loopback
Hat man mehr als eine Netzwerkkarte im Rechner, will aber nur auf einer Karte per DHCP eine Adresse bekommen, dann muss das explizit gesagt werden:
# vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.254
Bei Ubuntu werden die Bootmeldungen nicht angezeigt, das finde ich echt schlimm! Im folgenden sehen Sie wie man ihm das austreiben kann.
Damit bei Ubuntu die Bootmeldungen ordentlich angezeigt werden, ist nur eine Anpassung nötig:
# sed -i 's/^GRUB_HIDDEN_TIMEOUT_QUIET.*/GRUB_HIDDEN_TIMEOUT_QUIET=false/;s/^GRUB_CMDLINE_LINUX_DEFAULT.*/GRUB_CMDLINE_LINUX_DEFAULT=""/' /etc/default/grub
vorher:
GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
nachher:
GRUB_HIDDEN_TIMEOUT=10 GRUB_HIDDEN_TIMEOUT_QUIET=false GRUB_CMDLINE_LINUX_DEFAULT=""
Beim nächsten Start des Rechners, kann man den Bootprozess mitverfolgen und Fehler, die beim booten auftreten, schnell erkennen.
Damit die Ausgabe schon beim nächsten Bootvorgang schon zu sehen sind und man nicht auf das nächste Kernelupdate warten muss, kann man dieses Kommando ausführen:
# aptitude -y reinstall grub-pc
In Ubuntu ist standardmäßig der View'er des GNU Midnight Commander aktiv, mit dem kann man aber kaum richtig arbeiten.
Um den richtigen View'er aus dem vi-Paket zu aktivieren, braucht man nur die folgenden beiden Kommandos abschicken:
So mal ganz fix den Sym-Link umbiegen:
# rm -f /etc/alternatives/view # ln -s /usr/bin/vim.basic /etc/alternatives/view
So geht es richtig:
# man update-alternatives
Standard-View-er setzen:
# update-alternatives --config view Es gibt 3 Auswahlmöglichkeiten für die Alternative view (welche /usr/bin/view bereitstellen). Auswahl Pfad Priorität Status ------------------------------------------------------------ 0 /usr/bin/mcview-debian 25 Auto-Modus 1 /usr/bin/mcview-debian 25 manueller Modus 2 /usr/bin/see 1 manueller Modus 3 /usr/bin/vim.basic 10 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: 3 update-alternatives: Verwende /usr/bin/vim.basic, um /usr/bin/view (view) in manueller Modus bereitzustellen.
es geht aber auch automatisch:
# aptitude install vim # update-alternatives --set view /usr/bin/vim.basic
In Ubuntu ist standardmäßig der Editor nano aktiv (kompatibel zum joe).
Manche mögen ihn auch, ich gebe zu, bevor ich den vi lieben gelernt habe, war der joe mein Lieblingseditor.
Aber das ist schon ca. 9 Jahre her…
Den Standardeditor stellt man in Ubuntu wie folgt wieder auf den vi (den einzig wahren Unix/Linux-Editor) um.
So mal ganz fix den Sym-Link umbiegen:
# rm -f /etc/alternatives/editor # ln -s /usr/bin/vi /etc/alternatives/editor
So geht es richtig:
# man update-alternatives
Standard-Editor setzen:
# update-alternatives --config editor Es gibt 4 Auswahlmöglichkeiten für die Alternative editor (welche /usr/bin/editor bereitstellen). Auswahl Pfad Priorität Status ------------------------------------------------------------ 0 /bin/nano 40 Auto-Modus 1 /bin/ed -100 manueller Modus 2 /bin/nano 40 manueller Modus 3 /usr/bin/mcedit-debian 25 manueller Modus 4 /usr/bin/vim.basic 10 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: 4 update-alternatives: Verwende /usr/bin/vim.basic, um /usr/bin/editor (editor) in manueller Modus bereitzustellen.
es geht aber auch automatisch:
# aptitude install vim # update-alternatives --set editor /usr/bin/vim.basic
Bei Ubuntu kann man das z.B. so machen:
# echo 'SELECTED_EDITOR="/bin/ed"' > ~/.selected_editor
oder
# echo 'SELECTED_EDITOR="/usr/bin/vim.basic"' > ~/.selected_editor
oder
# echo 'SELECTED_EDITOR="/usr/bin/vim.basic"' > ~/.selected_editor
oder
# echo 'SELECTED_EDITOR="/bin/nano"' > ~/.selected_editor
Das starten und stoppen von diensten funktioniert hier, genauso wie bei RedHat und anderen Linux-Distributionen.
Zum Beispiel starte und stopt man den Apache so:
# /etc/init.d/apache2 start # /etc/init.d/apache2 status # /etc/init.d/apache2 stop
Aber beim aktivieren bzw. deaktivieren der Start-Stop-Scripte stricken die Debianer Sonderlocken!
Zum Glück kann man auch auf Ubuntu das von RedHat bekannte chkconfig installieren:
# aptitude install chkconfig lsb
Allerdings erfordert chkconfig die LSB, und die wiederum erfordern einen LSB-konformen Header in den Start-Stop-Scripten.
in dem ungefähr soetwas steht wie das folgende:
Allgemein:
### BEGIN INIT INFO # Provides: <Dienstname> # Required-Start: <das muss schon laufen> # Required-Stop: <das muss noch laufen> # Should-Start: <Software die schon laufen muss> # Should-Stop: <Software die noch laufen muss> # Default-Start: <Start-Run-Level> # Default-Stop: <Stop-Run-Level> # Short-Description: <Dienstbeschreibung> ### END INIT INFO
konkret für Squid:
### BEGIN INIT INFO # Provides: squid # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Should-Start: $named # Should-Stop: $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Squid HTTP Proxy ### END INIT INFO
So wird ein neuer Dienst bei RedHat zum init-System hinzugefügt:
# chkconfig --add <Dienstname> # chkconfig --add squid
So wird ein neuer Dienst bei RedHat aktiviert:
# chkconfig --level <Start-Run-Level> <Dienstname> on # chkconfig --level 2345 squid on
So wird ein Dienst bei RedHat deaktiviert:
# chkconfig --level <Dienstname> off # chkconfig --level <Start-Run-Level> <Dienstname> off # chkconfig --level squid off # chkconfig --level 2345 squid off
So wird ein Dienst bei RedHat aus dem init-System entfernt:
# chkconfig --delete <Dienstname> # chkconfig --delete squid
Leider ignorieren die Debianer (sowie Ubuntu und Co.) den LSB-Header, bei Debian und Co. muss man die Infos auf der Kommandozeile übergeben!?!?!?!?
Das ist eigentlich Schwachsinn!
Deshalb muss man diese Infos immer auf der Kommandozeile mit angeben…
Dienst deaktivieren (bis zum nächsten Upgrade):
# update-rc.d -f <Dienstname> remove
Dienst aktivieren:
# update-rc.d <Dienstname> defaults
So wird ein neuer Dienst bei Ubuntu zum init-System hinzugefügt:
# update-rc.d <Dienstname> defaults
oder
# update-rc.d <Dienstname> defaults <Start-Position in der Reihenfolge aller Dienste> <Stop-Position in der Reihenfolge aller Dienste>
oder
# update-rc.d <Dienstname> start <Start-Run-Level> .
oder
# update-rc.d <Dienstname> stop <Stop-Run-Level> .
oder
# update-rc.d <Dienstname> start <Start-Run-Level> . stop <Stop-Run-Level> .
und jetzt konkret am Beispiel von Squid:
Dienst deaktivieren (bis zum nächsten Upgrade):
# update-rc.d -f squid remove
Dienst aktivieren:
# update-rc.d squid defaults
oder
# update-rc.d squid defaults 30 30
oder
# update-rc.d squid stop 0 1 6 .
oder
# update-rc.d squid start 2 3 4 5 . stop 0 1 6 .
Man kann auch das von Ubuntu empfohlene Front-End zu update-rc.d installieren:
# aptitude install rcconf
rcconf ist das einfachste Werkzeug für diesen Zweck aber leider zeigt es nur die Dienste des aktuellen RunLevels an.
sysv-rc-conf ist eine Erweiterung von rcconf, mit dem man nicht nur die Dienste des aktuellen Runlevels bearbeiten kann,
sondern alle Dienste - also Vorsicht! ⇒ aptitude install sysv-rc-conf (universe)
Ubuntu stellt allmählich vom SysVinit auf Upstart um.
Der TFTP-Dienst wird zum Beispiel über folgenden Eintrag gesteuert:
# vi /etc/default/tftpd-hpa RUN_DAEMON="no"
Alle Upstart-Dienste mit Status-Info auflisten:
# initctl list tftpd-hpa start/running hostname stop/waiting
Wenn ein Dienst das Kommando status unterstützt, kann man seinen Status so abfragen:
# service tftpd-hpa status tftpd-hpa start/running
Alle Upstart-Dienste mit Status-Kommando aufrufen (nicht alle Dienste unterstützen das Status-Kommando):
# service --status-all [ ? ] hostname [ - ] lm-sensors [ + ] logd [ + ] ssh
[ ? ] - Status-Kommando wir dnicht unterstützt / Status nicht ermittelbar [ - ] - Dienst wurde angehalten [ + ] - Diensta wurde gestartet
# aptitude install cron-apt unattended-upgrades
# ls -l /etc/cron-apt/ drwxr-xr-x 2 root root 4096 2010-04-15 11:43 action.d -rw-r--r-- 1 root root 6261 2010-04-15 11:40 config drwxr-xr-x 2 root root 4096 2008-11-05 20:33 config.d drwxr-xr-x 2 root root 4096 2008-11-05 20:33 errormsg.d drwxr-xr-x 2 root root 4096 2008-11-05 20:33 logmsg.d drwxr-xr-x 2 root root 4096 2008-11-05 20:33 mailmsg.d drwxr-xr-x 2 root root 4096 2008-11-05 20:33 mailonmsgs drwxr-xr-x 2 root root 4096 2008-11-05 20:33 syslogmsg.d drwxr-xr-x 2 root root 4096 2008-11-05 20:33 syslogonmsgs
# ls -l /etc/cron-apt/action.d -rw-r--r-- 1 root root 18 2008-11-05 20:33 0-update -rw-r--r-- 1 root root 64 2008-11-05 20:33 3-download -rw-r--r-- 1 root root 16 2010-04-15 11:43 9-install
# vi /etc/cron-apt/config
# vi /etc/apt/apt.conf.d/10periodic APT::Periodic::Unattended-Upgrade "1";
# vi /etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Unattended-Upgrade "1";
# vi /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"Ubuntu lucid-security";
"Ubuntu lucid-updates";
};
⇒ Gnome
Leider sind viele Codec's wie z.B. MP3 oder DivX nach der BS-Installation nicht vorhanden. Dafür muss man z.B. ein zusätzliches Repository einbinden.
unter Verwendung von nVidia-Karten, ist es ratsam, diese Einstellung vorzunehmen:
> vi /etc/default/grub ... GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=10 ... GRUB_CMDLINE_LINUX="nomodeset" ... > update-grub
Anderenfalls kann es sein, dass unter Verwendung von UEFI-Boot das nVidia-Treiber-Update nicht funktioniert, weil man zur Eingabe des finalen Passwortes, das Menü nicht sehen kann (schwarzer Bildschirm).
Wenn man noch andere Betriebssystem in diesem Rechner auf anderen Platten installiert hat, dann will man vielleicht diese Option noch setzen:
GRUB_DISABLE_OS_PROBER=true
…unter Umständen kann es auch notwendig sein, plymouth noch abzuschalten, weil das mit der Option nomodeset nicht immer klar kommt:
GRUB_CMDLINE_LINUX="nomodeset noplymouth"
oder ganz radikal:
> apt -y purge plymouth > apt -y autoremove
nVidia-Treiber-Installation:
> apt -y install ubuntu-drivers-common alsa-utils > ubuntu-drivers install > ubuntu-drivers devices > reboot
Leider kommt es seit 2007 zu sporadischen Systemhängern oder sporadischen Reboots in Verbindung mit nVidia-Treibern und neuer PC-Hardware. (Ich selbst habe 2021 monatelang nach dem Fehler in meinem neuen PC mit Ubuntu 20.04 LTS gesucht.)
Alternativ kann man den nouveau-Treiber verwenden, er ist in Ubuntu der vorinstallierte Standard-Treiber für nvidia-Karten und ersetzt damit den älteren nv-Treiber
> apt install xserver-xorg-video-nouveau
die empfohlenen Treiber (z.B. von nVidia) automatisch installieren lassen:
> ubuntu-drivers devices == /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001CB3sv00001028sd000011BEbc03sc00i00 vendor : NVIDIA Corporation model : GP107GL [Quadro P400] driver : nvidia-driver-460 - distro non-free driver : nvidia-driver-450-server - distro non-free driver : nvidia-driver-470 - distro non-free recommended driver : nvidia-driver-390 - distro non-free driver : nvidia-driver-470-server - distro non-free driver : nvidia-driver-418-server - distro non-free driver : nvidia-driver-460-server - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin > ubuntu-drivers install > reboot
> nvidia-smi
Sun Oct 3 11:43:36 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01 Driver Version: 470.63.01 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:0A:00.0 On | N/A |
| 30% 32C P8 6W / 75W | 398MiB / 3903MiB | 1% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1623 G /usr/lib/xorg/Xorg 35MiB |
| 0 N/A N/A 2203 G /usr/lib/xorg/Xorg 160MiB |
| 0 N/A N/A 2427 G cinnamon 35MiB |
| 0 N/A N/A 2696 G ...AAAAAAAAA= --shared-files 14MiB |
| 0 N/A N/A 2890 G ...AAAAAAAAA= --shared-files 15MiB |
| 0 N/A N/A 3432 G /usr/lib/firefox/firefox 123MiB |
| 0 N/A N/A 3524 G /usr/lib/firefox/firefox 1MiB |
+-----------------------------------------------------------------------------+
wenn man die schnelle Server-Installation erledigt hat, dann den Desktop drauf: Ein Beispiel mit Ubuntu 20.04 LTS
und jetzt die Multimedia-Software:
> apt install vlc vlc-l10n libdvd-pkg > dpkg-reconfigure libdvd-pkg
libdvdcss installieren:
> echo 'deb http://download.videolan.org/pub/debian/stable /' > /etc/apt/sources.list.d/libdvdcss.list > wget -O - http://download.videolan.org/pub/debian/videolan-apt.asc | apt-key add - > aptitude update > aptitude install libdvdcss2
manchmal braucht man das ja (z.B. hinter einer FW):
> vi videolan-apt.asc
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.12 (GNU/Linux) mQENBFIcm2kBCADL5XxrZ27r2z3qqV6r3FUfg90UvM58wvxryAaoXr+y+W0Joh/m 7+Vtxv0DBekTrACuGy7Vg1NzsFHNzEuAbPctpbZgffNSwxgrToFERenEbF14f7Ff xDkF3vLgyll5frNozE2csAaj19lTQLBTNZbhkEys0V844zQSDN9/UYp5BWWXRFt8 xHtocGayloFPdVOcWA+B8gO6hBWyZa7QaMKVvzEiHyqzmxVINJ1k1P3PFqMuHGOF JsPY4ARRZzQ+JYfrtgoqtAh9LYMQAfKmn7F3nlQyUuocEsKuhS0kIDtvLxTdjkef ZYcmQXWxPSxUan6lqP3LGrkMdEmLrzwnFkujABEBAAG0MFZpZGVvTEFOIEFQVCBT aWduaW5nIEtleSA8dmlkZW9sYW5AdmlkZW9sYW4ub3JnPokBOAQTAQIAIgUCUhyb aQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQa8peTbhCiNk7HQgAyy/H Oyzk0UdrFv0bZgqZLxJcdB7ctcruYNkO0eZE09+sPjzBuX52sx6GuXElG/NUw/Qo GUB5kDDKLyeddpyQghU7UhsIZoNdSb2UfVCqSosJ1G7dacRlVh5LFNF1ptYjXGza NIp0zme8YtoQKVCO48YYIf+j94Q5AukTEd1vdPAUAm7e4Q6uYcvpyz1TIoZgnnO/ /fcoWPQrRHnxfsIB0GrqVkHncjt/U1qsxQh7hAJnKjwgnveUe7Q2ey54QId9BQWZ HOxeIXpbhFGwBmHxBGAnDWmg557YlsUI4ejiKy6DBsO8h91NL44cbN8H61Z+T3UH NWXycr/4PClWZEitkYhGBBARAgAGBQJSHJxcAAoJEGFgnhjAr/EP+DAAmwfLrnFE ktmlOv8YssNOBlCh8cEvAJ9qPJoCbY4tWZtaC6aa4R2owLsSoohGBBARAgAGBQJS HJxpAAoJEHGAcTvljRrcaywAn3Gf8fHXVdgpCrycr584Iie1+mEyAKCR8V9kt5DW F6VGUXbhV9INKSKCKbkBDQRSHJtpAQgAw4TQFpFs9PthvzTj/fpa6rioz2gYIGxG TQHuC8LsOCEKuy4AFa8XF2d89NM7ApF/ixU3QDKd7I6YydkW/yp3rTCbnI+xS649 yxDd2RDIqVPsqjWuO8jEs8sQ/wOWMnDdCU95Zwv0BU491u63UbRzamv5+kw7QGQq Pe4VAnsiVxwnV1GOa9Ft0FmaD/m7KhFWAGkTF3pV432gH93V8srPZD+CWZgld97E 45TXXjzWK03NnUyIK+rx+LHJf4I8IFFP0F77FJDIFRJ6BiYbXoKNDVk/nvy1jWg5 98dFi7jzw1t83EnAVgTvBR+bQqBpB69EtY2WUykABMnjMj9t0Y6eFwARAQABiQEf BBgBAgAJBQJSHJtpAhsMAAoJEGvKXk24QojZNMIH/3YE92QZ22YYdl6TchMDswsB FXvsS2/W0xhvKvG5YuyCKoUKYCornK74YrsRURAhYAOvOfrcWeq+wtmUmXrhNvZ2 Qz370hS2EW6Db7FnMdu188LrVZS0AmC1ztu8/DlwRcRF4e05CVgwUMngG2RiAuZN 1ZYQiHJwU2444/Vm+ny/YD55I+RUmKFW69iAvWnJrz5QzohoeZefr48c3FU1glKY E3OtJK/T+/nOVzt+Kzjw8mmrtkZqck/ZVpA51ikcTRSpyLw5ioLpzLFbB/Ew+Dx3 CzFOZhG9UxBV08BOw9a30090OhxPDoKBu210T3tBW9XWmFPohT2fsg5OXZHvp/Q= =pGjl -----END PGP PUBLIC KEY BLOCK-----
Allerdings soll es auch etwas einfacher gehen (hab ich aber noch nicht getestet).
ein neues Repository einrichten, damit man alle Filme ansehen kann:
# wget http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list -O /etc/apt/sources.list.d/medibuntu.list
# aptitude update
# aptitude install medibuntu-keyring
# aptitude update
# aptitude -y safe-upgrade
# aptitude autoclean
# aptitude -y install app-install-data-medibuntu apport-hooks-medibuntu libdvdcss2 non-free-codecs $(aptitude search codecs | awk '/w[0-9]*codecs/ {print $2}')
Nach einem Release-Update ist das Repository deaktiviert, deshalb müssen folgende Kommandos nach einem Release-Update erneut ausgeführt werden:
# wget http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list -O /etc/apt/sources.list.d/medibuntu.list # aptitude update # aptitude install medibuntu-keyring # aptitude update # aptitude -y safe-upgrade # aptitude autoclean
von Dominik Wagenführ
Wer ein "normales" Ubuntu-System, d. h. eines mit Internetanschluss besitzt, wird das Problem nicht kennen. Alle anderen Nutzer sind aber sicherlich schon des Öfteren verzweifelt, als sie ein Paket installieren wollten, aber keinen direkten Internetzugang hatten. Das Paket herunterladen ist schön und gut, aber es fehlen immer die ganzen Abhängigkeiten.
Die native Lösung, bei der man ein Paket nach dem anderen per USB-Stick von einem PC mit Internetanschluss zu dem ohne trägt, ist alles andere als komfortabel. Die zweite direkte Lösung wäre die Installation der Pakete auf dem ersten Ubuntu-System, um diese dann per USB-Stick zu System B zu tragen. Der Haken an der Sache: Welche Pakete waren schon auf System 1 installiert, welche sind wirklich notwendig? Wenn man zwei ähnliche Systeme betreibt, ist das meist noch ein lösbares Problem, aber wenn diese sich total unterscheiden, z. B. ein Ubuntu-System als Basis und ein Kubuntu-System als Ziel, dann ist unklar welche GTK- oder GNOME-Abhängigkeiten nachinstalliert werden müssen.
Aus diesem Grund wäre es gut, wenn man alle Pakete für eine Offline-Installation herunterladen kann, die man als Abhängigkeiten für ein zu installierendes Paket benötigt. Das klingt nach Rekursion und genau darin liegt die Lösung.
Hinweis: Die hier vorgestellte Lösung sollte auf allen Systemen funktionieren, die APT für die Paketverwaltung einsetzen (z. B. Debian, alle Ubuntu-Derivate etc.).
# apt-cache depends -i mc mc Hängt ab: libc6 Hängt ab: libglib2.0-0 Hängt ab: libgpm2 Hängt ab: libslang2
Liste der gewünschten Patete erstellen:
# vi pakete.txt mc screen star
Die Abhängigkeiten der gewünschten Pakete ermitteln:
# xargs -a pakete.txt apt-cache depends --recurse -i ${1} | nawk '{ print $NF }' | sort | uniq > pakete_alle.txt
Jetzt geht es zum saugen:
Durch den Parameter "-d" wird nicht installiert und durch den Parameter "–reinstall" werden auch die schon installierten Pakete erneut gesaugt:
# xargs -a pakete_alle.txt apt-get install --reinstall -d ${1}
Jetzt liegen alle Pakete im Verzeichnis /var/cache/apt/archives.
Es geht auch mit dem neuen Programm "aptitude":
# aptitude update # aptitude download $(cat Pakete_alle.txt)
Aptitude legt die gesaugten Pakete ins aktuelle Verzeichnis.
Auf dem einsamen Rechner werden die Pakete dann vom USB-Stick installiert:
# dpkg -i *.deb