Ubuntu 中多文件 .NET 核心应用程序的安装位置

Ubuntu 中多文件 .NET 核心应用程序的安装位置

我有一个已编译的 .NET core 应用程序,计划在三个主要操作系统上运行。当我尝试在 Windows 10 上的 GitBash 中测试我的构建时,一旦我构建了应用程序,我就会获得大量文件以及可执行文件(exe 加上无数的 DLLS)。

在 PATH 内的机器上“安装”此应用程序的最佳做法是什么?我的意思是,如果我将所有文件直接放在/垃圾桶我让 Bash 不仅自动完成我的命令,还自动完成该文件夹中的所有 dll 文件。

当然,如果我将可执行文件放在/垃圾桶单独使用其他文件夹中的 DLL,则应用程序无法运行,因为它找不到 DLL。

对此正确的解决方案是什么?

编辑-有人问我将安装哪个 Linux 版本这个应用程序。嗯,这是一个很普通的问题,但我可能会在 Ubuntu 18.04 中安装它。适用于 Linux 和 Windows 10。当我说通用时,我的意思是如果我用 Go 编写应用程序,我可以直接将可执行文件放在 PATH 中的任何文件夹中,除了遵循某些标准之外,它没有任何区别,因为它是一个可执行文件,而在这种情况下,我有一堆文件,除了处理它们之外,我真的没有其他选择。

答案1

对于非 deb 和非 snap 软件的常用方法是:

  • 将可执行二进制文件和所有支持库和文件放在 /usr/local/application_name/ 中(不在默认的 $PATH 中)
  • 将可执行文件的符号链接放置在 /usr/local/bin 或 /usr/local/sbin 中(位于默认的 $PATH 上)
  • 将运行时创建的数据、数据库、临时文件、共享文件、工作文件、锁定文件等放入 /var/local/application_name/ 或 /run/application_name/。只需确保您的 application_name 不会与其他已安装的应用程序冲突即可。

通常,请将文件远离包管理器经常访问的位置(/bin、/sbin、/usr/bin、/usr/sbin、/usr/shared),以免它们被包管理器意外覆盖。~/.local 和 /usr/local 是安装非 apt/非 snap/非 pip 软件的安全位置。

相关内容