libimobiledevice 1.2 (suporte para iOS 8) para Ubuntu 14.04 Trusty

22

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?

https://launchpad.net/ubuntu/+source/libimobiledevice

tristank
fonte
Não encontrei nenhum, mas não é difícil criar e compactar a versão atual: help.ubuntu.com/community/UpdatingADeb .
David Foerster
Obrigado, acho que vou ter que experimentar então. Estou um pouco preocupado em quebrar a integração com o nautilus.
precisa
Você teve sucesso com isso? Você consegue montar a pasta "Documents of ..." novamente? Consegui construir e instalar, mas a montagem e o carregamento não funcionaram. Portanto, desclassifiquei e espero por alguém mais qualificado para configurar um ppa.
7305 Weidenrinde

Respostas:

23

Usando o repositório GitHub .

Lembre-se de que cada etapa funciona apenas se a etapa anterior foi bem-sucedida.

  1. Clonar o repositório

    mkdir -p ~/src
    cd ~/src
    git clone https://github.com/libimobiledevice/libimobiledevice.git
    cd libimobiledevice
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. Configurar e construir

    ./autogen.sh
    make
    
  7. Instalar

    Com o comando abaixo, um pacote deb com o nome libimobiledeviceserá 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.1eEnter

    Enter a number to change any of them or press ENTER to continue: 3
    Enter new version: 
    >> 1.2.1
    
  8. 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
    
AB
fonte
Você consegue montar a pasta "Documents of ..." novamente? Funciona com o ios 9/10?
21316 Weidenrinde
8

Foi o que fiz para criar o libimobiledevice-1.2.0:

  1. Instale ferramentas de construção e dependências

    sudo apt-get install build-essential fakeroot devscripts pbuilder
    sudo apt-get build-dep libimobiledevice
  2. 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
  3. Procure e baixe a nova versão upstream:

    uscan --verbose
  4. 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
  5. Crie o pacote binário (em paralelo com tantos trabalhadores quanto os núcleos de CPU disponíveis):

    debuild -b -j$(getconf _NPROCESSORS_ONLN)

    ( -jinstrui 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.)

  6. 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.

David Foerster
fonte
1
Ao tentar construir o libusbmux-d atualizado, depois de adicionar algumas dependências, deparei-me com: dh_auto_configure - -DCMAKE_INSTALL_PREFIX = "/ usr" -DCMAKE_SKIP_RPATH = true -DLIB_SUFFIX = -DUSB_PKGCONF_INCLUDE_dir / "/ install" : erro: opção não reconhecida: `-DCMAKE_INSTALL_PREFIX = / usr 'Alguma idéia? Existe alguma chance de você (ou outros) postar o resultado de seus esforços em um ppa?
Weidenrinde
Por favor, abra uma nova pergunta para o seu problema. Você pode me enviar um link através destas seções de comentários para chamar minha atenção. Como uma idéia rápida, consulte a saída de ./configure --helppara obter uma lista de opções disponíveis.
David Foerster
1
Na verdade, alguém fez isso, porque eles se deparam com o mesmo problema ... askubuntu.com/questions/616501/...
Weidenrinde
1
Eu tenho o mesmo problema no Ubuntu 15.04. Você conseguiu uma solução?
Code-Source
1
Para instalar libusbmuxd-dev (>= 1.0.9)você pode baixar o pacote .deb * aqui e instalá-lo comsudo dpkg -i
Michele
8

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 checkinstallprompt:

> y[ENTER]
> [ENTER]
> 3[ENTER]
> 1.2.1[ENTER]
> [ENTER]
ATOzTOA
fonte
3

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

yanpas
fonte
Quais componentes estão faltando? Aqueles que permitem visualizar os documentos compartilhados dos aplicativos?
NoBugs 24/10
@NoBugs sim, ifuse erra
yanpas
Não funciona em 15.10.
Aleksandr Dubinsky