Existe um PPA disponível para a versão mais recente do libimobiledevice 1.2 com suporte para iOS 8 ou alguém pode explicar como construí-lo a partir da fonte sem estragar tudo?
Existe um PPA disponível para a versão mais recente do libimobiledevice 1.2 com suporte para iOS 8 ou alguém pode explicar como construí-lo a partir da fonte sem estragar tudo?
Respostas:
Usando o repositório GitHub .
Lembre-se de que cada etapa funciona apenas se a etapa anterior foi bem-sucedida.
Clonar o repositório
mkdir -p ~/src
cd ~/src
git clone https://github.com/libimobiledevice/libimobiledevice.git
cd libimobiledevice
Instale as bibliotecas de desenvolvimento necessárias
Você pode precisar de mais bibliotecas ou pacotes de cabeçalho, conforme listado abaixo. Você verá isso se tiver mensagens de erro durante a etapa de configuração posteriormente. Adicione um comentário se você tiver problemas.
sudo apt-get install libusbmuxd-dev libplist-dev libplist++-dev libgnutls-dev libssl-dev python-dev
Instale algum software adicional
O software a seguir é necessário para preparar o software para a compilação e compilá-lo.
sudo apt-get install usbmuxd make automake autoconf libtool pkg-config gcc
Instale o software opcional
O software a seguir é usado para acelerar a execução de partes do pacote pronto e criar documentação.
sudo apt-get install cython doxygen
Instale um auxiliar de instalação
O Checkinstall cria um pacote debian para que o software seja gerenciado pelo gerenciador de pacotes.
sudo apt-get install checkinstall
Configurar e construir
./autogen.sh
make
Instalar
Com o comando abaixo, um pacote deb com o nome libimobiledevice
será criado e instalado.
sudo checkinstall
Você verá este aviso:
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.
*****************************************
**** Debian package creation selected ***
*****************************************
*** Warning: The package version "1.2.1
1.2.1
1.2.1
1.2.1
1.2.1
1.2.1
1.2.1
1.2.1
1.2.1
1.2.1" is not a
*** Warning: debian policy compliant one. Please specify an alternate one
This package will be built according to these values:
0 - Maintainer: [ root@aboettger-VirtualBox ]
1 - Summary: [ Package created with checkinstall 1.6.2 ]
2 - Name: [ libimobiledevice ]
3 - Version: [ ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ libimobiledevice ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ libimobiledevice ]
12 - Conflicts: [ ]
13 - Replaces: [ ]
Basta pressionar 3e digitar 1.2.1
eEnter
Enter a number to change any of them or press ENTER to continue: 3
Enter new version:
>> 1.2.1
Verifique os arquivos instalados
dpkg -L libimobiledevice
e você verá algo assim
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libimobiledevice
/usr/share/doc/libimobiledevice/COPYING.LESSER
/usr/share/doc/libimobiledevice/AUTHORS
/usr/share/doc/libimobiledevice/NEWS
/usr/share/doc/libimobiledevice/README
/usr/share/doc/libimobiledevice/docs
/usr/share/doc/libimobiledevice/docs/idevice_id.1
/usr/share/doc/libimobiledevice/docs/idevicenotificationproxy.1
/usr/share/doc/libimobiledevice/docs/idevicepair.1
/usr/share/doc/libimobiledevice/docs/ideviceprovision.1
/usr/share/doc/libimobiledevice/docs/ideviceimagemounter.1
/usr/share/doc/libimobiledevice/docs/Makefile
/usr/share/doc/libimobiledevice/docs/idevicedebug.1
/usr/share/doc/libimobiledevice/docs/idevicename.1
/usr/share/doc/libimobiledevice/docs/idevicebackup.1
/usr/share/doc/libimobiledevice/docs/idevicedebugserverproxy.1
/usr/share/doc/libimobiledevice/docs/ideviceenterrecovery.1
/usr/share/doc/libimobiledevice/docs/idevicecrashreport.1
/usr/share/doc/libimobiledevice/docs/ideviceinfo.1
/usr/share/doc/libimobiledevice/docs/Makefile.in
/usr/share/doc/libimobiledevice/docs/Makefile.am
/usr/share/doc/libimobiledevice/docs/idevicescreenshot.1
/usr/share/doc/libimobiledevice/docs/idevicedate.1
/usr/share/doc/libimobiledevice/docs/idevicesyslog.1
/usr/share/doc/libimobiledevice/docs/idevicediagnostics.1
/usr/share/doc/libimobiledevice/docs/idevicebackup2.1
/usr/share/doc/libimobiledevice/COPYING
/usr/local
/usr/local/bin
/usr/local/bin/idevicepair
/usr/local/bin/idevicename
/usr/local/bin/ideviceinfo
/usr/local/bin/idevicebackup2
/usr/local/bin/ideviceprovision
/usr/local/bin/idevicecrashreport
/usr/local/bin/ideviceimagemounter
/usr/local/bin/idevice_id
/usr/local/bin/idevicenotificationproxy
/usr/local/bin/ideviceenterrecovery
/usr/local/bin/idevicescreenshot
/usr/local/bin/idevicediagnostics
/usr/local/bin/idevicedebug
/usr/local/bin/idevicebackup
/usr/local/bin/idevicedebugserverproxy
/usr/local/bin/idevicesyslog
/usr/local/bin/idevicedate
/usr/local/lib
/usr/local/lib/libimobiledevice.la
/usr/local/lib/pkgconfig
/usr/local/lib/pkgconfig/libimobiledevice-1.0.pc
/usr/local/lib/libimobiledevice.so.6.0.0
/usr/local/lib/libimobiledevice.a
/usr/local/share
/usr/local/share/man
/usr/local/share/man/man1
/usr/local/share/man/man1/idevicebackup2.1.gz
/usr/local/share/man/man1/ideviceprovision.1.gz
/usr/local/share/man/man1/idevicebackup.1.gz
/usr/local/share/man/man1/idevicecrashreport.1.gz
/usr/local/share/man/man1/idevice_id.1.gz
/usr/local/share/man/man1/ideviceenterrecovery.1.gz
/usr/local/share/man/man1/ideviceimagemounter.1.gz
/usr/local/share/man/man1/idevicename.1.gz
/usr/local/share/man/man1/idevicescreenshot.1.gz
/usr/local/share/man/man1/idevicedebug.1.gz
/usr/local/share/man/man1/idevicenotificationproxy.1.gz
/usr/local/share/man/man1/idevicedebugserverproxy.1.gz
/usr/local/share/man/man1/idevicedate.1.gz
/usr/local/share/man/man1/ideviceinfo.1.gz
/usr/local/share/man/man1/idevicesyslog.1.gz
/usr/local/share/man/man1/idevicediagnostics.1.gz
/usr/local/share/man/man1/idevicepair.1.gz
/usr/local/include
/usr/local/include/libimobiledevice
/usr/local/include/libimobiledevice/syslog_relay.h
/usr/local/include/libimobiledevice/lockdown.h
/usr/local/include/libimobiledevice/diagnostics_relay.h
/usr/local/include/libimobiledevice/screenshotr.h
/usr/local/include/libimobiledevice/property_list_service.h
/usr/local/include/libimobiledevice/installation_proxy.h
/usr/local/include/libimobiledevice/restore.h
/usr/local/include/libimobiledevice/file_relay.h
/usr/local/include/libimobiledevice/mobile_image_mounter.h
/usr/local/include/libimobiledevice/mobilebackup2.h
/usr/local/include/libimobiledevice/afc.h
/usr/local/include/libimobiledevice/service.h
/usr/local/include/libimobiledevice/webinspector.h
/usr/local/include/libimobiledevice/heartbeat.h
/usr/local/include/libimobiledevice/libimobiledevice.h
/usr/local/include/libimobiledevice/mobilesync.h
/usr/local/include/libimobiledevice/misagent.h
/usr/local/include/libimobiledevice/debugserver.h
/usr/local/include/libimobiledevice/mobilebackup.h
/usr/local/include/libimobiledevice/house_arrest.h
/usr/local/include/libimobiledevice/sbservices.h
/usr/local/include/libimobiledevice/notification_proxy.h
/usr/local/lib/libimobiledevice.so
/usr/local/lib/libimobiledevice.so.6
Foi o que fiz para criar o libimobiledevice-1.2.0:
Instale ferramentas de construção e dependências
sudo apt-get install build-essential fakeroot devscripts pbuilder
sudo apt-get build-dep libimobiledevice
Faça o download dos scripts de código-fonte e de compilação Debian da versão empacotada atualmente (1.1.5 no Ubuntu 14.04):
apt-get source libimobiledevice
cd libimobiledevice-1.1.5
Procure e baixe a nova versão upstream:
uscan --verbose
Descompacte-o, coloque os scripts de compilação Debian no lugar e atualize o log de alterações:
uupdate ../libimobiledevice_1.2.0.orig.tar.bz2
cd ../libimobiledevice-1.2.0
Crie o pacote binário (em paralelo com tantos trabalhadores quanto os núcleos de CPU disponíveis):
debuild -b -j$(getconf _NPROCESSORS_ONLN)
( -j
instrui o sistema de compilação a executar tarefas individuais de compilação em paralelo, se possível. Como isso às vezes leva a problemas, pode valer a pena tentar executar novamente a compilação sem esse sinalizador ou descartá-la em primeiro lugar.)
Instale o pacote compilado:
sudo dpkg -i ../libimobiledevice_1.2.0*.deb
Na verdade, eu trapacei um pouco. Não pude satisfazer as dependências de compilação, porque uma biblioteca não está disponível em versões suficientemente recentes no Ubuntu 14.04: libimobiledevice-1.2.0 requer libusbmuxd-dev (>= 1.0.9)
, portanto você precisará construí-lo a partir do código-fonte primeiro com a mesma receita.
./configure --help
para obter uma lista de opções disponíveis.
OK, é isso que funcionou para mim.
A ordem é:
libplist -> libusbmuxd -> libimobiledevice -> usbmuxd, ifuse, ideviceinstaller, ...
Fonte: https://github.com/libimobiledevice/usbmuxd/issues/10
mkdir -p ~/src
cd ~/src
sudo apt-get -y install libusbmuxd-dev libplist-dev libplist++-dev libgnutls-dev libssl-dev usbmuxd make automake autoconf libtool pkg-config gcc cython doxygen checkinstall libusb-1.0-0-dev libssl-dev
git clone https://github.com/libimobiledevice/libplist.git
cd libplist/
./autogen.sh
make
sudo make install
cd ..
git clone https://github.com/libimobiledevice/libusbmuxd.git
cd libusbmuxd/
./autogen.sh
make
sudo make install
cd ..
git clone https://github.com/libimobiledevice/libimobiledevice.git
cd libimobiledevice/
./autogen.sh
make
sudo checkinstall
No checkinstall
prompt:
> y[ENTER]
> [ENTER]
> 3[ENTER]
> 1.2.1[ENTER]
> [ENTER]
Eu uso esse PPA, ele tem o último libimobiledevice, mas nem todos os componentes estão representados lá: https://launchpad.net/~martin-salbaba/+archive/ubuntu/ppa+libimobiledevice
16.04 terá 1.2. Consegui baixar as debs da barra de ativação ( https://launchpad.net/ubuntu/xenial/+source/libimobiledevice ) e instalá-las na 15.10. Eu precisava libusbmuxd4
, libimobiledevice6
e libimobiledevice-dev
. Em seguida, instalei o ifuse 1.1.3 seguindo estas instruções: /ubuntu//a/691758