Search:

PmWiki

pmwiki.org

edit SideBar

Main / Dpkg

You can find a package's dependencies here: https://packages.debian.org/jessie/all/

Install a package, which comes as a .deb file, with the command dpkg -i <name.deb>

If you want to know if a package is installed, do a dpkg -l <name> while dpkg -l lists everything (more comprehensive that apt list --installed).

The deb-src lines are just for source for compiling packages.

Cross-compiling

On Ubuntu, the host machine libraries are in /usr/lib/x86_64-linux-gnu/. armhf as an example, lives in /usr/lib/arm-linux-gnueabihf/. So you can tell what's missing for ARM if you compare the two. Doing a package-specific apt installation for ARM doesn't work in my experience, although it's supposed to. The instructions that exist for the process (in 2017) are missing pieces or outdated. As near as I can tell, here is what you need to add to /etc/apt/sources.list to give a package download source:

deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports xenial main

You can get the libs you need by downloading the .deb for the desired architecture, then running dpkg --unpack <debfile> and this will stick the libs in the correct location.

Another good source for CC toolchains: https://packages.ubuntu.com/artful/amd64/gcc-7-arm-linux-gnueabi/download

What's the diff between dpkg install and unpack?

Install is a several-step process that includes unpacking and configuring. It also removes old versions of the package and executes pre and post install scripts. Unpack appears to simply place the library in the right location.

Explain ARM architectures

armel is the older architecture that they phased out around 2012-ish shortly after introducing armhf for Ubuntu 12.04. "From raring on you should expect your packages to build for armhf only, not armel."

Troubleshooting

If you get broken packages complaint like

E: Unable to correct problems, you have held broken packages.

Try adding the -updates version of the repo for the target distribution, like

deb [arch=armel,armhf] http://ports.ubuntu.com/ubuntu-ports trusty-updates main universe

Per https://unix.stackexchange.com/questions/329165/installing-libudev-for-arm-on-x64-ubuntu

Aptitude, apt, dpkg commands

aptitude is different from apt

apt-cache search
dpkg -l
aptitude search armhf
apt-cache rdepends packagename

This appears to be the magic key that no one would give up, for /etc/apt/sources.list:

# Add PORTS repository to resolve TK1 errors in 'apt' by pointing
# to the proper packages for ARM hard-float architectures.
deb [arch=armhf] http://ports.ubuntu.com/ trusty main universe
#deb-src [arch=armhf] http://ports.ubuntu.com/ trusty main universe

Page last modified on October 04, 2023, at 04:49 PM