Wenn ich nämlich versuche den .pas Code zu compilieren, dann findet er die Unit crt nicht.
Diese scheint es aber zu geben:
Code: Alles auswählen
find /usr/ -iname crt.ppu
/usr/lib/x86_64-linux-gnu/fpc/3.2.0/units/x86_64-linux/rtl-console/crt.ppu
Code: Alles auswählen
fppkg listsettings
Code: Alles auswählen
"/usr/local/lib/fpc/3.2.0/"
Und da liegt natürlich gar nichts. Hier ist die Default Konfiguration also Seitens Debian bereits broken.
Also habe ich das in ~/.fppkg/config/default mal auf folgendes angepasst, diese wurde zuvor von fpc oder irgendeinem anderen Free Pascal Programm, das dafür zuständig ist, automatisch angelegt:
Code: Alles auswählen
[Defaults]
ConfigVersion=5
# Alt
# GlobalPrefix=/usr/local/
# Neu
GlobalPrefix=/usr/lib/x86_64-linux-gnu/
LocalPrefix={LocalRepository}
# Alt
# GlobalInstallDir={GlobalPrefix}lib/fpc/{CompilerVersion}/
# Neu
GlobalInstallDir={GlobalPrefix}fpc/{CompilerVersion}/
LocalInstallDir={LocalPrefix}lib/fpc/{CompilerVersion}/
Compiler=/usr/bin/fpc
OS=linux
CPU=x86_64
Version=3.2.0
Code: Alles auswählen
fppkg listsettings
Settings from configuration-files:
Global-section:
RemoteMirrorsURL: https://www.freepascal.org/repository/mirrors.xml
RemoteRepository: auto
LocalRepository: "/home/nutzer/.fppkg/" -> "/home/nutzer/.fppkg/"
BuildDir: "/home/nutzer/.fppkg/build/" -> "/home/nutzer/.fppkg/build/"
ArchivesDir: "/home/nutzer/.fppkg/archives/" -> "/home/nutzer/.fppkg/archives/"
CompilerConfigDir: "/home/nutzer/.fppkg/config/" -> "/home/nutzer/.fppkg/config/"
DefaultCompilerConfig: "default"
FPMakeCompilerConfig: "default"
Downloader: FPC
Commandline-section:
Using compiler configuration file "/home/nutzer/.fppkg/config/default":
Compiler: "/usr/bin/fpc"
Target: x86_64-linux
Version: 3.2.0
GlobalPrefix: "/usr/lib/x86_64-linux-gnu/" -> "/usr/lib/x86_64-linux-gnu/"
LocalPrefix: "{LocalRepository}" -> "/home/nutzer/.fppkg/"
GlobalInstallDir: "{GlobalPrefix}fpc/{CompilerVersion}/" -> "/usr/lib/x86_64-linux-gnu/fpc/3.2.0/"
LocalInstallDir: "{LocalPrefix}lib/fpc/{CompilerVersion}/" -> "/home/nutzer/.fppkg/lib/fpc/3.2.0/"
Options: ""
Using fpmake-building compiler configuration file "/home/nutzer/.fppkg/config/default":
Compiler: "/usr/bin/fpc"
Target: x86_64-linux
Version: 3.2.0
GlobalPrefix: "/usr/lib/x86_64-linux-gnu/" -> "/usr/lib/x86_64-linux-gnu/"
LocalPrefix: "{LocalRepository}" -> "/home/nutzer/.fppkg/"
GlobalInstallDir: "{GlobalPrefix}fpc/{CompilerVersion}/" -> "/usr/lib/x86_64-linux-gnu/fpc/3.2.0/"
LocalInstallDir: "{LocalPrefix}lib/fpc/{CompilerVersion}/" -> "/home/nutzer/.fppkg/lib/fpc/3.2.0/"
Options: ""
Aber
Code: Alles auswählen
fppkg list
Name Installed Available
a52 - 3.2
ami-extra - 3.2
amunits - 3.2
arosunits - 3.2
aspell - 3.2
....usw.
So steht es zumindest hier beschrieben:
https://wiki.freepascal.org/Lazarus_Can ... _by_fcllaz
Und wenn ich das in der Free Pascal IDE fp versuche zu compilieren, meldet er natürlich immer noch den Fehler, dass er die unit nicht finden kann.
Meine letzten Erlebnisse mit Pascal waren mit Turbo Pascal unter DOS, FreePascal probiere ich daher heute zum ersten Mal aus und auf die Schnelle habe ich jetzt für das obige Problem auch keine Lösung mehr gefunden.
Wer kann hier helfen und sagen warum das nicht wie erwartet funktioniert.
Und es ist echt schade, das so etwas schon by default Seitens Debian broken ist. Das darf eigentlich nicht sein.
Man kann zu Recht erwarten, dass für FreePascal durch die Debian Pakete eine funktionierende globale Konfiguration angelegt wird, so dass man mit dem eigentlichen Programmieren gleich loslegen kann, aber das ist hier wohl nicht geschehen.
Und der Default Konfigurationsort /usr/local/ ist für distributionsspezifische Pakete meines Wissens nach eigentlich ohnehin falsch.
Und was mir an der obigen Default Config auch noch negativ aufstößt ist folgende Konfiguration:
Code: Alles auswählen
RemoteRepository: auto
Downloader: FPC
Ich hätte jetzt erwartet, dass so etwas erst einmal nicht erlaubt ist. Das muss ich also auch noch ändern, aber das scheint wohl nicht in
~/.fppkg/config/default eingestellt zu werden.
In /etc/fpc.conf habe ich dazu aber auch nichts gefunden. Interessanterweise stimmen da aber wenigstens die Pfadangaben, nur werden die scheinbar von fp und fpc gekonnt ignoriert.