相当于 C:\Program Files 的 Linux 是什么?

Tho*_*mas 65 suse ubuntu rhel software-installation directory-structure

我知道在Windows以及Linux和Unix中,程序|应用程序|软件可以安装在任何目录中。此外,如果使用发行版的打包系统安装包,它会将文件放置在正确的位置。

但有时,软件安装会提示输入放置文件的路径。如果是 Linux 发行版,此默认位置(C:\Program FilesC:\progra~1等效位置)在哪里?不同的发行版有什么不同吗?如果是,这将用于RHEL,SuseUbuntu?

Axe*_*auf 60

Linux文档项目Linux文件系统层次结构的描述,他们解释不同的文件夹和它们(这部分的历史)的意义。

正如 xenoterracide 已经指出的那样/bin/opt它们是可以与 Windows 上的“程序文件”进行比较的标准目录。

/bin包含几个有用的命令,对系统管理员和非特权用户都有用。它通常包含像贝壳bashcsh等....和常用的命令一样cpmvrmcatls

(引自 TLDP )

/opt保留用于不属于默认安装的所有软件和附加包。例如,StarSuite、Kylix、Netscape Communicator 和 WordPerfect 软件包通常可以在这里找到。

(引自 TLDP )

  • /opt 不是仅用于存储库中未包含的包吗?inkscape、gimp、rhythmbox 等的应用程序文件夹位于 /usr/share。那不是等价的吗? (9认同)
  • 有关文件系统层次结构 (FHS) 的最新信息,请参阅 http://www.linuxfoundation.org/en/FHS。*(注意:该网站目前已关闭,但应尽快恢复)。* (5认同)
  • 这是不正确的。/bin 只包含可执行程序。Windows Program Files 目录包含每个已安装应用程序的子目录,其中包含所有可执行文件、dll、数据文件以及应用程序所需/随附的所有其他内容。 (3认同)

and*_*coz 45

没有直接的等价物。目录结构非常不同。在 Windows 下,每个安装的包/软件都有一个单独的目录,其中包含与(例如C:\Program Files\MyProgram)相关的所有文件。在 Linux 下,根据文件类型和其他一些规则,每个软件都“分散”在许多目录中。

例如,我们可以检查与xscreensaver程序相关的不同文件的安装位置:

/etc/pam.d/xscreensaver
/etc/xscreensaver
/etc/xscreensaver/README
/usr/bin/xscreensaver
/usr/bin/xscreensaver-command
/usr/bin/xscreensaver-demo
/usr/bin/xscreensaver-gl-helper
/usr/share/X11/app-defaults/XScreenSaver
/usr/share/applications/xscreensaver-properties.desktop
/usr/share/doc/packages/xscreensaver
/usr/share/doc/packages/xscreensaver/README
/usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/da/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/de/LC_MESSAGES/xscreensaver.mo
[ ... ]
/usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo
/usr/share/man/man1/xscreensaver-command.1.gz
/usr/share/man/man1/xscreensaver-demo.1.gz
/usr/share/man/man1/xscreensaver.1.gz
/usr/share/man/man6/xscreensaver-gl-helper.6x.gz
/usr/share/pixmaps/xscreensaver.xpm
/usr/share/xscreensaver
/usr/share/xscreensaver/glade
/usr/share/xscreensaver/glade/screensaver-cmndln.png
/usr/share/xscreensaver/glade/screensaver-colorselector.png
[ ... ]
Run Code Online (Sandbox Code Playgroud)

不用担心,通常当安装人员询问安装位置时,正确答案是以下之一:/, /opt, /usr,/usr/local

如您所见,几乎所有 (1) 文件xscreensaver/usr根据一些简单规则安装:可执行文件在/usr/bin,手册页在/usr/share/man,文档在/usr/share/doc/packages/PROGRAMNAME等等。

当安装程序要求安装时prefix通常它现在想要安装程序的基本路径。在我的xscreensaver例子中,它是/usr.

作为一个简单的规则:/应该只包含启动系统所需的程序(as C:\windows\system32),/usr/local应该包含仅在该唯一计算机上需要的程序,/opt(2)所有具有非标准目录结构的可选程序和/usr所有标准软件.

在任何情况下,它存在一个标准定义详细所有这些规则:文件系统层次标准

(1) 系统范围的配置文件必须驻留在 /etc

(2) 在 Linux 下相当过时

  • 只是解释一下,`/usr/share` 之所以称为“共享”,是因为它在不同的体系结构(文档、脚本、图像)之间共享,而 `/usr/lib*` 用于与体系结构相关的文件(而不是可执行文件,到`/usr/bin`)。 (8认同)

xen*_*ide 12

通常,/bin, /usr/bin, /usr/local/bin, 或/opt/bin。我认为/usr/bin并且/opt/bin最接近 Program Files,因为它们通常用于由系统管理员安装的非系统关键二进制文件,尽管与 Windows 不同,这两个文件都包含使用包管理器安装的程序。/usr/local/bin非发行版打包软件在哪里。/bin适用于系统关键二进制文件,如/bin/sh.


vas*_*-vm 8

看看man hier它是“文件系统层次结构的描述”。


Jan*_*Jan 5

正如其他人指出的那样,通过包管理器安装的程序分散在多个目录中。虽然二进制文件通常位于/usr/bin中,但系统范围的配置文件位于 中/etc,依此类推。

如果应用程序不是通过包管理器安装的,则文件应安装在不会干扰包管理器的位置。这个地方是/usr/local

如果要求您提供安装路径,最常见的选择是/usr/local/appname