Essas instruções são basicamente baseadas no leia-me oficial , mas com detalhes específicos e uma etapa adicional (etapa III) que eu achei necessária para criar com êxito. Eu testei-os no Ubuntu 16.04 LTS.
I. Instale os pré-requisitos.
Primeiro instale o Git (para baixar o software), as ferramentas para compilar o software e as bibliotecas usadas pelo software:
sudo apt update
sudo apt install git build-essential libgtk-3-dev libcurl4-openssl-dev openssl libssl-dev libjansson-dev
Escolha um local para construir o software. O local tradicional é o /usr/local/src
qual você pode permitir que os administradores (membros do sudo
grupo) leiam e gravem arquivos em:
sudo chgrp sudo /usr/local/src
sudo chmod g+sw /usr/local/src
Se você estiver construindo em outro lugar, poderá ajustar os seguintes comandos de acordo.
II Faça o download do código fonte.
cd /usr/local/src
git clone https://github.com/iBroadcastMediaServices/MediaSyncLiteLinux.git
Agora você tem um MediaSyncLiteLinux
diretório que contém o código fonte. O código fonte inclui dois arquivos chamados Makefile
, um no diretório de nível superior e o outro em src
. (Na verdade, existem mais do que apenas esses dois, mas é com esses que nos importamos.)
III Corrija o código-fonte para vincular o libcrypto em vez do libssl.
Atualmente, para construir iBroadcast Media Sync Lite no Ubuntu 16.04, é necessário modificar o Makefile
no src
. Isso ocorre porque ele é vinculado ao libssl, mas precisa do libcrypto . Futuras versões do software (que você, ou futuros leitores, obteria automaticamente, executando o git
comando acima) não pode exigir isso.
Se você pular esta etapa, atualmente você receberá esse erro durante a make
etapa subsequente (etapa IV). A mensagem de erro parecerá um pouco diferente se você estiver usando a versão de 32 bits do 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
Essa mensagem significa que você deve vincular à libcrypto .
Vá para o src
subdiretório MediaSyncLiteLinux
, faça backup do arquivo e abra o arquivo em um editor de texto. Essas instruções usam o nano
editor, mas você pode usar o editor de texto que desejar. (Não é um processador de texto - os arquivos devem permanecer em texto sem formatação.)
cd MediaSyncLiteLinux/src
cp Makefile Makefile.orig
nano -w Makefile
No editor de texto, encontre a linha que diz:
LDFLAGS = `pkg-config --libs gtk+-3.0 libcurl libssl` -ljansson -lpthread -rdynamic
Mude libssl
para libcrypto
, então agora ele diz:
LDFLAGS = `pkg-config --libs gtk+-3.0 libcurl libcrypto` -ljansson -lpthread -rdynamic
Versões futuras do software podem ter essa linha de outras maneiras. Você só deve fazer essa alteração específica. Por exemplo, se houver outras bibliotecas listadas, não as remova.
Tudo no OpenSSL de que este programa precisa parece ser fornecido libcrypto
, mas, em teoria, uma versão futura também pode ser necessária libssl
. Nesse caso, você deve receber mensagens de erro sobre isso ao tentar construí-lo - provavelmente mencionando libssl.so
, da mesma forma que a mensagem de erro mostrada acima libcrypto.so
. Outras bibliotecas necessárias recentemente podem ser indicadas da mesma forma (se você tiver sorte).
Ctrl+ Xsai nano
e você será solicitado a salvar.
IV Crie e instale o software.
Vá para o MediaSyncLiteLinux
diretório de nível superior criado por git clone
. Depois de seguir passo III acima, cd ..
vai conseguir isso (porque você estava em MediaSyncLiteLinux/src
). Ou você pode executar:
cd /usr/local/src/MediaSyncLiteLinux
Agora, para compilá-lo, execute:
make
Você está executando make
no diretório que contém o nível superior Makefile
. Não foi o que você editou, mas ele também será usado automaticamente durante a compilação.
Você verá avisos como warning: ‘gtk_widget_override_color’ is deprecated [-Wdeprecated-declarations]
. Está tudo bem. Se houver erros , isso terá que ser investigado. Caso contrário, você pode prosseguir com a instalação:
sudo make install
Isso instalará o iBroadcast Media Sync Lite no Windows /usr/local
.
Observe que, embora eu sugira que você o instale, a instalação é realmente opcional. Como o readme diz, você tem a opção de sempre executar o mediasynclite
executável que foi criado no MediaSyncLiteLinux
diretório de nível superior quando você executou make
.
V. Execute e veja se funciona.
O mediasynclite
comando foi instalado para /usr/local/bin
. Como esse diretório faz parte dos usuários $PATH
por padrão, agora você pode executar esse comando (de qualquer lugar).
mediasynclite
Você provavelmente deve executá-lo a partir do diretório em que mantém sua música. Ao executá-lo, você deverá fazer login na sua conta do iBroadcast. É assim que parece (depois da tela inicial) quando eu a executo:
Se você optou por não executar sudo make install
e deseja executar o executável compilado (de qualquer lugar), você pode executar:
/usr/local/src/MediaSyncLiteLinux/mediasynclite
VI Localizando os arquivos instalados
Um dia você pode querer ou precisar encontrar os arquivos que foram instalados. Quando você executa, sudo make install
ele informa quais arquivos estão sendo criados. Você pode salvar essas informações.
A partir da versão atual , eles são:
- O único arquivo executável binário
/usr/local/bin/mediasynclite
.
- O
/usr/local/share/mediasynclite
diretório e seu conteúdo.
Menciono isso principalmente porque, a partir de agora, a desinstalação com sudo make uninstall
não é suportada. Você pode remover os arquivos manualmente para desinstalar. Se desejar, você também pode usar, emcheckinstall
vez do sudo make install
comando acima, para facilitar a desinstalação. Ou você pode usá-lo sem instalá-lo, executando o mediasynclite
comando no diretório de origem de nível superior.
Leitura adicional
Embora realmente não forneça informações específicas suficientes para criar esse programa específico, se você não tiver experiência em compilar software a partir do código-fonte, o CompilingEasyHowTo é um recurso útil e pode lhe interessar.