0

In brief, the problem I seem to be having is that apt-get "ignores" whatever PPA I add. I assume that this is because the respective PPA's limit their debs to i386 and AMD64 builds. (I'm using armhf.) This causes a problem though. I'd like to use "apt-get source -b" to build the respective debs. However, even when enabling the PPA's deb-src repository, apt-cache policy still doesn't "find" the respective packages. I'm forced to download the packages, configure/make/checkinstall.

Am I correct in thinking I should be able to compile these packages on arm via "apt-get source -b"? If so, how do I force ubuntu to load these repositories? That is, how do I stop apt-get from "IGN"oring these PPAs?

  • Have you tried adding either i386 or amd64 as foreign architectures? The packages might show up then. Those "Ign" don't mean what you think they mean. When apt sees that a package list hasn't been updated, it ignores it, instead of wasting bandwidth downloading it again. – muru Jul 5 '14 at 16:41
  • Oops. My bad. Ign means there was am error: superuser.com/a/454874/334516 I still think the best bet is adding a foreign architecture using dpkg. – muru Jul 5 '14 at 16:48
  • Thanks Muru, I've just been researching this option. What I'm still researching is how, in the process of using apt-get to compile from a source file, one can make sure any dependencies are drawn from the right repository (not amd64 or i386). I suppose the brute force method might be to remove the "arch" setting once the source file has been downloaded? – user47108 Jul 5 '14 at 17:16
  • The other brute force method would be getting the build-depends package list and specifying the architecture (package:arch). – muru Jul 5 '14 at 17:23
1

Okay, I've tried this method and it works. :-) For the next person who stumbles on this:

sudo add-apt-repository ppa:(name of PPA)
sudo dpkg --add-architecture amd64
sudo apt-get update
apt-cache policy (package name) #Just to make sure it's there 
sudo apt-get source -b (package name) 
sudo dpkg --remove-architecture amd64 #Do this whether the package compiles correctly or not
sudo apt-get update

At this point, if the package didn't compile due to missing dependencies, it's safe to install them (that is, there's no chance they will be drawn from the wrong architecture/repository). They shouldn't anyway, but this is insurance.

sudo apt-get source -b (package name) #if necessary

Once you've successfully compiled, look for the armhf deb file in your current directory (the folder you've been working in) and: sudo dpkg -i (package name).deb.

So... there may be a more elegant way to accomplish this, but I leave that to more knowledgeable users.

Note: Packages installed this way will not update automatically. You will have to remove the original package, compile the updated package yourself, and re-install. As long as you don't purge the original installation, all of your preferences should be retained.

  • You could also ask the PPA maintainer if he/she would consider requesting armhf builds. The requirements are on this page. – saiarcot895 Jul 7 '14 at 20:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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