无法在 Kubuntu 20.04 上恢复损坏的编译器

无法在 Kubuntu 20.04 上恢复损坏的编译器

我在 Kubuntu 20.04.2 LTS 下的命令行级别上使用 FreePascalCompiler (FPC) 版本 3.0.4,结果自己把它弄坏了。现在我找不到办法重新安装 FPC。我想这个问题是 Ubuntu 独有的,所以我在这里提出这个问题。

这是我所做的:我想在我的一个小程序中使用一个特殊函数,该函数仅在包含单元 LConvEncoding 时可用。编译器抛出了致命错误消息:未找到单元。在不同论坛上进行长时间搜索后,我得到了两个见解:

  1. 当 FPC 3.0.4 正确安装时,该单元应该存在。
  2. 我应该检查启动 FPC 的符号链接,因为 Ubuntu 路径不同。

which fpc提供以下输出:/usr/bin/fpc。这是一个指向的符号链接/etc/alternatives/fpc,同样也是一个指向的符号链接/usr/bin/x86_64-linux-gnu-fpc-3.0.4。这是一个试图运行的可执行文件/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64ppcx64是我 Mac-64 位系统的实际编译器。

/usr/lib/x86_64-linux-gnu/fpc/3.0.4/units/搜索所需单元的目录也是如此。LConvEncoding不幸的是,单元不存在。这让我认为我的 FPC 安装不完整。因此,我用 卸载了它sudo apt-get purge fpc。然后重新安装它。这实际上什么都没有改变。

现在,为了确保目录/usr/lib/x86_64-linux-gnu/fpc/3.0.4/确实被重写,我手动删除了/usr/lib/x86_64-linux-gnu/fpc。据我所知,这不是一个好主意。以下安装过程没有出现错误消息,但没有重写目录 - 它仍然丢失。所以我不再有现有的 Pascal 编译器。现在每次调用编译器都会产生此错误消息:Error: ppcx64 can't be executed, error message: Failed to execute "ppcx64", error code: 127

我猜想 Ubuntu 20.04 下 FPC 3.0.4 的特定 deb 包包含一个有缺陷的卸载程序,它不会清理所有相关文件。这就是为什么安装程序会中止安装而没有错误消息,因为它遇到了所需程序版本的现有文件,因此假定该工作已经完成。

如果这个假设没有错,那么问题是:为了sudo apt-get install fpc再次完成整个工作,我必须删除哪些文件?

还是我完全误解了这件事?

硬件:Mac Mini(6.2,2012 年推出,配备 4 × Intel Core i5-2415M)[电子邮件保护]

系统:仅限 Kubuntu 20.04.2 LTS。未安装其他操作系统。

答案1

首先,您不应删除或重​​命名任何由 APT 控制的文件(以及update-alternatives结果)。

重新安装FPC封装您已执行以下命令:

sudo apt-get install --reinstall fpc fpc-3.0.4 fp-compiler fp-compiler-3.0.4 fpc-source fpc-source-3.0.4 fp-docs fp-docs-3.0.4 fp-ide fp-ide-3.0.4 fp-units-base fp-units-base-3.0.4 fp-units-db fp-units-db-3.0.4 fp-units-fcl fp-units-fcl-3.0.4 fp-units-fv fp-units-fv-3.0.4 fp-units-gfx fp-units-gfx-3.0.4 fp-units-gtk2 fp-units-gtk2-3.0.4 fp-units-math fp-units-math-3.0.4 fp-units-misc fp-units-misc-3.0.4 fp-units-multimedia fp-units-multimedia-3.0.4 fp-units-net fp-units-net-3.0.4 fp-units-rtl fp-units-rtl-3.0.4 fp-utils fp-utils-3.0.4

对于 32 位版本,请使用以下命令

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install --reinstall fp-units-i386 fp-units-i386-3.0.4

那么所有文件夹结构都将被修复。

相关内容