LINUX - download .deb packages from another architecture

LINUX - download .deb packages from another architecture
#########################################################

FIRST READ THIS: https://wiki.debian.org/Multiarch/HOWTO

You can download arm packages from an intel computer (likewise any other type of architecture supported by the repositories, this example is for downloading arm packages with debian machine)

First add the architecture

dpkg --add-architecture armel

(you will notice that if you do "dpkg --print-architecture" and "dpkg --print-foreign-architecture" you will see armel in foreign, the system knows what its main architecture is, so this is not a dangerous command)

apt-get update

apt-get download PACKAGENAME:armel

---

Other ways to pull the link or download:
apt-get install --reinstall --print-uris -qq PACKAGENAME:armel
That will produce link of the PACKAGE and every dependency (usually lists only dependencies that are not matched, however since this is an armel package on intel/amd64 every dep will fail so it will list every)
The normal version of this is:
apt-get install --reinstall --print-uris -qq PACKAGENAME

Also note about:
apt-get -o APT::Architecture="armel" download PACKAGE

Aptitude has its ways to:
sudo aptitude -o APT::Architecture="armel" update
aptitude -o APT::Architecture="armel" download PACKAGENAME

---

Note: "apt-get download PACKAGENAME" still gets the amd64 version, also regular apt-get commands also still get only the amd64. No armel files will install as their dependencies will be unmet, so this is a safe procedure for the purpose of downloading arm packages on a none arm system

Get whatever else you need remember to tag on :armel to get arm unit files

Dont forget to remove the architecture when your done:

dpkg  --remove-architecture armel
apt-get update

-----------------


DONT FORGET THESE NIFTY COMMANDS:

These list every matching package from every repo (in sources.list) and gives info bout em.

apt-cache --no-all-versions show PACKAGENAME | grep ^Filename
shows URL but without the leading server information. Server information can be obtained from:

apt-cache --no-all-versions policy PACKAGENAME | 
    grep -A2 '^  [^ ]' | tail -1 | awk '{ print $2 }'

Comments