我从源代码编译了最新版本的netatalk
(3.1.8) 以替换我的 Raspberry Pi 上相当过时的版本。
这是相当成功的,我想在其他 Raspberry Pi 上使用这个版本,但下载所有dev
库并重复编译似乎有些过头了。
是否有一个过程可以将编译后的版本及其man
文件conf
等复制到另一个系统?
答案1
善行难陀的回答一般来说是更好的方法;但在netatalk
这种情况下,将软件包升级到更新的版本似乎更合适复杂的(至少,在分发的情况下)。
现在您已经安装了本地构建的 版本netatalk
,我建议您使用以下方法(我假设您提取netatalk
到名为 的目录netatalk-3.1.8
,并从那里构建并安装它):
tar
启动源代码(以及源代码树中构建的二进制文件);- 将 tarball 复制到另一个 Raspberry Pi;
- 在另一个 Raspberry Pi 上安装
checkinstall
并提取 tarball; 使用安装二进制文件
checkinstall
checkinstall -D make install
(作为
root
)。
最后一步将安装从您的第一个 Raspberry Pi(不需要任何-dev
包)预构建源中复制的二进制文件,并.deb
从中构建一个包。然后您可以将.deb
包复制到其他 Raspberry Pi 系统...
我不确定如果缺少任何必需的库,这会发挥多大作用,因此您可能需要ldd
事先在第一个 Raspberry Pi 上运行二进制文件,并确保相应的lib...
软件包(不是-dev
!)安装在第二个。
有一个更简单的变体如果netatalk
Makefile
有一个工作uninstall
目标:在这种情况下,在第一个 Raspberry Pi 上,
- 安装
checkinstall
; 卸载
netatalk
:make uninstall
使用以下命令再次安装它
checkinstall
:checkinstall -D make install
这样您就知道所需的库已安装,并且生成的库.deb
应该具有适当的依赖项。
如果checkinstall
不起作用,总是有预构建的 tarball 方法:
tar
启动源代码(以及源代码树中构建的二进制文件);- 将 tarball 复制到其他 Raspberry Pi;
- 在每个 Raspberry Pi 上运行
make install
; - 记下您需要单独安装才能使一切正常运行的库。
答案2
yum
这就是、dpkg
和等打包工具rpm
存在的原因。我不是 Rasbian 用户,我不知道 netatalk 是否可以作为系统包使用(正在检查...好像是)。
- 如果可用,那将是您的第一个停靠港。
- 如果可用,但版本太旧,那么我会联系软件包维护者以获取更新。
- 如果它不可用,或者您只是不想联系维护者,您可以考虑使用 Rasbian 使用的任何包管理系统(似乎是 Debian 包)构建一个包。这是一个指南对于
dpkg
, 和这是另一个拉斯比亚人链接到他们自己的页面。
不使用二进制包意味着您必须自己跟踪所有文件的安装位置,以某种方式将它们打包,然后希望解压该 tar 文件不会覆盖目的地的内容。这些都是包管理工具要做的事情(以及确保满足依赖关系等)
Rasbian 似乎是一个依赖用户参与的小型发行版,因此与软件包维护者的友好对话可能会受到欢迎?