Linux目录
我正在为我的程序编写安装脚本,该程序应该运行在Linux/Unix操作系统上。以下文件的默认目录是什么:Linux目录,linux,unix,installation,packaging,directory,Linux,Unix,Installation,Packaging,Directory,我正在为我的程序编写安装脚本,该程序应该运行在Linux/Unix操作系统上。以下文件的默认目录是什么: 可执行文件(程序)。程序应该通过在命令行中键入其名称来执行 共享库 第三方共享库(该程序不是开源的,所以我需要重新分发第三方库) 所有用户的只读程序配置文件 可供所有用户进行读/写访问的配置数据 可执行文件(二进制): /垃圾箱/ /usr/bin/ /home/~用户/bin/ 共享: /usr/股份/ 其他: /等/ 如果您不知道*nix操作系统的文件结构,我不确定编写安装脚
- /垃圾箱/
- /usr/bin/
- /home/~用户/bin/
- /usr/股份/
- /等/
^.^列表因Linux文件系统而异 1)
/bin
,/usr/bin
,/usr/local/bin
2/3)/lib
,/usr/lib
,/usr/local/lib
三,<代码>/usr/share/lib
4) /etc
是配置数据的只读点
5) /usr/local/etc
或通常位于dot目录名下的/home
目录中,如果配置文件允许bin目录位于/home/user\u id/bin
下,其中“user\u id”是相关的登录id。。例如,用户“jdoe”的配置可以写入/home/jdoe/.configs
或~/.configs
不要依赖于此,在大多数情况下,LSB文件系统要求至少有:
/bin
,/etc
,/usr
,/lib
,/home
例如,/usr
可以位于不同的分区上,对于/home
编辑:感谢dtrosset指出了我的blooper….查看。最简单的方法是为你的应用程序制作一个
.rpm
,然后使用例如alien
来制作一个deb
。上次我做了一个deb,非常非常简单。如果您想启用它,打包还允许您进行某种自动更新,并且您无需考虑太多卸载过程
$PREFIX/bin
$PREFIX/lib
$PREFIX/lib
/etc
$HOME/.config
$HOME
是运行应用程序的用户的主目录,在运行时确定<代码>$PREFIX取决于分发方法:
- 如果作为源代码分发,
应该是可配置的,但默认为$PREFIX
李>/usr/local
- 如果作为二进制tarball分发,
通常应该是$PREFIX
(但/usr/local
也很常见)李>/opt
- 如果作为分发包(如RPM或DPKG)分发,
应为$PREFIX
/usr
文档和其他独立于体系结构的文件应放入
$PREFIX/share/doc
;实例之间共享的程序生成的文件应该放在/var/run
(如锁文件、pidfiles和套接字)或/var/lib
(如共享二进制数据库)中。有用:,@Migrators:这似乎不适合超级用户,因为它是关于如何编写安装程序的。不/usr/share适用于可由多个体系结构(i686、amd64、ppc、armel…)共享的文件,如图像或文档。它不适用于共享库,应该是2)。/etc在我的Ubuntu计算机上是只读的,所有用户都可以读/写哪个目录,像文档和设置\ Win XP中的所有用户?@Alex:另一个点可以是/usr/local/etc@Alex:一般来说,如果一个用户可以任意影响另一个用户的程序运行方式,这被认为是一个坏主意(特殊情况下,如游戏中的高分表通常使用setgid可执行文件处理)。如果确实需要,您可以(在安装时)为您的应用程序创建一个/etc/
目录,以及一个/etc//all users
目录或配置文件,该目录或配置文件是世界可写的。不过这似乎仍然是个坏主意(在XP上,“所有用户”文件夹默认只能由管理员和超级用户写入)。不/usr/share适用于可由多个体系结构(i686、amd64、ppc、armel…)共享的文件,如图像或文档。对于共享库,不应使用2)。+1作为链接,但您应该提到,用户程序不得全面进入/binApologies,早上的第一个答案-请原谅我:'(-为+1干杯!Neurofluxation,感谢您提供有用的链接。/etc在我的Ubuntu计算机上是只读的,那么所有用户的读/写访问权限呢?对。关于OPs评论,如果您没有root权限,请在$HOME中安装并更新各种路径变量以反映这一点。