我是 Linux 和 Unix 环境的新手。我构建了一个用于 C++ 和 Oracle 交互的 Pro*C API,它比传统的 Pro*C 技术更容易使用。
如果您正在使用 Pro*C,那么您可能会意识到它的痛苦。也就是说,你需要编写.pc文件,然后使用Oracle预编译器,你需要编译代码得到.cpp文件,然后再次编译它得到.o(可执行文件)。为了使这个过程变得简单,我创建了一个 API,它为程序员提供了内置的类和函数,以便他/她可以实现它来促进 C++ 和 Oracle SQL 的开发。
现在,我想将 API 作为免费软件托管,这样人们就可以使用 apt-get 将 API 下载到各自的系统。如何通过 apt-get 托管我的文件?
答案1
你需要要么让 debian 来分发它——不一定容易,当然也不快,你首先需要一些更正常的分发点——或者在线托管你自己的存储库并让你的用户将其配置到 apt 中。
几乎没有人这样做;我想到了 google 和 dropbox。 Google 我可以理解,dropbox 和 google 都这样做,因为他们使用专有部件和 Debian惯于分发那个。我认为这比编写和维护一个小型 C++ 库更麻烦。一个很好的理由不是这样做的话,它会拒绝更多的用户,而不是吸引更多的用户。如果我去下载一些像这样的未知库并且他们希望我添加一个存储库,我会去其他地方看看,谢谢。这有什么意义呢?我认为它是开源的。为什么我不能直接下载源 tarball 并构建它?如果我是一名 C++ 程序员,我不太可能认为这是一个麻烦。
事实上,恰恰相反,我会考虑方便——它是开源的。 .deb
包装通常表明二进制构建;如果你想要来源,你必须自己单独获取。因此,您必须维护多个平台(32 位、64 位、ARM...)的软件包,也许多个发行版,因为我认为并非所有 debian 衍生发行版都使用相同的基础。更不用说非基于 apt 的 Linux 发行版(Arch、整个 Fedora 系列),而且,因为听起来你的 API 是建立在已经可移植的、非 Linux 甚至非 *nix 系统上的。1 如果您不想维护二进制包而只想拥有源 .deb,为什么还要麻烦呢?我不认为任何人这样做,因为这是毫无意义的,而且显然是这样。
在线存储库对您来说会很麻烦,最终对用户来说也确实很麻烦,因为如上所述,您的普通 C++ 程序员不会以任何方式反对仅使用普通的源 tarball。我认为无论如何编译都需要不到 30 秒的时间。简单的。简单的。普通的。完毕。
因此,我强烈建议您在 github 等地方托管一个页面,或者来源锻造。后者是免费的,广为人知且受人尊敬,将为其庞大的用户群(其中大部分是其他开发人员)自动提供免费宣传,并提供近乎全面的网络托管服务。如果您已经在某处进行了托管,则只需为此创建一个静态页面即可。另一方面,设置 apt 存储库是您必须持续付费的事情,因为它需要在某个地方有一个专用的切片。
请注意,您不必使用存储库来创建和分发.deb
包,只是您的用户将无法使用apt-get
,他们必须从您的站点下载它。即使您也托管一个存储库,您也应该在某个地方有一个描述产品等的页面。
1本质上,您将采用听起来像是可以在任何地方使用的包——Windows、OSX、任何带有 Oracle 和 C++ 编译器的地方——并以完全不可移植和限制性的方式打包它,因此只有基于 Debian 的系统可以访问它。有点低音落后。