我知道这可能是一个无知的问题,但我一直在想:make
在 Linux 软件上下载并运行后(例如https://github.com/scapella/trimal)-我需要复制到usr/local/bin
可执行文件吗仅有的或可执行文件以及所有其他文件在运行后创建的目录中make
?
我怎么知道只复制可执行文件就足够了?即使它正在运行,我怎么知道它运行正常,而它不需要找到我最初运行的路径,make
我问这个问题是因为很多时候这并不清楚……
谢谢
答案1
您只需将可执行文件复制到您的某个位置,PATH
例如/usr/local/bin/
或~/bin/
。
一般来说,软件可能会安装以下部分或全部内容:
- 可执行文件到合适的
bin/
目录 - 共享库文件到合适的
lib/
目录 - 文档到和
man/
或info/
目录 - 配置文件
etc/
- 其他文件到
share/
目录
在这种情况下,开发人员通常会提供一个install
目标(运行为make install
)来将文件分发到适当的目录中。
就软件而言,除了三个可执行文件、和trimal
之外,似乎没有任何可安装的内容,并且没有提供任何目标。trimal
readal
statal
install
答案2
之后要做什么make
通常由开发人员描述
例如,请参阅自述文件.md位于源根文件夹中的文件:
默认情况下,“make”会在当前目录中编译 trimAl 和 readAl 的源代码。之后,您可以将当前目录添加到 PATH,或使用 root 权限将这些文件移动到“/usr/local/bin”或“/usr/bin”。
如果您构建的是驱动程序模块而不是“经典”可执行文件,则路径不是,bin/
而是/etc/modules
因为在启动时由内核读取。等等。
答案3
一般来说,一个干净编程的开源项目应该make install
为您提供一个目标:用户不需要知道将哪些文件复制到哪里。
在那个项目中,他们没有经历这些麻烦;他们甚至没有提供任何说明。我认为这是马虎和不专业的。
让makefile
我们做出有根据的猜测:
https://github.com/scapella/trimal/blob/trimAl/source/makefile#L15
这样就构建了 3 个可执行文件。它们不需要太多库:
https://github.com/scapella/trimal/blob/trimAl/source/makefile#L15
仅有的库姆,每个系统上都会安装的数学库。
您当然不想要这些.o
文件;这些是链接二进制文件所需的编译目标文件。
不过你可能需要脚本:
https://github.com/scapella/trimal/tree/trimAl/scripts
有些在标题中包含一些文档,说明它们的作用。其他地方可能还有一些关于整个项目的附加文档,但官方项目网站https://trimal.cgenomics.org/好像已经下降了。