Linux Mint & Lazarus V4.4 [gelöst]

Für Installationen unter Linux-Systemen
DonAlfredo
Beiträge: 90
Registriert: Do 28. Sep 2017, 10:26

Re: Linux Mint & Lazarus V4.4

Beitrag von DonAlfredo »

You need some extra libs to install. Use this script:
https://github.com/LongDirtyAnimAlf/fpc ... /debian.sh

MmVisual
Beiträge: 1637
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Linux Mint & Lazarus V4.4

Beitrag von MmVisual »

Nun habe ich in dem zuvor neu installierten Mint 22.3 die FpcUpDeluxe Variante aus dem ZIP versucht:
Bild1.png
Bild1.png (84.72 KiB) 556 mal betrachtet
Diese EXE startet leider ebenfalls nicht.
EleLa - Elektronik Lagerverwaltung - www.elela.de

MmVisual
Beiträge: 1637
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Linux Mint & Lazarus V4.4

Beitrag von MmVisual »

Die Module aus dem Debian Script sind nicht mehr alle aktuell:
Bild1.png
Bild1.png (157.82 KiB) 554 mal betrachtet
Wenn ich diese 3 Pakete nicht installiere, die anderen Befehle laufen durch.

FPCUpDeluxe qt6, startet nun auch. ... und ist DONE.
Zuletzt geändert von MmVisual am So 18. Jan 2026, 17:11, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
theo
Beiträge: 11133
Registriert: Mo 11. Sep 2006, 19:01

Re: Linux Mint & Lazarus V4.4

Beitrag von theo »

MmVisual hat geschrieben: So 18. Jan 2026, 16:43 Dann habe ich mit fpcupdeluxe-x86_64-linux versucht Lazarus zu installieren:
Sage ich ja.
Du musst immer irgendwas nachinstallieren. Ob GTK2 oder Qtx.
Für GTK2 sind die Abhängigkeiten z.B. hier angegeben:
https://wiki.freepascal.org/fpcupdeluxe/de
Siehe: "Die fehlenden Pakete kann man folgendermassen nachinstallieren: "

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 305
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 4.3, FPC3.2.3
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: Linux Mint & Lazarus V4.4

Beitrag von h-elsner »

Zurück zum 1. Beitrag:
Ich habe gerade Lazarus 4.4 mit FPCupdeluxe installiert und kann den Fehler nicht nachstellen. Alles läuft wie gewohnt ohne Probleme.

Lazarus 4.4 (rev lazarus_4_4)
FPC 3.2.2
x86_64-linux-gtk2

Linux Mint 22.3
Mate 1.26.2

MmVisual
Beiträge: 1637
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Linux Mint & Lazarus V4.4

Beitrag von MmVisual »

Die QT6 Variante von Lazarus läuft. Allerdings muss jetzt noch extra die Datei "libQt6Pas.so.6" im gleichen Verzeichnis wie die EXE sein, sonst startet diese nicht.
Lazarus funktioniert nun auf den ersten Blick besser. Früher war es immer so dass man in den Optionen die Sprache nicht auf Deutsch stellen konnte, das geht nun auch. :)

Edit: Der THtmlFrameviewer zeigt nun die HTML Seiten nicht mehr an. QT6 ist auch noch nicht das richtige für mich.

Ich schaue mal ob ich jetzt, mit diesen ganzen vielen "agt-get install ..." das Lazarus ohne das QT6 zum laufen bekomme.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 305
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 4.3, FPC3.2.3
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: Linux Mint & Lazarus V4.4

Beitrag von h-elsner »

Auch Umstellung der Sprache geht. Selbst Russisch mit den komischen Buchstaben macht keine Probleme.

MmVisual
Beiträge: 1637
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Linux Mint & Lazarus V4.4

Beitrag von MmVisual »

In der "Normalen" Linux Version geht nun ebenfalls alles wieder richtig, auch die HTML Komponente.
Ich vermute mal dass diverse Pakete irgendwie defekt waren oder nicht vorhanden. Jetzt ist alles richtg.

Vielen Dank für die Unterstützung :D
Bild1.png
Bild1.png (367.28 KiB) 528 mal betrachtet
Ein Programm, das die eigene WAN IP Adresse loggt und an diverse Dienste senden kann. Damit weis ich meine TCP/IP Adresse von zu Hause, wenn ich unterwegs bin und der DNS Dienst mal defekt sein sollte. Als Backup Strategie. Und die Doku ist in der EXE mit drin, daher die TFrameViewer Komponente.
EleLa - Elektronik Lagerverwaltung - www.elela.de

MmVisual
Beiträge: 1637
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Linux Mint & Lazarus V4.4

Beitrag von MmVisual »

Hier nochmals die Zusammenfassung was ich nach der Neuinstallation von Mint so alles dazu installiert habe:

Code: Alles auswählen

Linux Mint 22.3 Cinnamon

sudo apt-get update
sudo apt-get upgrade

Installierte Programme:
- git
- Geany
- MC
- Krusader
- mariadb-client
- SQLite
- KChmViewer
- Filezilla
- samba
- kdiff3
- krename


Dies wird für Lazarus benötigt:

#!/bin/bash
# Paketliste auf neusten Stand bringen und Updaten
sudo apt-get update
sudo apt-get upgrade

# Die fehlenden Pakete installieren.
sudo apt-get install libx11-dev
sudo apt-get install libgdk-pixbuf2.0-dev
sudo apt-get install libpango1.0-dev 
sudo apt-get install libgtk2.0-dev 

# wenn gdb nicht installiert ist (zB. Lubuntu)
sudo apt-get install gdb

# Für SVN
sudo apt-get install subversion

# Für GIT
sudo apt-get install git

# Wenn OpenGL ( TOpenGLControl ) verwendet wird.
sudo apt-get install freeglut3-dev

# Beim RasPi noch das extra:
sudo apt-get install libgl-dev



Für Lazarus in qt6 wird extra das benötigt, 3 Pakete gehen vermutlich nicht mehr, die dann aus der Liste entfernen:

sudo apt-get install -y xterm git subversion unzip wget make gcc build-essential binutils gdb libc6-dev libc-bin texinfo libglib2.0-dev libgtk2.0-0-dev libgtk2.0-dev gtk2-engines-pixbuf libcairo2-dev libXxf86vm-dev libxtst-dev libx11-dev libglvnd-dev appmenu-gtk2-module libcanberra-gtk-module libxft2 libfontconfig1 libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev libgl-dev freeglut3-dev qt5-qmake qtbase5-dev qtbase5-dev-tools qtdeclarative5-dev libqt5x11extras5-dev libqt5pas-dev qt6-base-dev qt6-base-dev-tools libqt6pas-dev
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 659
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: Linux Mint & Lazarus V4.4 [gelöst]

Beitrag von Niesi »

Sorry, dass ich erst jetzt was dazu schreibe - musste das erst mal testen.

Bei funktioniert nach dem Update von Linux Mint auf 22.3 alles ganz normal weiter, überhaupt keine Veränderung. Update war letzte Woche.

Lazarus / FreePascal mit FpcUpDeLuxe installiert, Version 4.5 (ich installiere immer die "fixes"). Und bei mir ist's gtk2 - da macht nix schlapp ... :lol:
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

alfware17
Beiträge: 250
Registriert: Di 14. Dez 2010, 23:27

Re: Linux Mint & Lazarus V4.4 [gelöst]

Beitrag von alfware17 »

@MmVisual: bist du sicher, daß Mint 22.3 nur mit Virtualbox 7.2.4 geht? Weil ich habe bis Mint 22.2 alles in Virtualbox 6.1.x durchbekommen und verspüre da auch wenig Lust nur wegen einem marginalen Mint-Update hoch zu gehen?

Zum Mint 22.3 / Lazarus 4.4 kann ich nichts beitragen, da ich noch keine Zeit für super-aktuelles Zeug hatte. Ich habe aber vor Weihnachten ziemlich intensiv von Mint 20 bis 22.2 und Lazarus bis 4.0 alles getestet, wenn auch unter einer anderen Aufgabenstellung: Ich wollte endlich mein leidiges 32bit "Problem" lösen, sprich daß ich zum Compilieren und Testen immer auf die nativen 32bit Linuxe angewiesen war und die ja fast ausgestorben sind.
Nun habe ich es aber geschafft, die 32bit Architektur und die mir wichtigen Tools für Lazarus, Java und Python, QT und GTK usw alle zu installieren und damit habe ich ein 32/64 kombiniertes Mint. Hier mein Script, es enthält alles für 64bit (für dich zum Vergleich) und auch 32bit.

Code: Alles auswählen

#!/usr/bin/env bash
set -euo pipefail
# set -x

# setup.sh - Modulares, sicheres Installationsskript
# Aufruf: ./setup.sh 64bit | 32bit | java | lazarus | dirs | all
#
# Eigenschaften:
# - Simuliert Installationen zuerst, um Paketentfernungen zu erkennen.
# - Führt sichere automatische Installs ohne Nachfrage aus, wenn keine Entfernung nötig ist.
# - Fragt gezielt, wenn eine Aktion Paketentfernungen oder andere Auffälligkeiten verursacht.
# - Keine automatischen Paket-Entfernungen ohne explizite Bestätigung.
# - DEB-Dateien im aktuellen Verzeichnis werden mit dpkg -i installiert.
# - fpc32/64 werden nur kopiert, wenn vorhanden.
#
# sudo USER **** PWD ****
###############################################################################
# Farben
###############################################################################
RED="\e[31m"
GREEN="\e[32m"
YELLOW="\e[33m"
BLUE="\e[34m"
BOLD="\e[1m"
RESET="\e[0m"

ok()   { echo -e "${GREEN}[OK]${RESET} $*"; }
info() { echo -e "${BLUE}[..]${RESET} $*"; }
warn() { echo -e "${YELLOW}[!!]${RESET} $*"; }
err()  { echo -e "${RED}[ERR]${RESET} $*" >&2; }

###############################################################################
# Konfiguration: Pfade & DEBs 
###############################################################################
USER_HOME="$HOME"

ECLIPSE="${USER_HOME}/eclipse"
ECLIPSE_OXYGEN32="${USER_HOME}/eclipse/oxygen32"
ECLIPSE_2024="${USER_HOME}/eclipse/2024"

JAVA_DIR="${USER_HOME}/eclipse/workspace"
PYTHON_DIR="${USER_HOME}/python"
LAZARUS_DIR="${USER_HOME}/lazarus"
TEST_DIR="${USER_HOME}/bernd-test-oxygen"

# DEB-Dateien (müssen im aktuellen Verzeichnis liegen)
DEB_VSCODE="code_1.106.3-1764110892_amd64.deb"
DEB_JAVA_8_X32="openlogic-openjdk-8u412-b08-linux-x32-deb.deb"
DEB_JAVA_8_X64="bellsoft-jdk8u472+11-linux-amd64.deb"
DEB_JAVA_11_X64="bellsoft-jdk11.0.29+12-linux-amd64.deb"
DEB_JAVA_17_X64="bellsoft-jdk17.0.17+15-linux-amd64.deb"
DEB_JAVA_21_X64="bellsoft-jdk21.0.9+15-linux-amd64.deb"
DEB_JAVA_25_X64="bellsoft-jdk25.0.1+13-linux-amd64.deb"

# Binaries in current directory (fpc32 / fpc64)
BIN_FPC32="fpc32"
BIN_FPC64="fpc64"

###############################################################################
# check_broken(): Einheitliche Behandlung von "apt --fix-broken install"
###############################################################################
check_broken() {
  info "Prüfe auf kaputte Paketabhängigkeiten…"

  simfix=$(sudo apt-get -s --fix-broken install 2>&1 || true)

  if echo "$simfix" | grep -Eiq "Remv|Remove:|will be REMOVED|Conflicts"; then
    warn "Fix-Broken würde Pakete entfernen oder Konflikte lösen!"
    echo "-----------------------------------"
    echo "$simfix" | sed -n '1,25p'
    echo "-----------------------------------"
    read -r -p "Jetzt 'sudo apt --fix-broken install' ausführen? [j/N] " ans
    if [[ "${ans,,}" =~ ^j|y ]]; then
      sudo apt --fix-broken install
      ok "Fix-broken ausgeführt."
    else
      warn "Fix-broken übersprungen. System evtl. inkonsistent."
      return 1
    fi
  else
    info "Fix-broken unkritisch — führe automatisch aus."
    sudo apt --fix-broken install -y
  fi

  return 0
}

###############################################################################
# Utility: sichere Installation mit Simulation
# - Wenn Simulation ("apt-get -s install") Entfernen anzeigt -> WARN + Prompt
# - Falls keine Entfernung nötig -> automatisches -y für Komfort
# - Bei bestätigter Risk-Option wird normale apt install ohne -y ausgeführt
###############################################################################
safe_install() {
  packages=("$@")
  if [ "${#packages[@]}" -eq 0 ]; then
    return 0
  fi

  pkglist="${packages[*]}"
  info "Simuliere Installation: ${pkglist}"
  simout=$(sudo apt-get -s install "${packages[@]}" 2>&1 || true)

  # Prüfen auf Anzeichen, dass Pakete entfernt würden
  # apt-get -s zeigt "Remv" oder "Remove" lines for remove actions
  if echo "$simout" | grep -Eiq "Remv|Remove:|Conflicts|will be REMOVED"; then
    warn "Simulation zeigt mögliche Paket-Entfernungen oder Konflikte."
    echo
    echo "Simulation-Auszug (erste 25 Zeilen):"
    echo "-----------------------------------"
    echo "$simout" | sed -n '1,25p'
    echo "-----------------------------------"
    read -r -p "Fortfahren und Installation (ohne automatisches -y) durchführen? [j/N] " ans
    if [[ "${ans,,}" =~ ^j|y ]]; then
      info "Führe apt install (mit manueller Bestätigung, ohne -y) aus."
      sudo apt install "${packages[@]}"
    else
      err "Installation abgebrochen vom Benutzer."
      return 1
    fi
  else
    info "Keine Paket-Entfernungen erkannt — führe Installation automatisch (mit -y) aus."
    sudo apt install -y "${packages[@]}"
  fi

  # prüft ob Installationen "broken" sind
  check_broken
}

# Prüft ob Paketlisten aktuell sind, und führt apt update falls nötig
ensure_updated() {
  # immer updaten zu Beginn eines Moduls
  info "Aktualisiere Paketquellen (sudo apt update)..."
  sudo apt update
  ok "Paketquellen aktualisiert."
}

###############################################################################
# DEB-Installer mit Fix-Broken-Simulation
###############################################################################
install_deb_file() {
  debfile="$1"
  if [ ! -f "$debfile" ]; then
    warn "DEB-Datei nicht gefunden: $debfile (übersprungen)"
    return 0
  fi
  info "Installiere DEB: $debfile"
  sudo dpkg -i "./${debfile}" || true

  # prüft ob Installationen "broken" sind
  # check_broken
}

###############################################################################
# Module: Directories
###############################################################################
setup_dirs() {
  info "Erstelle Projekt- und Eclipse-Verzeichnisse..."
  for d in "$ECLIPSE" "$ECLIPSE_OXYGEN32" "$ECLIPSE_2024" "$JAVA_DIR" "$PYTHON_DIR" "$LAZARUS_DIR" "$TEST_DIR"; do
    if [ -d "$d" ]; then
      info "Existiert bereits: $d"
    else
      mkdir -p "$d"
      ok "Erstellt: $d"
    fi
  done

  echo
  info "Hinweis: ZIP-Dateien für Eclipse (Oxygen/2024), Java/Python/Lazarus bitte in die obigen Ordner entpacken."
  info "Empfohlene Orte:"
  echo "  - Oxygen 64-bit: $ECLIPSE"
  echo "  - Oxygen 32-bit: $ECLIPSE_OXYGEN32"
  echo "  - Eclipse 2024:  $ECLIPSE_2024"
  echo "  - Java-Projekte: $JAVA_DIR"
  echo "  - Python-Projekte:$PYTHON_DIR"
  echo "  - Lazarus-Sources:$LAZARUS_DIR"
  echo "  - Test:           $TEST_DIR"
}

###############################################################################
# Module: Java (alle deine DEBs)
###############################################################################
ensure_fonts() {
  info "Installiere vollständige DejaVu-Fonts..."
  sudo apt update
  sudo apt install -y fonts-dejavu fonts-dejavu-core fonts-dejavu-extra
}

setup_java() {
  ensure_fonts
  ensure_updated

  info "Installiere Java-DEBs (falls vorhanden)..."

  # --- DEBs installieren ---
  for deb in "$DEB_JAVA_8_X64" "$DEB_JAVA_11_X64" "$DEB_JAVA_17_X64" "$DEB_JAVA_21_X64" "$DEB_JAVA_25_X64"; do
    install_deb_file "$deb"
  done

  # EINMAL Reparatur versuchen
  check_broken || warn "System evtl. inkonsistent – fahre trotzdem fort."

  echo
  info "Registriere Java-Versionen bei update-alternatives..."

  # Java-Version → Priorität
  declare -A JAVA_PRIO=(
    [8]=30000000
    [11]=11000000
    [17]=17000000
    [21]=21000000
    [25]=25000000
  )

  # nullglob verhindert Probleme, wenn nichts matched
  shopt -s nullglob

  for ver in 8 11 17 21 25; do
    jdir=""
    # for d in /usr/lib/jvm/*{jdk,java}*"$ver"*; do
    for d in /usr/lib/jvm/*java*"$ver"*; do
      if [ -d "$d/bin" ] && [ -x "$d/bin/java" ]; then
        jdir="$d"
        break
      fi
    done

    if [ -z "$jdir" ]; then
      warn "Kein gültiges JVM-Verzeichnis für Java $ver gefunden – übersprungen."
      continue
    fi

    prio="${JAVA_PRIO[$ver]}"
    info "-> Java $ver: $jdir (Priorität $prio)"

    sudo update-alternatives --install /usr/bin/java java "$jdir/bin/java" "$prio"

    if [ -x "$jdir/bin/javac" ]; then
      sudo update-alternatives --install /usr/bin/javac javac "$jdir/bin/javac" "$prio"
    else
      warn "javac fehlt in $jdir – nur java registriert."
    fi
  done

  shopt -u nullglob

  echo
  ok "Java-Setup abgeschlossen."
  echo "Standard prüfen mit:"
  echo "  java -version"
  echo "  sudo update-alternatives --config java"
}

###############################################################################
# Module: 64-bit Setup
###############################################################################
setup_64bit() {
  ensure_updated

  info "Installiere Basis-Tools (64-bit)."
  safe_install git krusader kate kdiff3 libgtk2.0-dev sqlite3 libsqlite3-dev fpc

  # VS Code DEB
  install_deb_file "$DEB_VSCODE"

  # Java (64-bit) - falls DEBs bereits installiert via setup_java, wird nichts passieren
  info "Installiere Java-DEBs (64-bit), wenn vorhanden."
  setup_java

  # Hinweis für Eclipse / ZIPs
  info "Eclipse-ZIPs werden nicht automatisch entpackt. Lege Oxygen/2024 in die vorgesehenen Ordner."
  ok "64-bit Basispaket-Installation abgeschlossen."
}

###############################################################################
# Module: 32-bit Setup
###############################################################################
setup_32bit() {
  ensure_updated

  info "Aktiviere i386 Architektur (falls noch nicht aktiv)."
  if dpkg --print-foreign-architectures | grep -q "i386"; then
    info "i386 Architektur ist bereits aktiviert."
  else
    sudo dpkg --add-architecture i386
    info "i386 Architektur hinzugefügt. Paketquellen werden jetzt aktualisiert."
    sudo apt update
  fi

  info "Installiere 32-bit Laufzeit-Bibliotheken."
  # Liste hier in Gruppen, safe_install akzeptiert mehrere Pakete
  safe_install libc6:i386 libstdc++6:i386 libc6-dev-i386 gcc-multilib
  safe_install libsqlite3-0:i386 libsqlite3-dev:i386
  safe_install libgtk2.0-0:i386 libglib2.0-0:i386 libgobject-2.0-0:i386
  safe_install libqt5gui5:i386 libqt5widgets5:i386 libqt5core5a:i386
  safe_install libgl1:i386 libgl1-mesa-dri:i386 libglx-mesa0:i386
  safe_install libx11-6:i386 libxext6:i386 libxrender1:i386 libxi6:i386 libxrandr2:i386 libxcursor1:i386 libxinerama1:i386 libxfixes3:i386
  safe_install libatk1.0-0:i386 libatk-bridge2.0-0:i386 at-spi2-core:i386 libatspi2.0-0:i386
  safe_install libxcb1:i386 libxcb-xinerama0:i386 libxcb-icccm4:i386 libxcb-image0:i386 libxcb-keysyms1:i386 libxcb-randr0:i386 libxcb-render-util0:i386 libxcb-shape0:i386 libxcb-sync1:i386 libxcb-xfixes0:i386 libxkbcommon-x11-0:i386
  safe_install gtk2-engines:i386 gtk2-engines-pixbuf:i386 adwaita-icon-theme:i386

  # Installiere 32-bit Java 8 DEB
  if [ -f "$DEB_JAVA_8_X32" ]; then
    install_deb_file "$DEB_JAVA_8_X32"
    check_broken
    j32dir=$(ls -d /usr/lib/jvm/*-openjdk-8* 2>/dev/null | grep i386 | head -n1)
    [ -n "$j32dir" ] && {
      sudo update-alternatives --install /usr/bin/java java "$j32dir/bin/java" 5000000
      sudo update-alternatives --install /usr/bin/javac javac "$j32dir/bin/javac" 5000000
      ok "32-bit Java 8 installiert (Priorität 800, 64-bit Standard bleibt)."
    }
  else
    warn "32-bit Java 8 DEB nicht gefunden (übersprungen)."
  fi

  # FPC32 / FPC64 kopieren
  [ -f "./$BIN_FPC32" ] && sudo cp -v "./$BIN_FPC32" /usr/local/bin/fpc32 && sudo chmod 755 /usr/local/bin/fpc32 && ok "fpc32 installiert." || warn "fpc32 nicht gefunden."
  [ -f "./$BIN_FPC64" ] && sudo cp -v "./$BIN_FPC64" /usr/local/bin/fpc64 && sudo chmod 755 /usr/local/bin/fpc64 && ok "fpc64 installiert." || warn "fpc64 nicht gefunden."

  ok "32-bit Support abgeschlossen."
}

###############################################################################
# Module: Lazarus / FPC - fpcupdeluxe Hinweis
###############################################################################
setup_lazarus() {
  ensure_updated

  info "Installiere fpc (Free Pascal Compiler) - falls noch nicht vorhanden."
  safe_install fpc

  info "Wichtiger Hinweis zum fpcupdeluxe-Workflow:"
  echo
  echo "  * Falls du fpcupdeluxe benutzt, wechsle vorher in das Verzeichnis, in dem die"
  echo "    fpcupdeluxe-Binärdatei liegt (z.B. /home/fpcdeluxe) und starte es manuell."
  echo
  echo "  Beispiel:"
  echo "    cd /home/fpcdeluxe"
  echo "    ./fpcupdeluxe"
  echo
  echo "  Das Script startet fpcupdeluxe NICHT automatisch, weil du manuell das Zielverzeichnis"
  echo "  und Optionen wählen möchtest."
  echo

  ok "Lazarus-Teil abgeschlossen (fpc installiert; fpcupdeluxe manuell ausführen)."
}

############ NEU: grub-customizer ################
setup_grub() {
  sudo add-apt-repository ppa:danielrichter2007/grub-customizer
  ensure_updated
  safe_install grub-customizer
  info "Starte grub-customizer..."
  sudo grub-customizer || warn "Konnte grub-customizer nicht starten."
  ok "GRUB-Konfiguration abgeschlossen."
}

############ NEU: VirtualBox (vboxsf + Additions) ################
setup_vbox() {
  info "Füge Benutzer ${USER} zur Gruppe vboxsf hinzu..."
  sudo usermod -aG vboxsf "$USER"
  ok "Benutzer wurde zu vboxsf hinzugefügt (Neustart nötig)."

  info "Suche VBox Guest Additions ISO..."
  GA_ISO=$(ls /usr/share/virtualbox/VBoxGuestAdditions.iso 2>/dev/null || true)

  if [ -f "$GA_ISO" ]; then
    info "Installiere Guest Additions von: $GA_ISO"
    sudo mkdir -p /mnt/vbox
    sudo mount "$GA_ISO" /mnt/vbox || true
    sudo /mnt/vbox/VBoxLinuxAdditions.run || warn "GuestAdditions-Installer meldete Warnungen."
    sudo umount /mnt/vbox
    ok "Guest Additions installiert."
  else
    warn "Keine VBoxGuestAdditions.iso gefunden. Bitte ISO manuell einlegen."
  fi
}

###############################################################################
# Hauptsteuerung
###############################################################################
usage() {
  cat <<EOF
Usage: $0 <modul>
Module:
  64bit    - Installiert 64-bit Basis-Tools, VSCode DEB, Java (64-bit via setup_java)
  32bit    - Aktiviert i386 und installiert 32-bit libs und Java8 (32-bit)
  java     - Installiert alle angegebenen 64-bit Java-DEBs (8/11/17/21/25)
  lazarus  - Installiert fpc und gibt Hinweise zu fpcupdeluxe
  dirs     - Erstellt Eclipse/Projekt/Test-Verzeichnisse
  grub     - Erstell Grub-Customizer
  vbox     - Führt die Gasterweiterungen aus und gewährt bernd Zugriff auf vboxsf
  all      - Führt dirs, 64bit, 32bit, lazarus aus
EOF
}

if [ $# -lt 1 ]; then
  usage
  exit 1
fi

cmd="$1"

case "$cmd" in
  64bit)
    setup_dirs
    setup_64bit
    ;;
  32bit)
    setup_32bit
    ;;
  java)
    setup_java
    ;;
  lazarus)
    setup_lazarus
    ;;
  dirs)
    setup_dirs
    ;;
  grub)    
    setup_grub 
    ;;
  vbox)    
    setup_vbox 
    ;;
  all)
    setup_dirs
    setup_64bit
    setup_32bit
    setup_lazarus
    setup_grub
    setup_vbox 
    ;;
  *)
    usage
    exit 1
    ;;
esac

ok "Scriptende. Wenn Fehler auftraten, sieh dir die Ausgaben oben an."
Vielleicht kannst du mal mit deiner Liste vergleichen. Das Script lief bis Mint 22.2 - ich sehe auf Anhieb erstmal nicht warum bei 22.3 nicht, aber okay man erlebt immer wieder Überraschungen. Und ach ja, LMDE 6/7 habe ich auch getestet, war insgesamt etwas spröder und und irgendwas habe ich auch auskommentiert, erinnere mich aber nicht mehr was. DIe DEB etc könnte ich dir bei Interesse in eine Cloud stellen, das Script läßt sich mehrfach starten solange bis alle ok ist. Dann noch fpcupdeluxe starten und voila...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7090
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Linux Mint & Lazarus V4.4 [gelöst]

Beitrag von af0815 »

Beim Update von Mint wird auch der Kernel gewechselt und in den Beschreibungen dazu finden sich die inkompatibilitäten mit VB und auch die Abhilfe dazu. Das ist eher ein Kernelproblem und nicht ein Problem von Mint direkt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 659
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: Linux Mint & Lazarus V4.4 [gelöst]

Beitrag von Niesi »

Ja, stimmt - und ich kann nach dem Update keinerlei Abweichung feststellen. Ist alles wie gehabt ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

DonAlfredo
Beiträge: 90
Registriert: Do 28. Sep 2017, 10:26

Re: Linux Mint & Lazarus V4.4 [gelöst]

Beitrag von DonAlfredo »

For scripting, you might use fpc[laz]up itself.
https://github.com/LongDirtyAnimAlf/Rei ... p/releases

This is the commandline version of fpcupdeluxe. And this version accepts all kinds of parameters, including install directory.

E.g. : install FPC and Lazarus.
./fpclazup --fpcURL="trunk" --lazURL="trunk" --installdir=$HOME/mytrunklazarus --noconfirm

E.g. : install FPC cross-compiler for aarch64 .
./fpcup --installdir=$HOME/mytrunklazarus --ostarget=linux --cputarget=aarch64 --only="FPCCleanOnly,FPCBuildOnly" --autotools --noconfirm --verbose

Antworten