Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I want to install a package on a computer running Ubuntu Precise.

However, the provider of the package only "supports" Ubuntu up till Lucid. Newer versions are probably supported as well, but they stopped updating the repository. The newest repository available is

deb http://appscale.cs.ucsb.edu/appscale_packages lucid stable

If I try to install the package from that repository I get this error, probably because of version issues:

$ sudo apt-get install appscale-core
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 appscale-core : Depends: sun-java6-jdk but it is not installable
                 Depends: libboost-filesystem1.40.0 but it is not installable
                 Depends: libboost-serialization1.40.0 but it is not installable
                 Depends: libboost-thread1.40.0 but it is not installable
                 Depends: libboost-program-options1.40.0 but it is not installable
                 Depends: libboost-iostreams1.40.0 but it is not installable
                 Depends: libboost-python1.40.0 but it is not installable
E: Unable to correct problems, you have held broken packages.

My system is fully updated and upgraded, so I doubt that I indeed have broken packages.

I've been in this situation before, that I had a repository that only existed up to some version lower than the current (LTS) version.

Is there a general way for resolving this?

share|improve this question
    
possible duplicate of How do I resolve unmet dependencies? –  Achu Nov 16 '12 at 13:24
    
@achu ok it is a duplicate but the answer is not. Since it is an error the answer can be specific for this package. So yes you are correct but I would not mind letting it stay open. –  Rinzwind Nov 16 '12 at 13:40
add comment

3 Answers 3

You add

deb http://appscale.cs.ucsb.edu/appscale_packages lucid stable

to your resources but where do you expect your system to find the dependencies?

The package inside that PPA require you to install

sun-java6-jdk 
libboost-filesystem1.40.0  this yeilds dependencies for:
    libboost-system1.40.0 (>= 1.40.0-1) 
    libc6 (>= 2.3.6-6~) 
    libgcc1 (>= 1:4.1.1)
    libstdc++6 (>= 4.1.1) 
libboost-serialization1.40.0 
libboost-thread1.40.0 
libboost-program-options1.40.0
libboost-iostreams1.40.0 
libboost-python1.40.0 

but apt-get can not find these packages since we moved to newer version of these packages they have not been available since Lucid.

The suggested installation method from the appscale wiki is:

tar xzvf appscale-tools.tar.gz
cd appscale-tools
sudo bash debian/appscale_build.sh

See if this works.

share|improve this answer
add comment

The problem is that the package you are trying to install is old and their dependencies cannot be satisfied. Probably because the libraries you have installed in your system are more up to date than the ones the package needs, or they are not available anymore (like sun-java6-jdk).

I guess you have three options here:

  • Try the manual installation using the .tar.gz provided here;
  • Using gem to install it (gem is something like an apt-get for ruby). I don't know if this installs what you need or just some management tools/libraries, but you can try it:

    sudo gem install appscale-tools
    
  • Install that package in a Ubuntu Lucid system, which you can have in your current system using virtualization (ex: VirtualBox, LXC, or even a chroot may work)

Hope this helps.

share|improve this answer
add comment

The problem in this case is not your packages are broken, but that the package you are trying to install apparently is designed to work with older versions of packages than are available in precise.

It is possible to install an old .deb file, ignoring dependency errors with sudo dpkg --ignore-depends -i package.deb. However, chances are this will not work - if the package includes any binary files the library versions they require at runtime (starting from glibc and working upwards) will be incorrect, or configuration files will be in the wrong place. Basically, you're in for a world of pain and it breaks the point of apt which is meant to ensure all your packages are mutually compatible.

However, if you're feeling bloodyminded openjdk-6-jdk should be a drop-in replacement for sun java, and you can try installing the current version of libboost and making symlinks to fake having an older version installed. I would try and find an up-to-date package or build it from source.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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