背景
我的计算机出现严重错误,不允许我恢复/重新安装 Windows,因此我放弃了,并安装了 Ubuntu 16 以使计算机可以正常运行。
我对 Linux 有一些了解,但我认为自己还不够熟练。
我需要一份分步指南来安装我想在计算机上使用的程序 iBroadcast Media Sync Lite。但是使用其他指南完全不清楚,或者我完全失败了。
我想要安装的程序在这里:
https://github.com/iBroadcastMediaServices/MediaSyncLiteLinux
我曾尝试安装它,但据我所知,它失败了。
我将非常感激任何能够提供的帮助。
答案1
这些说明大致基于官方自述文件,但包含特定细节和额外步骤(步骤 III),我发现这些步骤对于成功构建是必需的。我已经在 Ubuntu 16.04 LTS 上测试过它们。
I.安装先决条件。
首先安装Git(下载软件)、构建软件的工具以及软件使用的库:
sudo apt update
sudo apt install git build-essential libgtk-3-dev libcurl4-openssl-dev openssl libssl-dev libjansson-dev
选择构建软件的位置。传统位置是/usr/local/src
,您可以允许管理员(组成员sudo
)在其中读取和写入文件:
sudo chgrp sudo /usr/local/src
sudo chmod g+sw /usr/local/src
如果您在其他地方构建它,那么您可以相应地调整以下命令。
II.下载源代码。
cd /usr/local/src
git clone https://github.com/iBroadcastMediaServices/MediaSyncLiteLinux.git
现在您有一个MediaSyncLiteLinux
包含源代码的目录。源代码包含两个名为 的文件Makefile
,一个位于顶级目录中,另一个位于 中src
。(实际上不止这两个,但这两个是我们关心的。)
III. 修补源代码以链接到 libcrypto 而不是 libssl。
目前,要在 Ubuntu 16.04 中构建 iBroadcast Media Sync Lite,需要修改 中的Makefile
。src
这是因为它链接到库但需要库加密相反。该软件的未来版本(您或未来的读者可以通过运行git
上述命令自动获得)可能不需要这样做。
如果您跳过此步骤,目前您将在后续make
步骤(步骤 IV)中收到此错误。如果您使用的是 32 位版本的 Ubuntu,错误消息会略有不同。
/usr/bin/ld: tools.o: undefined reference to symbol 'MD5@@OPENSSL_1.0.0'
//lib/x86_64-linux-gnu/libcrypto.so.1.0.0: error adding symbols: DSO missing from command line
那条信息意味着你必须链接到 libcrypto。
转到src
的子目录MediaSyncLiteLinux
,备份文件,然后在文本编辑器中打开该文件。这些说明使用nano
编辑器,但您可以使用任何您喜欢的文本编辑器。(但不是文字处理器——文件必须保持纯文本。)
cd MediaSyncLiteLinux/src
cp Makefile Makefile.orig
nano -w Makefile
在文本编辑器中,找到以下行:
LDFLAGS = `pkg-config --libs gtk+-3.0 libcurl libssl` -ljansson -lpthread -rdynamic
更改libssl
为libcrypto
,因此现在显示为:
LDFLAGS = `pkg-config --libs gtk+-3.0 libcurl libcrypto` -ljansson -lpthread -rdynamic
软件的未来版本可能会使此行在其他方面有所不同。您应该只对此行进行此特定更改。例如,如果列出了其他库,请不要删除它们。
OpenSSL 中此程序所需的所有内容似乎都由 提供libcrypto
,但理论上未来版本可能libssl
也需要。如果是这样,您在尝试构建它时应该会看到有关此内容的错误消息——可能提到libssl.so
,就像上面显示的错误消息提到 一样libcrypto.so
。其他新需要的库可能会以类似的方式指示(如果您幸运的话)。
Ctrl+X退出nano
,然后系统将提示您保存。
IV. 构建并安装软件。
MediaSyncLiteLinux
转到由 创建的顶级目录git clone
。按照上面的步骤 III 操作后,cd ..
将实现此目的(因为您位于 中MediaSyncLiteLinux/src
)。或者您可以运行:
cd /usr/local/src/MediaSyncLiteLinux
现在要构建它,只需运行:
make
您正在运行make
包含顶层 Makefile
。这不是您编辑的那个,尽管那个也会在构建过程中自动使用。
您将看到类似 的警告warning: ‘gtk_widget_override_color’ is deprecated [-Wdeprecated-declarations]
。没关系。如果有错误,那么就必须调查一下。如果没有,那么你可以继续安装它:
sudo make install
这将在 中安装 iBroadcast Media Sync Lite /usr/local
。
请注意,虽然我建议你安装它,安装实际上是可选的。作为自述文件说,您可以选择始终运行运行时mediasynclite
在顶级目录中创建的可执行文件。MediaSyncLiteLinux
make
V.运行它并查看它是否有效。
该mediasynclite
命令安装到/usr/local/bin
。由于该目录是用户的一部分$PATH
默认情况下,您现在可以(从任何地方)运行该命令。
mediasynclite
您可能应该从保存音乐的目录中运行它。运行它时,您必须登录到您的 iBroadcast 帐户。这是我运行它时的样子(初始启动画面之后):
如果您选择不运行sudo make install
并且想要运行已编译的可执行文件(从任何地方),您可以运行:
/usr/local/src/MediaSyncLiteLinux/mediasynclite
VI. 查找已安装的文件
您可能有一天想要或需要查找已安装的文件。运行时sudo make install
它会告诉您正在创建哪些文件。您可能想要保存该信息。
从当前版本开始, 他们是:
- 单个二进制可执行文件
/usr/local/bin/mediasynclite
。 - 目录
/usr/local/share/mediasynclite
及其内容。
我提到这一点主要是因为,截至目前,sudo make uninstall
不支持使用卸载。您可以手动删除文件以进行卸载。如果您愿意,您也可以使用checkinstall
而不是sudo make install
上面给出的命令,以便于卸载。或者,您也可以在不安装的情况下使用它,方法是mediasynclite
在顶级源目录中运行该命令。
进一步阅读
虽然它并没有真正告诉你足够的具体信息来构建这个特定的程序,如果你没有从源代码编译软件的经验,编译EasyHowTo是一种有用的资源,可能会让您感兴趣。
答案2
打开任意终端
运行以下命令
git clone https://github.com/iBroadcastMediaServices/MediaSyncLiteLinux
cd MediaSyncLiteLinux
make
sudo make install