我刚刚从 apache repo 下载了 mesos。这是 bin 目录:
$ ll bin
total 92
-rw-r--r--. 1 stack stack 1769 Jul 17 23:14 valgrind-mesos-tests.sh.in
-rw-r--r--. 1 stack stack 1769 Jul 17 23:14 valgrind-mesos-slave.sh.in
-rw-r--r--. 1 stack stack 1772 Jul 17 23:14 valgrind-mesos-master.sh.in
-rw-r--r--. 1 stack stack 1769 Jul 17 23:14 valgrind-mesos-local.sh.in
-rw-r--r--. 1 stack stack 1026 Jul 17 23:14 mesos-tests.sh.in
-rw-r--r--. 1 stack stack 901 Jul 17 23:14 mesos-tests-flags.sh.in
-rw-r--r--. 1 stack stack 1019 Jul 17 23:14 mesos-slave.sh.in
-rw-r--r--. 1 stack stack 1721 Jul 17 23:14 mesos-slave-flags.sh.in
-rw-r--r--. 1 stack stack 1366 Jul 17 23:14 mesos.sh.in
-rw-r--r--. 1 stack stack 1026 Jul 17 23:14 mesos-master.sh.in
-rw-r--r--. 1 stack stack 858 Jul 17 23:14 mesos-master-flags.sh.in
-rw-r--r--. 1 stack stack 1023 Jul 17 23:14 mesos-local.sh.in
-rw-r--r--. 1 stack stack 935 Jul 17 23:14 mesos-local-flags.sh.in
-rw-r--r--. 1 stack stack 1466 Jul 17 23:14 lldb-mesos-tests.sh.in
-rw-r--r--. 1 stack stack 1489 Jul 17 23:14 lldb-mesos-slave.sh.in
-rw-r--r--. 1 stack stack 1492 Jul 17 23:14 lldb-mesos-master.sh.in
-rw-r--r--. 1 stack stack 1489 Jul 17 23:14 lldb-mesos-local.sh.in
-rw-r--r--. 1 stack stack 1498 Jul 17 23:14 gdb-mesos-tests.sh.in
-rw-r--r--. 1 stack stack 1527 Jul 17 23:14 gdb-mesos-slave.sh.in
-rw-r--r--. 1 stack stack 1530 Jul 17 23:14 gdb-mesos-master.sh.in
-rw-r--r--. 1 stack stack 1521 Jul 17 23:14 gdb-mesos-local.sh.in
drwxr-xr-x. 2 stack stack 4096 Jul 17 23:21 .
drwxr-xr-x. 10 stack stack 4096 Jul 17 23:21 ..
两件事情:没有任何的文件都是可执行的。它们以在 这是关于什么的?
答案1
这些 .in 文件中有一些值,这些值在构建过程中会被自动工具替换。它们不应该被直接使用。如果您在“make install”之后查看目标目录,您将看不到任何 .in 文件。.in 是自动工具实用程序处理的文件的标准扩展名。
答案2
首先,*nix 系统中的文件扩展名无关紧要。大多数人都会遵循一些惯例,但它们仅仅是惯例而已 - 仅此而已。
其次,如果您查看了这些文件,就会发现它们只是 bash 脚本。您可以像运行任何其他 shell 脚本一样运行它们:$ bash /path/to/script
。
如果您愿意,可以使用chmod
添加可执行位,然后可以直接运行它们。