在ubuntu机器上,libmariadb3
放在哪里?
在sudo apt install libmariadb3 libmariadb-dev
中,您正在安装库.我猜动态共享对象.so
库和静态.a
库都在类似/usr/lib
的地方.与这些库一起使用的头文件可能在/usr/include
中.仔细调查一下,告诉我们你发现了什么.
运行dpkg -L libmariadb3
和dpkg -L libmariadb-dev
查看它们的安装位置.将输出添加到您的问题的底部.
apt list --installed
可以列出所有已安装的软件包,以防你需要用dpkg -L <name>
判断其他软件包,但不知道<name>
部分.
我的程序是如何找到它的?
从您的gcc
构建命令中,我可以看到您对$()
进行了一些命令替换.我认为,mariadb_config --include --libs
命令应该包含要包含的库的列表.告诉我们你的yields 是多少.
我认为,这些图书馆将达到/usr/lib
个.
mariadb_config --include --libs
、dpkg -L libmariadb3
和dpkg -L libmariadb-dev
的输出是多少?
(最重要的是)我需要在不同的机器上部署(运行,而不是构建)libmariadb3
库的哪些部分?
请参见上面的.它们将需要与您相同的库和头文件.
……最好的办法是什么?
将一个简单的小应用程序部署到目标Ubuntu机器上最简单的专业方法是什么?
我不知道把什么东西放到apt
包管理器中,这样他们就可以运行sudo apt install whatever
了.
根据我到目前为止在Ubuntu上的经验,除了这一点,你还有3个很好的 Select :
选项1:自己为Ubuntu构建应用程序,只需给我们可执行文件和安装依赖项所需的命令即可.我们运行命令来安装依赖项,然后将可执行文件移到/usr/bin/
,这样我们就可以使用它了.您可以将可执行文件放入GitHub页面上的GitHub"Release"中.
选项2:您为我们提供了出色的从源代码构建的说明,而我们则从源代码构建.这是许多GNU程序上的常见风格:
wget some_package.tar.gz
tar -xf some_package.tar.gz # unzip it
cd some_package
./configure
make
sudo make install
但只要它起作用,我并不关心构建命令是什么样子的.
选项3:将所有内容打包到一个安装bash脚本中,我们只需下载并在一个命令中运行它,如下所示:
curl -L https://some_github_path | /bin/bash
例如:https://github.com/nicolargo/glances#glances-auto-install-script-the-easy-way(当然,这是一个Python程序,但概念是相同的)
这个选项3在幕后是选项1还是选项2取决于你自己.
注意:在上面的任一选项中,如果你想要一个我们可以点击的漂亮的图形用户界面启动器按钮,你需要为我们添加一个桌面文件到/usr/share/applications/
或$HOME/.local/share/applications/
.请参见Ask Ubuntu: Where are the .desktop icon files stored?.