středa 14. srpna 2024

Instalační skript pro Mint 21.3 xFce (nezkontrolovaná verze, chce to přidat ramdisk)

#!/bin/sh
# Hlavní cesta je path a "LINUX Apps" s install a  instalačkama:
path="/media/install/INSTALL_BETA/LINUX Apps/Install Mint apps"
drivers_G960S="/media/install/LINUX Apps/Install Mint apps/ovladače/tablety/G960S plus/XPPenLinux3.4.6-230714.tar.gz"

# nastaví zkratku pro přepínání kláves jako na Windows.
setxkbmap -layout cz,us -option grp:alt_shift_toggle

LOG_FILE=~/first_install-$(date +"%Y-%m-%d-%H-%M-%S").log
# Funkce pro přidání časového razítka do logu
print_and_log() {
    local message="$1"
    echo "$message"
    echo "$(date '+%H:%M:%S') - $message" >> "$LOG_FILE"
}

set_path() {
  local sub_dir
  echo "Provedu test cesty:$1"
  if [ -d "$1" ]; then
    echo "Cesta '$1' existuje."
    path="$1"
    return 0
  fi
  install_sub_path=$(echo "$1" | awk -F 'LINUX Apps' '{print "LINUX Apps" $2}')
  echo "Sub dir: $install_sub_path"
  while true; do
   echo "Zadaná cesta $path neexistuje. Zadejte adresář v /media kam je připojen adresář Linux apps:"
   ls -d /media/*/ | awk -F/ '{print $3}'
   read sub_dir
   path="/media/$sub_dir/$install_sub_path"
   if [ -d "$path" ]; then
     echo "Cesta '$path' existuje."
     path="$path"
     return 0
   fi
  done
}
set_path "$path"
echo "Používám cestu: $path"


if [ "$(id -u)" -gt 0 ]; then
  echo "Tento skript vyžaduje práva sudo."
  exit 1
fi

vmw_files=$(find /usr/bin/ -type f -name 'vmw*' | wc -l)

if [ "$vmw_files" -eq 12 ]; then
  echo "VMWare je nainstalován. Vypínám automatickou defragmentaci."
  # Vypnout automatickou defragmentaci
  systemctl disable fstrim.timer
else
  echo "VMWare není nainstalován"
fi
echo "Služba fstrim.timer provádí automatickou defragemnatci a její stav je"
systemctl is-enabled fstrim.timer

# Attention! There is a path for debi packages (see gdebi), so check it.
cd "$path"


# POUČENÍ:  Příkaz dpkg -i a apt install mají odlišné funkce a použití:
# 1) NEŘEŠÍ ZÁVISLOSTI balíčků .deb
# dpkg -i:
# dpkg je nízkoúrovňový nástroj pro správu balíčků v distribucích založených na Debianu (včetně Linux Mint). Příkaz dpkg -i slouží k instalaci balíčků, které jsou ve formátu .deb, což je formát balíčků pro Debian a jeho odvozené distribuce. Tento příkaz instaluje balíček přímo ze souboru .deb, který specifikujete. Pokud je balíček kompatibilní se systémem a nemá žádné závislosti, může být nainstalován úspěšně.
# 2)
# apt install:
# apt (Advanced Package Tool) je vyšší úrovně nástroj pro správu balíčků, který pracuje s repozitáři balíčků a zajišťuje, že jsou splněny všechny závislosti balíčku. Příkaz apt install se používá k instalaci balíčků ze spravovaných repozitářů. Aplikuje se také na náhrady a aktualizace stávajících balíčků a zajišťuje, že jsou správně řešeny závislosti.
# 3) ŘEŠÍ ZÁVISLOSTI balíčků .deb, proto někdy gdebi a apt selžou při instalaci, která byla přerušena.
# `gdebi` je nástroj, který zajišťuje instalaci balíčků ve formátu .deb a zároveň řeší jejich závislosti.
# Hlavním rozdílem mezi gdebi a dpkg -i je v tom, jak se zachází se závislostmi během instalace balíčku.


print_and_log "apt-get remove... bluetooth: blueberry-obex-agent"
# odstraň balík pro bluetooth, nepoužívám
apt-get remove blueberry-obex-agent
print_and_log "An attempt to remove... geoclue, update-notifier, evolution, goa."
# odstraň balík pro určování polohy pro aplikace, nepoužívám
apt-get remove geoclue-2.0
# odstraň upozornování na aktualizace, nepotřebuju
apt-get remove update-notifier
# odstraň emailového klienta, nepotřebuju
apt-get remove evolution
# odstraň službu na přihlašování do sociálních sítí, nepotřebuju
apt-get remove goa

apt-get update

# jed najíždí rychleji, obsahuje menu, zkratky, černé pozadí
print_and_log "Instaluji jed - Editor jed umožňuje zvětšit nebo zmenšit text"
apt install -y jed   # jed umožňuje zvětšit nebo zmenšit text
export EDITOR=jed # nastav jako defaultní editor jed

clear
echo -e "Vyberte způsob instalace:\n"
while true;
 do
   read -p "1) Kompletní 2) Od WineHQ 3) Pokračovat až za WinHQ ... " WhereToStart
   case "$WhereToStart" in
      1) WhereToStart="COMPLETE";break;;
      2) WhereToStart="WINEHQ+";break;;
      3) WhereToStart="SKIP_BEGIN_WINEHQ";break;;
      *) echo "Zadej smysluplny vstup."
   esac
 done

clear
echo $WhereToStart

echo -e "Vyberte verzi vašeho distra:\n"
while true;
 do
   read -p "1) Mint focal 2) Mint jammy 3) Najet do mc 4) exit ... " distro
   case "$distro" in
      1) distro="focal";break;;
      2) distro="jammy";break;;
      3) mc;break;;
      4) exit;break;;
      *) echo "Zadej smysluplny vstup."
   esac
 done
echo $distro

echo -e "Co přidat do fstab? a)\n"
echo -e "a) Sdílené adresáře VMWare pro složku /home/user/mnt\n"
echo -e "b) Složka INSTALL z BETA disku mount do /media/INSTALL\n"
echo -e "c) Připojit všechny oddíly s popiskem BETA\n"
echo -e "d) Připojit všechny oddíly s popiskem ALFA\n"
echo -e "e) konec smyčky a pokračovat dále\n"
while true;
 do
   read -p "Zadejte jedno písmeno ... " distro
   case "$distro" in
      a) echo ".host:/    /home/user/mnt    fuse.vmhgfs-fuse    defaults,allow_other,uid=1000,gid=1000    0    0" >> /etc/fstab;
         echo -e ".host:/  fuse.vmhgfs-fuse default,allow_other,uid... přidáno do /etc/fstab\n";continue;;
      b) echo "UUID=\"0296CF7796CF69AD\" /media/install ntfs defaults,allow_other,uid=1000,gid=1000" >> /etc/fstab
;
         echo -e "UUID=\"0296CF7796CF69AD\" /media/install ntfs ... přidáno do /etc/fstab\n";continue;
      c) ;break;;
      d) ;break;;
      e) ;break;;
      *) echo "Zadej smysluplny vstup."
   esac
 done


if [ "$WhereToStart" = "COMPLETE" ]; then

print_and_log "First install TLS Certificates, they are needed for flatpak apps"
apt install -y --reinstall ca-certificates

# Installation of Fucking Fast Filemanager for Bash. Really good file man
 git clone https://github.com/dylanaraps/fff.git
 cd fff
 make PREFIX=/usr/local install

print_and_log "Instaluji FTP Managery - Double commander je mnohem lepší vzhledem než Filezilla"
 apt install -y doublecmd-gtk


print_and_log "Filezilla prep..."

print_and_log "Instaluji nástroje potřebné pro kompilaci Filezilly, kvůli problému se zobrazením."
 apt install -y autoconf automake libtool build-essential
print_and_log "Instaluji# První část závislostí jak je uvedeno na str. https://wiki.filezilla-project.org/Client_Compile"
 get install -y libfilezilla-dev libwxbase3.0-dev gnutls-dev libdbus-1-dev
print_and_log "Instaluji FillZilla3 vyžaduje libtinyxml-dev libsqlite3-dev libwxgtk3.0-gtk3-dev libgtk-3-dev"
 apt install -y libwxgtk3.0-gtk3-dev libtinyxml-dev libsqlite3-dev libgtk-3-dev
 # Stáhne projekt FileZilla3 do aktuální složky
 if [ ! -d "FileZilla3" ]; then
   git clone https://github.com/botg/FileZilla3.git
 fi
 cd FileZilla3
 autoreconf -i
 ./configure --disable-dependency-tracking
 # make # make zkompiluje projekt ... spuštění:  ./src/filezilla3

# apt-cache search mc sysstat ttf-mscorefonts-installer net-tools, xed, kate, gedit htop gnome-shell-extension-manager
# Instalace balíčků s logováním
print_and_log "Instaluji mc a sysstat (sysstat obsahuje mpstat, testdisk obsahuje photorec - program na záchranu dat)"
apt install -y mc sysstat testdisk # sysstat contains mpstat

print_and_log "Instaluji ttf-mscorefonts"
apt install -y ttf-mscorefonts-installer

print_and_log "Instaluji net-tools, filezilla a clonezilla (CloneZilla slouží na zálohu disku)"
apt install -y net-tools filezilla clonezilla # CloneZilla slouží na zálohu disku

print_and_log "Instaluji xed, kate, gedit a gparted"
apt install -y xed kate gedit gparted

print_and_log "Instaluji sublime-text (Tmavá náhrada za bílý kate a za NotePad++)"
apt install -y sublime-text # Tmavá náhrada za bílý kate a za NotePad++ . Try: (?<![\dA-F])9(?![\dA-F]) seek dec. no. 9

print_and_log "Instaluji htop a smem"
apt install -y htop smem

print_and_log "Přidávám PPA pro nomacs a instalaci (Tento prohlížeč obrázků je dobrý, něco jako FastStone)"
add-apt-repository ppa:nomacs/stable && apt install -y nomacs # Tento prohlížeč obrázků je dobrý, něco jako FastStone:

print_and_log "Instaluji ristretto (prohlížeč obrázků, ale defaultně je tam xviewer)"
apt install -y ristretto # Ristretto má možnost přejmenovat název souboru

print_and_log "Instaluji gthumb (velmi dobrý pro procházení, přejmenování a mazání obrázků)"
apt install -y gthumb # gthumb is very good for browse, rename & delete pics!

print_and_log "Instaluji Audacity z repozitáře"
apt install -y audacity

print_and_log "Instaluji Polyphone, software pro návrh a správu zvukových bank pro MIDI nástroje a syntetizátory. \
Je určený především pro vytváření a úpravu zvukových bank (SoundFonts), které jsou soubory obsahující zvukové vzorky \
a nastavení, které se používají v digitálních hudebních nástrojích. Pomocí Polyphone můžete: \
- Vytvářet a upravovat SoundFonts (přidávat, odstraňovat nebo upravovat zvukové vzorky a jejich parametry) \
- Spravovat zvukové vzorky (nastavit, jak budou jednotlivé vzorky přehrávány a jak budou reagovat na různé klávesy nebo noty) \
- Konvertovat a exportovat SoundFonts (ukládat upravené SoundFonts do různých formátů)."
apt -y install polyphone

#########################################
### Tuxquitar ze Source forge (debi)  ###
#########################################

print_and_log "Instaluji TuxGuitar - program na přehrávání midi a učení se notám nebo hře na hudební nástroje."
# Zjištění verze TuxGuitar z repozitáře
REPO_VERSION=$(apt-cache policy tuxguitar | grep Candidate | awk '{print $2}')

# Nastavení proměnných pro URL a verzi ze SourceForge
SOURCEFORGE_VERSION="1.5.6"
TUXGUITAR_URL="https://sourceforge.net/projects/tuxguitar/files/TuxGuitar/TuxGuitar-1.5.6/tuxguitar-1.5.6-linux-x86_64.deb/download"

# Porovnání verzí a instalace
if dpkg --compare-versions "$SOURCEFORGE_VERSION" gt "$REPO_VERSION"; then
    print_and_log "Stahuji a instaluji TuxGuitar verzi $SOURCEFORGE_VERSION ze SourceForge."
    wget -O tuxguitar-1.5.6-linux-x86_64.deb "$TUXGUITAR_URL"
    sudo gdebi -n -q tuxguitar-1.5.6-linux-x86_64.deb
    rm tuxguitar-1.5.6-linux-x86_64.deb
else
    print_and_log "Instaluji TuxGuitar z repozitáře (verze $REPO_VERSION)."
    sudo apt -y install tuxguitar
fi
    

print_and_log "Instaluji gnome-shell-extension-manager"
apt install -y gnome-shell-extension-manager

print_and_log "Instaluji zim - organizátor poznámek"
apt install -y zim

print_and_log "Instaluji gdebi a muon - správce balíčků"
apt install -y gdebi muon nautilus

print_and_log "Instaluji nautilus a krusader - souborové manažery"
apt install -y nautilus krusader

print_and_log "Instaluji vlc"
apt install -y vlc

print_and_log "Instaluji imagemagick (convert) a inkscape"
apt install -y imagemagick inkscape # convert lze použít např. na konverzi souborů nebo generování ikon

print_and_log "Instaluji libreoffice"
apt install -y libreoffice
print_and_log "Instaluji češtinu pro libreoffice: libreoffice-l10n-cs"
apt install -y libreoffice-l10n-cs

print_and_log "Nástroje pro pořizování snímů obrazovky:"
print_and_log "Instaluji gnome-screenshot"
apt install gnome-screenshot
print_and_log "Instaluji xfce4-screenshooter (Nastavení->Klávesnice -> Klávesové zkratky aplikace: klávesa Print; příkaz: xfce4-screenshooter -c -d 0 -f)"
apt install -y xfce4-screenshooter # Nastavení->Klávesnice -> Klávesové zkratky aplikace: klávesa Print; příkaz: xfce4-screenshooter -c -d 0 -f

print_and_log "Instaluji libxml2-utils"
apt install -y libxml2-utils

# Instalace vscode a stažení balíčku code_latest_amd64.deb
echo "Visual Code ... download and installation"
echo "Stahuji Visual Code Studio" >> $LOG_FILE
wget -qO- https://update.code.visualstudio.com/latest/linux-deb-x64/stable | sudo tee code_latest_amd64.deb > /dev/null
echo "Instaluji Visual Code Studio" >> $LOG_FILE
dpkg -i code_latest_amd64.deb

# OLD LINES:
# apt-get install python perl
# apt-get upgrade python3
# ln -sf /usr/bin/python3 /usr/bin/python # create simlink to python3 to overwrite the old link
# apt-get install python3.8-distutils
# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# python3.8 get-pip.py # python vyžaduje pip na instalování modulů

 # utility pro parsování xml/html (xmllint)
# apt install -y libxml2-utils
# python3.8 -m pip install lxml

  # autokey Alternativně přes pip:
  # Instalace přes pip stahuje balíčky z Python Package Index (PyPI), což je centrální repozitář pro balíčky Pythonu. Toto umožňuje získat aktuálnější verze balíčků, což může být výhodné, pokud potřebujete nejnovější funkce.
# Na druhou stranu pip nemusí brát v úvahu kompatibilitu s celým systémem, a proto může být náchylnější na konflikty závislostí nebo nestabilitu.

#  pip3 install autokey

########################################################
###### NOVÁ SEKCE PRO PYTHON 3.8 a instalace do .venv  #
########################################################

echo "Instaluji python a perl" >> $LOG_FILE
apt-get install python perl

echo "Upgraduji python3" >> $LOG_FILE
apt-get upgrade python3

echo "Vytvářím simlink pro python3" >> $LOG_FILE
ln -sf /usr/bin/python3 /usr/bin/python # create simlink to python3 to overwrite the old link

echo "Instaluji python3.8-distutils" >> $LOG_FILE
apt-get install python3.8-distutils

echo "Stahuji get-pip.py" >> $LOG_FILE
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

echo "Instaluji pip" >> $LOG_FILE
python3.8 get-pip.py # python vyžaduje pip na instalování modulů
pip install --upgrade pip

#####################
### .venv (START) ###
#####################

print_and_log "Vytvářím a aktivuji virtuální prostředí .venv"
python3.8 -m venv ~/.venv
source ~/.venv/bin/activate

print_and_log "Instaluji lxml do virtuálního prostředí .venv"
# Instalace balíčků s logováním
print_and_log "Instaluji lxml do virtuálního prostředí .venv"
pip3 install lxml

print_and_log "Instaluji autokey přes pip"
pip3 install autokey

print_and_log "Instaluji pillow (nahrazuje PIL)"
pip3 install pillow

print_and_log "Image a ImageDraw jsou součástí pillow, není potřeba je instalovat samostatně"
# Příkaz pro Image a ImageDraw už není potřeba, protože jsou součástí pillow

print_and_log "Instaluji pandas"
pip3 install pandas

print_and_log "Instaluji sqlalchemy"
pip3 install --upgrade sqlalchemy

print_and_log "Instaluji pymysql"
pip3 install pymysql

print_and_log "Instaluji psutil"
pip3 install psutil

print_and_log "Instaluji patches - color patches pro matlab"
pip3 install patches

print_and_log "Instaluji pyautogui"
pip3 install pyautogui

print_and_log "Instaluji numpy, OpenBlas (base) a scipy - Základní runtime knihovna OpenBLAS, která je použita pro efektivní matematické operace, zejména pro lineární algebru a numerické výpočty. Scipy je knihovna pro vědecké výpočty."
pip3 install numpy libopenblas-base scipy

print_and_log "Instaluji ttkthemes"
pip3 install ttkthemes

print_and_log "Instaluji opencv-python-headless"
pip3 install opencv-python-headless

print_and_log "Instaluji opencv-python (nahradí cv2)"
pip3 install opencv-python

print_and_log "Instaluji matplotlib"
pip3 install matplotlib

print_and_log "Tkinter je součástí standardní knihovny Pythonu a může být již nainstalován"
# Tkinter je standardní knihovna, není potřeba ho instalovat samostatně

print_and_log "Instaluji pydub"
pip3 install pydub

print_and_log "Instaluji moviepy"
pip3 install moviepy

echo "pip balíčky pro strojové učení:"
print_and_log "Strojové učení: transformers"

echo "transformers: Nainstaluje nebo aktualizuje knihovnu transformers od Hugging Face."
echo "torch: Nainstaluje nebo aktualizuje PyTorch."
echo "torchvision: Nainstaluje nebo aktualizuje knihovnu pro zpracování obrazů v PyTorch."
echo "torchaudio: Nainstaluje nebo aktualizuje knihovnu pro zpracování zvuku v PyTorch."
# Možná budu potřebovat taky tensorflow...

# OLD: Obsolete:
# pip3 install --upgrade transformers==4.42.0 torch torchvision torchaudio
# pip install git+https://github.com/huggingface/transformers.git@v4.42.0

echo "Getting Huggingface transformers version from github..."
transformers_latest_version=$(curl -s https://api.github.com/repos/huggingface/transformers/releases/latest | grep "tag_name" | awk -F': "' '{print $2}' | sed 's/",$//')

# Výpis nejnovější verze pro kontrolu
print_and_log "Poslední verze transformers: $transformers_latest_version"

# Instalace nebo aktualizace balíčků na nejnovější verzi včetně konkrétní verze transformers
pip3 install --upgrade transformers==$transformers_latest_version torch torchvision torchaudio

echo "Deaktivuji virtuální prostředí" >> $LOG_FILE
deactivate

echo "Upozornění: Ruční editace souboru .profile"
echo "Po otevření souboru .profile v editoru xed budete muset ručně upravit nastavení prostředí, aby se vaše projekty správně spustily."
echo "Co editovat:"
echo "    Přidat cestu k Pythonu"
echo "    Nastavit proměnné prostředí pro vaše projekty"
echo "    Upravit jiné nastavení prostředí podle potřeby"
/bin/python3 /home/user/.vscode/extensions/ms-python.python-2024.4.0/python_files/printEnvVariablesToFile.py /home/user/.vscode/extensions/ms-python.python-2024.4.0/python_files/deactivate/bash/envVars.txt
xed .profile &

#####################
### .venv (END) ###
#####################

 # autokey vyžaduje tyto závislosti pro python 3.7 nebo vyšší viz https://github.com/autokey/autokey/wiki/Installing:
 # umožní použít grafické rozhraní AutoKey (autokey-gtk):
 # apt install -y python3-dbus python3-xlib python3-pyinotify wmctrl python3-gi gir1.2-gtk-3.0 gir1.2-gtksource-3.0 gir1.2-appindicator3-0.1 gir1.2-glib-2.0 gir1.2-notify-0.7 zenity
 # apt install -y autokey-gtk

  # Recommended installation-time/build-time dependency, if installing using pip3 or prior to self-building Debian packages
  # apt install -y pyqt5-dev-tools

 # Free pascal - It is recommended not to use this old verion on mint 20
# apt install -y fp-compiler
# apt install -y fp-units-fcl # obsahuje grafickou knihovnu
# apt install -y lazarus
 # Toto by měla být aktualizovaná verze Lazara + fpc
sudo gdebi -n -q fpc-laz_3.2.2-210709_amd64.deb fpc-src_3.2.2-210709_amd64.deb lazarus-project_2.2.6-0_amd64.deb
 # v případě, že selžou závislosti lze v nezbytném případě použí dpkg -i což mi pomohlo nainstalovat fp-3.2.2

print_and_log "Začíná instalace JOSM."
print_and_log "Přidání repozitáře"
# BEGIN JOSM: Install latest version
echo "deb [signed-by=/usr/local/share/keyrings/josm-apt.gpg] https://josm.openstreetmap.de/apt $(grep ^DISTRIB_CODENAME= /etc/upstream-release/lsb-release| awk -F = '{print $(2)}') universe" | sudo tee /etc/apt/sources.list.d/josm.list > /dev/null
echo deb https://josm.openstreetmap.de/apt alldist universe | sudo tee /etc/apt/sources.list.d/josm.list > /dev/null

print_and_log "Stahování a přidání GPG klíče pro ověření balíčků JOSM."
wget -q https://josm.openstreetmap.de/josm-apt.key -O- | sudo apt-key add -



# Download the public key:
# Create the directory for manually downloaded keys if it was not already created
mkdir -p /usr/local/share/keyrings
# Download the key - AKTUÁLNÍ MODERNĚJŠÍ METODA s .gpg
print_and_log "vytvoření souboru klíče(nky) josm-archive-keyring.gpg"
wget -q https://josm.openstreetmap.de/josm-apt.key | gpg --dearmor | sudo tee /usr/share/keyrings/josm-archive-keyring.gpg > /dev/null

# Download the public key:
# Create the directory for manually downloaded keys if it was not already created
wget -q https://josm.openstreetmap.de/josm-apt.key -O- | sudo gpg --dearmor -o /usr/local/share/keyrings/josm-apt.gpg


print_and_log "Zobrazuji zdroje v /etc/apt/sources.list.d/"
ls /etc/apt/sources.list.d/ | tee -a "$LOG_FILE"
print_and_log "apt-get update"
sudo apt-get update
print_and_log "Instalace JOSM bude pokračovat později"
print_and_log "JOSM note: You may need to install ssl support for apt in advance:"
print_and_log "Instaluji apt-transport-https"
apt-get install apt-transport-https
print_and_log "Now refresh your sources:"
apt-get update
print_and_log "Odstraňuji staré josm a josm-plugins"
# and install:
# You can skip this first line if these packages were not installed before.
apt-get -y remove josm josm-plugins

# For the tested version
print_and_log "Instaluji josm"
apt-get install -y josm
# For the development version
print_and_log "Instaluji development version josm-latest"
apt-get install -y josm-latest
# END JOSM Install latest version
print_and_log "JOSM installation should be finished."


# apt-cache search git hwinfo gnome-commander zsh
 print_and_log "Instaluji git"
 apt install -y git
 print_and_log "Instaluji hwino"
 apt install -y hwinfo
 # apt install -y gnome-commander # Gnome commander byl pro Freespire/Ubuntu, v Mintu 20 na to není repozitář.
 print_and_log "Instaluji zsh"
 apt install -y zsh
# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # https://ohmyz.sh/#install

# Stáhnu skript a sed zakomentuje tyto řádky, aby to nezdržovalo:
#  read -r opt
#  exec zsh -l
 if [ ! -d "/root/.oh-my-zsh" ]; then
   sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh | sed -e 's/exec zsh -l/#exec zsh -l/' -e 's/read -r opt/#read -r opt/')"
 fi

# Apps for record from screen with audio and to draw a frame around rec. area.
print_and_log "recordmydesktop ffmpeg xdotool gromit-mpx"
apt install -y recordmydesktop ffmpeg xdotool gromit-mpx

 # Instaluje nejaktuálnější verzi video editoru Pitivi:
# nainstalovat flatpak bez nutnosti potvrdit
print_and_log "Instalace flatpak"
apt update -qq && apt install -y flatpak

# flatpak install -y flathub org.shotcut.Shotcut

# aktivovat flathub repositar
print_and_log "flathub.flatpakrepo"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# nainstalovat pitivi app bez nutnosti potvrdit
# tim ze se da cely nazev app tak se te nepta jakou z moznosti nalezenou pro slovo "pitivi" chces
print_and_log "Instaluji flatpak Pitivi - video editor"
flatpak install -y org.pitivi.Pitivi 
# (Aplikace se pak spustí příkazem:
 # /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=pitivi --file-forwarding org.pitivi.Pitivi @@ %f @@)

 # Install GitHub Desktop on Linux Mint 21 or Linux Mint 20
 # Using flatpak is easier than other solutions
 # The repo link is here: https://flathub.org/apps/details/io.github.shiftey.Desktop
print_and_log "Instaluji flatpak GitHub Desktop"
 flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/appstream/io.github.shiftey.Desktop.flatpakref
 flatpak install -y flathub io.github.shiftey.Desktop
 # Z terminálu se spouští takto: flatpak run io.github.shiftey.Desktop 
 # Viz https://www.linuxcapable.com/how-to-install-github-desktop-on-linux-mint/


fi

# START WINE INSTALL
if [ "$WhereToStart" != "SKIP_BEGIN_WINEHQ" ]; then

# PREPARATION TO INSTALL wine-hq according https://www.linuxcapable.com/how-to-install-wine-on-linux-mint/
 print_and_log "Preparation for wine-hq install: "
 print_and_log "Instalace Wine: certifikáty, gnupg, gnupg2, aj."
 apt install -y dirmngr ca-certificates software-properties-common gnupg gnupg2 apt-transport-https curl -y
# add x32 support to Wine
 print_and_log "Using x32 architecture... "
 dpkg --add-architecture i386
# Import WineHQ Repository:
# a. Import GPG key
 print_and_log "Importing GPG key: "
 curl -s https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/winehq.gpg > /dev/null

 if [ "$distro" = "jammy" ]; then
  print_and_log "Importing WineHQ repository for Linux Mint 21.xx: ... "
  echo deb [signed-by=/usr/share/keyrings/winehq.gpg] http://dl.winehq.org/wine-builds/ubuntu/ jammy main | sudo tee /etc/apt/sources.list.d/winehq.list
 fi

 if [ "$distro" = "focal" ]; then
  print_and_log "Import WineHQ repository for Linux Mint 20.xx: ... "
  echo deb [signed-by=/usr/share/keyrings/winehq.gpg] http://dl.winehq.org/wine-builds/ubuntu/ focal main | sudo tee /etc/apt/sources.list.d/winehq.list
 fi
 print_and_log "Updating... "
 apt update
 print_and_log "Installing Wine – WineHQ Stable Release... "
 apt install -y winehq-stable --install-recommends  -y

 print_and_log "Done. Installed: "
 print_and_log "Zobrazuji verzi Wine"
 wine --version | tee -a "$LOG_FILE"

fi # KONEC WINE INSTALL

# First uninstall unnecessary services
print_and_log "Zkouším odinstalovat evolution-server evolution-calendar"
apt purge -y evolution-server evolution-calendar
print_and_log "Zkouším odinstalovat libgoa-1.0*"
apt purge -y libgoa-1.0*
print_and_log "Zkouším odinstalovat geoclue*"
apt purge -y geoclue*      # 2.0

# apt-cache search net-tools thunar-font-manager fnt shotcut oh-my-zsh
print_and_log "Instalace net-tools - ifconfig, netstat, route, arp, nameif mii-tool atd."
apt install -y net-tools
print_and_log "Instalace thunar-font-manager - Tento plugin umožňuje spravovat a instalovat fonty přímo z Thunaru."
apt install -y thunar-font-manager
print_and_log "Instalace fnt - jednoduchý nástroj příkazového řádku pro vyhledávání, instalaci a správu fontů z různých zdrojů, jako jsou Google Fonts a další."
apt install -y fnt
# apt install -y shotcut # nebyl by aktuální a podpora vyžaduje aktuální shotcut

#apt install -y oh-my-zsh
#sh -c "$(curl -fsSL https://raw.githubusercontent.com/ ohmyzsh/ohmyzsh/master/tools/install.sh)"

cd "/media/user/INSTALL BETA 17GB/LINUX Apps/Install Mint apps"
clear
pwd
echo "gdebi packages gonna be installed. Is current folder correct?"
echo "Is the path OK? (read B), expected: [y/n]";
read B
if [ "$B" = "y" ]; then
  echo " ... Starting gdebi install."
else
  echo "Change path and exit to continue... " && mc
fi

print_and_log "Instalace balíčků pomocí gdebi ... "
print_and_log "Instaluji bleachbit - nástroj na čištění systému. Umí vymazat dočasné soubory, vyprázdnit koš, odstranit soubory cookie, vyčistit cache a mnoho dalšího. Tento nástroj je podobný aplikacím jako je CCleaner na Windows."
gdebi -n -q bleachbit_4.4.2-0_all_ubuntu2110.deb
print_and_log "google-chrome-stable"
gdebi -n -q google-chrome-stable_current_amd64.deb
print_and_log "zoom"
gdebi -n -q zoom_amd64.deb
print_and_log "google-earth"
qdebi -n -q google-earth-pro-stable_current_amd64.deb
print_and_log "opera-stable"
gdebi -n -q opera-stable_96.0.4693.50_amd64.deb


echo "Create simplified /media/user structure?"
echo "(read B), expected: [y/n]"
read B
if [ "$B" = "y" ]; then
  mkdir
  mkdir /home/user/mnt
  mkdir /media/
  mkdir /media/user
  mkdir /media/user/INSTALL_BETA
  mkdir /media/user/FILMY
  mkdir /media/user/velke_zalohy_alfa
  mount /dev/sda2 -ntfs /media/user/INSTALL_BETA
  mount /dev/sda4 -ntfs /media/user/FILMY
  /usr/bin/vmhgfs-fuse .host:/ /home/user/mnt -o subtype=vmhgfs-fuse,allow_other
else
  echo " ... mount skipped"
  echo "... vmghfs-fuse .host:/ skipped mountpoint"
fi

# thunderbird --profilemanager

echo "Extract browser, palemoon archiv to /opt?"
echo "(read B), expected: [y/n]"
read B
if [ "$B" = "y" ]; then
  print_and_log "Pokus o extrakci palemoon."
  tar fvJx palemoon-32.0.1.linux-x86_64-gtk3.tar.xz -C /opt
fi



echo "Check memory and release cache?"
echo "(read B), expected: [y/n]"
read B
if [ "$B" = "y" ]; then
  free -h
  sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
  free -h
fi

print_and_log "Instalace ovladačů pro tablet XP-pen G960S (Star series)"
tar -xzvf "$drivers_G960S" /tmp
cd /tmp/XPPenLinux3.4.6-230714/
sudo ./install.sh
print_and_log "You need to restart linux"
print_and_log "run xppentablet with this command: /usr/lib/pentablet/PenTablet.sh

print_and_log "Instalace apache a mysql. Uživatel mysql bude user ."
apt install -y apache2

print_and_log "I am adding  to /etc/apache2/apache2.conf to limit proccesses count"
echo "
    StartServers 2
    MinSpareServers 2
    MaxSpareServers 5
    MaxRequestWorkers 10
" >> "/etc/apache2/apache2.conf"
print_and_log "Check that the 
    StartServers 2
    MinSpareServers 2
    MaxSpareServers 5
    MaxRequestWorkers 10

lines are present only once in file /etc/apache2/apache2.conf
"

print_and_log "Změna složky DocumentRoot /var/www/html na /var/www"
sed -i 's@DocumentRoot\s*/var/www/html@DocumentRoot /var/www@' /etc/apache2/sites-available/000-default.conf

apt install -y mysql-server

MAX_CONNECTIONS="1"
SLOW_QUERY_LOG="1"
LOG_QUERIES_NOT_USING_INDEXES=""
MAX_BINLOG_SIZE="2M"

sed -i "s/max_connections\s*=\s*.*/max_connections = $MAX_CONNECTIONS/" "$CONFIG_FILE"
sed -i "s/slow_query_log\s*=\s*.*/slow_query_log = $SLOW_QUERY_LOG/" "$CONFIG_FILE"
sed -i "s/# log-queries-not-using-indexes/log-queries-not-using-indexes/" "$CONFIG_FILE"
sed -i "s/max_binlog_size\s*=\s*.*/max_binlog_size = $MAX_BINLOG_SIZE/" "$CONFIG_FILE"

print_and_log "Check the file /etc/mysql/mysql.conf.d/mysqld.cfg
to make sure that the item 
thread_handling = one-thread-per-connection
is inserted only once.
"

echo "thread_handling = one-thread-per-connection" >> "/etc/mysql/mysql.conf.d/mysqld.cfg"


# Data databáze mysql se nainstalují do /var/lib/mysql
# Chyby se zapisují do /var/log/mysql/error.log
# Toto nastavení v podstatě nelze změnit, protože do /home/user nelze nic
# přesunout, protože mysql/mysqld by tam neměl přístup, vlastníka tam změnit.
# Možná by to šlo, kdybych vytvořil samostatný účet /home/mysql ale na to seru
# Iniciace pro ladění se provede:
# sudo mysqld --initialize-insecure --user=user --datadir=/home/user/mysql
# Pokud je v pořádku, /var/log/mysql/error.log zabírá jen 526 bytů
# Defaultně je to nastavené na InnoDB

# "Před tím než se provede mysqld --initialize-insecure se musí složka /var/lib/mysql vyprázdnit, jinak nedojde ke znovunastavení mysql."
# mysqld --initialize-insecure --user=user --datadir=/home/user/mysql
# Snížení počtu thredů v případě že jedu na VM má smysl jen pokud jsou uvedeny v konfiguráku
mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql --log-error=/var/log/mysql/error.log --max-connections=1 --thread_handling=one-thread-per-connection


print_and_log "Instalace php, phpmyadmin, adminer"
# K datu 10.12.2023 jsem na Mintu 20 nainstaloval:
# php 7.4, phpmyadmin 4.9.5 a adminer 4.7.6-1
# apt install -y php libapache2-mod-php php-mysql phpmyadmin adminer

# POZNÁMKA Joomla 4 a Joomla 5 už pracují s php 8.1 a výše a jsoou doporučeny

print_and_log "Aktuální zdroje:"
print_and_log "ls /etc/apt/sources.list.d"
ls /etc/apt/sources.list.d

# Zkontroluje, zda soubor pro PPA již existuje
ppa_file="/etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list"
if [ -f "$ppa_file" ]; then
    print_and_log "Soubor pro PPA již existuje: $ppa_file"
else
    print_and_log "Přidávám zdroj: sudo add-apt-repository ppa:ondrej/php"
    sudo add-apt-repository ppa:ondrej/php
fi
print_and_log "Přidávám zdroj: sudo add-apt-repository ppa:ondrej/php"
find /etc/apt/sources.list.d/ondrej-php-focal.list

print_and_log "Výpis souboru find /etc/apt/sources.list.d/ondrej-php-focal.list"
cat /etc/apt/sources.list.d/ondrej-php-focal.list

print_and_log "Instaluji php8.2 libapache2-mod-php8.2 php8.2-mysql phpmyadmin adminer"
apt install -y php8.2 libapache2-mod-php8.2 php8.2-mysql phpmyadmin adminer

print_and_log "Instaluji Balena Etcher (https://etcher.balena.io/)"
wget -O balenaEtcher-1.7.9-ia32.AppImage https://github.com/balena-io/etcher/releases/download/v1.7.9/balenaEtcher-1.7.9-ia32.AppImage
chmod +x balenaEtcher-1.7.9-ia32.AppImage
echo -e '[Desktop Entry]\nName=Balena Etcher\nExec='$HOME'/balenaEtcher-1.7.9-ia32.AppImage\nIcon=application-x-executable\nType=Application\nTerminal=false\nCategories=Utility;' > $HOME/Desktop/balenaEtcher.desktop
chmod +x $HOME/Desktop/balenaEtcher.desktop


Žádné komentáře:

Okomentovat

Jak zkopírovat styly jako font a odstavec v LibreOffice Write?

V dokumentu Write píšu CV. Někde uprostřed mám nadpisy a chci zkopírovat jeden nadpis v četně stylů a vložit ho jinde. Když použiju např ct...

Štítky

.profile adm AI alfa transparence AND any aplikace asociativní pole atomicity audio awk bash benchmark bezpečnost biblehub BJT boolean buffering Cache-Conrol Cloudflare code Collector Cut-off colorpicker compare cookies css CSS3 curl cut čas data loss data lost data transfer reliability datasheet datetime.strptime development dioda diody EBO Emitter Cut-off Current ETag exclude exec Expires fflock fflush ffmpeg file read file write file_get_contents file_get_contents/file_put_contents file_put_contents filter find first_install.sh flock Fly-back dioda font-face fóra fotorezistor fread functions funkce fwrite gate gate drive geolokace gradient-background grep grub grub update hebrejština history hlavičky HS html html 5 https hudba charakterizace chroot ICES IGBT img sizes img srcset impedance implementace imshow inference inrush current install jalový výkon javascript javescript jednocení seznamů js kapacita součástek koeficient zesílení komunikace se serverem konfigurace Krita KSF Last-Modified lazy caching led LEFT JOIN librosa ligatury linux list log manuál masky matplotlib Max-Age measure memory měření MFCC MFCC koeficienty mint míry modules moralizace morphologie MOSFET mount moviepy mysql náběhový proud napěťová ochrana návod nel Network Error Logging NLP not nth-child oblékání ochrana okruhy přátel OpenVINO IR formát optočlen ořezové masky OSHB otázky otázky_jazyky otázky_moralismu_řešení parsování path personifikace photorec php php 4 php 5 php 6 php 7 php 8 phpbb phpBB3 pitch PN přechody pnp pole práva profilování program prune průraz přepěťová ochrana přepolování pseudokódd PWM regulátory pydub python python3 pytorch RBE RDSon read reaktance rectifier regulace vstupního napětí relyability remount replace restore reverzní geolokace RIGHT JOIN rm role rozvržení disků pro OS linux a data databází řešení samba sdílení Sec-Fetch-Dest Sec-Fetch-Mode Sec-Fetch-Site Sec-Fetch-User Secure Shell sed Set Cookie shunt schottka skript sloupce song sort soubory soundfile spínané zdroje spínání split SQL ssh stabilizace napětí stahování stream string strojové učení stropové učení syntax T5 tabulky tepelná ztráta test text-shadow thermal runaway time timestamp tkinter tr transistor transition tranzistor tranzistory tuple tvorba otázek TVS účiník update va charakteristika Vgs video Vth vynechání adresářů vývoj while wrapovací funkce XOR zdánlivý výkon zdroj zenerka zenerovo napětí zip zip archiv zkratky zpomalení zpracování textu Žalmy