Is there a PPA available for the most recent libimobiledevice 1.2 version with support for iOS 8 or can someone explain how to build it from source without messing up everything?

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

  • I didn't find any, but it's not hard to build and package the current version yourself: help.ubuntu.com/community/UpdatingADeb. – David Foerster Mar 20 '15 at 1:24
  • Thanks I guess I will have to try it out then. I'm little bit concerend about breaking the integration with nautilus. – tristank Apr 4 '15 at 9:32
  • Have you been successful with it? Are you able to mount the "Documents of..." folder again? I managed to build and install, but mounting and charging did not work at all. Therefore, I downgraded and wait for someone more skilled to set up a ppa. – Weidenrinde Jun 7 '15 at 10:07
up vote 23 down vote accepted

Using the GitHub repository.

Bear in mind, each step works only if the previous step was successful.

  1. Clone the repository

    mkdir -p ~/src
    cd ~/src
    git clone https://github.com/libimobiledevice/libimobiledevice.git
    cd libimobiledevice
    
  2. Install the necessary development libraries

    You may need more libraries or header packages as listed below. You will see this if you have error messages during the configuration step later. Add a comment if you have problems.

    sudo apt-get install libusbmuxd-dev libplist-dev  libplist++-dev libgnutls-dev libssl-dev python-dev
    
  3. Install some additional software

    The following software is needed to prepare the software for compilation and then compile it.

    sudo apt-get install usbmuxd make automake autoconf libtool pkg-config gcc
    
  4. Install optional software

    The following software is used to make parts of the finished package a run faster and create documentation.

    sudo apt-get install cython doxygen
    
  5. Install an installation helper

    Checkinstall creates a debian package so the software is managed by the package manager.

    sudo apt-get install checkinstall
    
  6. Configure and build

    ./autogen.sh
    make
    
  7. Install

    With the command below, a deb package with the name libimobiledevice will be created and installed.

    sudo checkinstall
    

    You will see this warning:

    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: [  ]
    

    Simply press 3 and type 1.2.1 and Enter

    Enter a number to change any of them or press ENTER to continue: 3
    Enter new version: 
    >> 1.2.1
    
  8. Check the installed files

    dpkg -L libimobiledevice
    

    and you will see something like this

    /.
    /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
    
  • This answer worked for me, thanks. – Kenny806 Oct 8 '15 at 13:29
  • Are you able to mount the "Documents of..." folder again? Does is work with ios 9 / 10? – Weidenrinde Oct 19 '16 at 22:20

This is what I did to build libimobiledevice-1.2.0:

  1. Install build tools and dependencies

    sudo apt-get install build-essential fakeroot devscripts pbuilder
    sudo apt-get build-dep libimobiledevice
    
  2. Download the source and Debian build scripts of the currently packaged version (1.1.5 on Ubuntu 14.04):

    apt-get source libimobiledevice
    cd libimobiledevice-1.1.5
    
  3. Scan for and download new upstream version:

    uscan --verbose
    
  4. Unpack it, put the Debian build scripts in place and update the change log:

    uupdate ../libimobiledevice_1.2.0.orig.tar.bz2
    cd ../libimobiledevice-1.2.0
    
  5. Build the binary package (in parallel with as many workers as available CPU cores):

    debuild -b -j$(getconf _NPROCESSORS_ONLN)
    

    (-j instructs the build system to run individual build tasks in parallel, if possible. Since this sometimes leads to problems, it may be worthwhile to try to re-run the build without that flag or to drop it in the first place.)

  6. Install the built package:

    sudo dpkg -i ../libimobiledevice_1.2.0*.deb
    

Actually I cheated a bit. I couldn't satisfy the build dependencies, because a library isn't available in sufficiently recent versions in Ubuntu 14.04: libimobiledevice-1.2.0 requires libusbmuxd-dev (>= 1.0.9), so you'll have to build it from source first with the same recipe.

  • 1
    While trying to build the upgraded libusbmux-d, after adding some dependencies, I ran into: dh_auto_configure -- -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_SKIP_RPATH=true -DLIB_SUFFIX= -DUSB_PKGCONF_INCLUDE_DIRS="/usr/include/libusb-1.0" configure: error: unrecognized option: `-DCMAKE_INSTALL_PREFIX=/usr' Any idea? Is there some chance that you (or others) will post the result of you efforts in a ppa? – Weidenrinde May 29 '15 at 19:34
  • Please open a new question for your issue. You can send me a link through this comment sections to draw my attention to it. As a quick idea, consult the output of ./configure --help for a list of available options. – David Foerster May 29 '15 at 21:03
  • 1
    Actually, someone else did this, because they run into the same problem... askubuntu.com/questions/616501/… – Weidenrinde May 30 '15 at 16:18
  • 1
    I have the same problem on Ubuntu 15.04. Did you get a solution? – Code-Source Jun 17 '15 at 8:39
  • 1
    To install libusbmuxd-dev (>= 1.0.9) you can download the *.deb here and install it with sudo dpkg -i – Michele Jul 1 '15 at 16:31

OK, this is what worked for me.

The order is:

libplist -> libusbmuxd -> libimobiledevice -> usbmuxd, ifuse, ideviceinstaller, ...

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

In checkinstall prompt:

> y[ENTER]
> [ENTER]
> 3[ENTER]
> 1.2.1[ENTER]
> [ENTER]

I use this PPA, it has latest libimobiledevice, but not all components are represented there: https://launchpad.net/~martin-salbaba/+archive/ubuntu/ppa+libimobiledevice

  • What components are missing? Those that enable viewing apps' shared documents? – NoBugs Oct 24 '15 at 0:26
  • @NoBugs yes, ifuse misses – yanpas Oct 24 '15 at 9:24
  • Does not work on 15.10. – Aleksandr Dubinsky Feb 13 '16 at 23:01

16.04 will have 1.2. I was able to download the debs from launchpad (https://launchpad.net/ubuntu/xenial/+source/libimobiledevice) and install them on 15.10. I needed libusbmuxd4, libimobiledevice6, and libimobiledevice-dev. Then I installed ifuse 1.1.3 by following these directions: https://askubuntu.com/a/691758

protected by Community Sep 23 '15 at 3:55

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.