如何使开源脚本“可安装”?

时间:2012-11-08 15:07:46

标签: bash

我已经完成了一个用Bash编写的有用的脚本,托管在github上。它经过测试和记录。现在,我在如何制作它installable方面很困难,即我应该把它放在哪里以及如何制作它。

似乎其他此类项目使用make和configure但我无法找到有关如何为bash脚本执行此操作的任何信息。

另外,我不确定将我的脚本放在哪个目录中。

我知道如何让它自己可用,但如果用户下载它,我想为他提供方便的安装方式。

2 个答案:

答案 0 :(得分:1)

没有标准,因为大多数情况下,项目不是单个脚本文件。单个文件脚本也不需要构建步骤(脚本已经是可执行的形式),配置通常来自外部配置文件(因此也不需要configure脚本)。

但我建议在文件顶部附近添加一条评论,说明它的作用以及如何安装(即chmod +x +复制到文件夹)。

或者,您可以创建一个安装程序脚本,其中包含您的原始脚本以及一个标题,该标题会询问用户要安装真实脚本的位置以及执行所有操作的所有内容(mkdir,使用sudo设置权限等等)但在你的情况下真的感觉有些过分。

如果您想使其可安装,以便包管理器可以轻松安装和删除(!)它,您需要查看rpmDebian packaging的文档。这是两个最常用的包管理器,但它们不能为每个用户安装脚本(因此它可能最终会在/usr/bin中)

答案 1 :(得分:0)

指示他们创建一个以其主目录中的脚本命名的文件,chmod ug + x该文件,因此它具有可执行权限,而不是将脚本放入文件中,不要忘记#!/ bin / bash在vim的顶部。此示例是一个复制文件的脚本,归档复制的文件,而不是删除复制的文件,只留下原始文件和存档文件。

#!/bin/bash
#### The following will copy the desired file
cp -r /home/wes/Documents/Hum430 /home/wes/docs

#### Next archives the copied file
tar -zcvf Hum430.tar.gz /home/wes/docs

#### and lastly removes the un-archived copy leaving only the original and the archived file.
rm -r /home/wes/docs
### run the file with ./filename (whatever the file is named)