Sample Header Ad - 728x90

Unix & Linux Stack Exchange

Q&A for users of Linux, FreeBSD and other Unix-like operating systems

Latest Questions

5 votes
2 answers
2060 views
How to convince APT that a cross-arch package is installed manually?
I have a qemu-armhf chroot environment on an amd64 machine (it's mainly for compiling Raspberry Pi code). As such it can run both armhf and amd64 binaries but it's faster doing the latter. There are certain packages (such as make) where I've installed the amd64 version inside the chroot in order to...
I have a qemu-armhf chroot environment on an amd64 machine (it's mainly for compiling Raspberry Pi code). As such it can run both armhf and amd64 binaries but it's faster doing the latter. There are certain packages (such as make) where I've installed the amd64 version inside the chroot in order to get better speed. That works well up until I need to apt-get some other armhf package and it happens to have make listed as a dependency, whereupon I get this: The following packages have unmet dependencies: build-essential : Depends: make but it is not going to be installed dpkg-dev : Depends: make but it is not going to be installed E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). If I try the suggested command, then it says it wants to install make:armhf and uninstall make:amd64. I don't want it to do that. How do I tell APT that make:armhf is already installed (because I want it to use make:amd64 to satisfy dependencies) without actually installing it? I've tried using apt-mark manual make but it says that it is not installed. ---- I know this probably isn't the right way to do it, but I've been looking at the /var/lib/dpkg/status file to try to work out how it thinks the package definitions work and to try to trick it into agreeing that make:amd64 satisfies make:armhf as well. In particular I noticed that "libbz2-1.0" is a package that's listed as installed twice; once as: Architecture: armhf Multi-Arch: same Pre-Depends: multiarch-support and once as: Architecture: amd64 Multi-Arch: foreign Pre-Depends: multiarch-support So I tried duplicating the entries for "make" similarly, setting all of those values above. But now APT's just saying that "make" and "make:amd64" are conflicted. Why is it a conflict when make does it but not when libbz2-1.0 does it? (I hope it's not special-casing libraries; that seems like it should be a bug.) ---- Per [this answer](https://unix.stackexchange.com/a/149799/78162) , I tried building a dummy package with equivs and installing that (after removing my manual fiddling above), but installing it produces these errors: # dpkg -i /var/cache/apt/archives/make_3.81-8.2_amd64.deb (real amd64 make) # dpkg -i make_3.81-8.2_armhf.deb (fake armhf depends on the above) Preparing to replace make 3.81-8.2 (using make_3.81-8.2_armhf.deb) ... Unpacking replacement make ... dpkg: dependency problems prevent configuration of make: make depends on make:amd64 (= 3.81-8.2). So again the problem looks like it thinks make:armhf is a *replacement* for make:amd64, and I don't know how to tell it that I want these two packages to coexist. (It doesn't seem to have a problem with the idea of two libbz2 packages coexisting, for example.)
Miral (369 rep)
Aug 11, 2014, 07:57 AM • Last activity: Jul 4, 2025, 02:07 PM
0 votes
1 answers
136 views
Fetch packages (and dependencies) using only the specified APT mirror
I am trying to fetch some .debs that I can install in an airgapped machine (which is also a different architecture). My idea is to pass some configuration options to `apt` so that it will only look at the specified mirrors (and avoid messing up the system I'm running this on). ```bash LLVM_GPG_PATH=...
I am trying to fetch some .debs that I can install in an airgapped machine (which is also a different architecture). My idea is to pass some configuration options to apt so that it will only look at the specified mirrors (and avoid messing up the system I'm running this on).
LLVM_GPG_PATH=/tmp/llvm.gpg
curl -fsSL "https://apt.llvm.org/llvm-snapshot.gpg.key " | gpg --dearmor -o ${LLVM_GPG_PATH}

DEBIAN_GPG_PATH=/tmp/debian.gpg
curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x80d15823b7fd1561f9f7bcdddc30d7c23cbbabee " | gpg --dearmor -o ${DEBIAN_GPG_PATH}

cat > /tmp/sources.list << EOF
deb [signed-by=${DEBIAN_GPG_PATH}] http://deb.debian.org/debian  buster main
deb [signed-by=${LLVM_GPG_PATH}] http://apt.llvm.org/buster/  llvm-toolchain-buster-18 main
EOF

apt update --option "Dir::State=/tmp/apt/"\
           --option "Dir::Etc::sourcelist=${STAGING_DIRECTORY}/apt/sources.list"\
           --option "APT::Architecture=arm64"\
           --option "APT::Architectures=arm64"

# Eventually do something like this:
# apt install --option "Dir::Etc::sourcelist=/tmp/sources.list"\
#             --option "Dir::Cache=/tmp/cache/"
#             --option "Dir::Cache::archives=/tmp/archives/"
#             --download-only
#             libc++-18-dev:arm64
When I run something like this, the apt update step prints out updates from the repos I added but also many others.
Hit:1 http://deb.debian.org/debian  buster InRelease
Hit:2 https://apt.llvm.org/buster  llvm-toolchain-buster-18 InRelease                                                             
Get:3 http://security.ubuntu.com/ubuntu  noble-security InRelease [126 kB]                                  
Get:4 http://archive.ubuntu.com/ubuntu  noble InRelease [256 kB]
Ign:5 http://security.ubuntu.com/ubuntu  noble-security/main arm64 Packages
Ign:6 http://security.ubuntu.com/ubuntu  noble-security/multiverse arm64 Packages
Ign:7 http://security.ubuntu.com/ubuntu  noble-security/universe arm64 Packages
...
How can I stop that? (Side question, is there an easier way to do this?)
digitalPhonix (3 rep)
Jul 19, 2024, 09:20 PM • Last activity: Aug 12, 2024, 10:16 AM
0 votes
1 answers
2876 views
Installing libpng12 64-bit on Debian 12 (bookworm) 64-bit gives a multiarch-support pre-dependency error when installing Stata 16
I'm trying to install [Stata 16](https://www.stata.com/) on Debian 12 "bookworm". Stata requires `libpng12`, and unfortunately, the `libpng` in the repositories (version 16) doesn't fulfill the dependency. I've downloaded the libpng12 deb package, but when I try to install it, I get this error messa...
I'm trying to install [Stata 16](https://www.stata.com/) on Debian 12 "bookworm". Stata requires libpng12, and unfortunately, the libpng in the repositories (version 16) doesn't fulfill the dependency. I've downloaded the libpng12 deb package, but when I try to install it, I get this error message about multiarch support
dpkg: regarding libpng12-0_1.2.50-2+deb8u3_amd64.deb containing libpng12-0:amd64, pre-dependency problem:
 libpng12-0 pre-depends on multiarch-support
  multiarch-support is not installed.

dpkg: error processing archive libpng12-0_1.2.50-2+deb8u3_amd64.deb (--install):
 pre-dependency problem - not installing libpng12-0:amd64
Errors were encountered while processing:
 libpng12-0_1.2.50-2+deb8u3_amd64.deb
Both my OS and the package are 64-bit, so I'm not sure why multiarch-support is needed here. I ran dpkg --print-architecture and it says amd64. I thought the current version of dpkg [already had multiarch support](https://wiki.debian.org/Multiarch/HOWTO) . How do I get this package installed?
Michael A (1713 rep)
Nov 9, 2023, 03:30 PM • Last activity: Nov 9, 2023, 03:59 PM
14 votes
1 answers
9573 views
ERROR: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")
using docker command `buildx build --platform=linux/arm64,linux/amd64` after latest updates may cause error: `ERROR: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")`
using docker command buildx build --platform=linux/arm64,linux/amd64 after latest updates may cause error: ERROR: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")
Stremovskyy (611 rep)
Jun 12, 2023, 09:53 AM • Last activity: Jun 12, 2023, 09:59 AM
1 votes
1 answers
10711 views
Cannot run 32-bit executable on 64-bit system with multi-arch support
I compiled a 32-bit executable for a Linux machine. It runs on most Linux distros without trouble. However, on Ubuntu 16.04 LTS, I get the `No such file or directory` error when trying to execute it. The executable is present in the directory and has all the relevant permissions set. There are a few...
I compiled a 32-bit executable for a Linux machine. It runs on most Linux distros without trouble. However, on Ubuntu 16.04 LTS, I get the No such file or directory error when trying to execute it. The executable is present in the directory and has all the relevant permissions set. There are a few answers detailing a solution to this (like here ). So, I did: 1. dpkg --print-architecture prints amd64. 2. dpkg --print-foreign-architectures prints i386. Even with multi-arch enabled by default, I am unable to get the executable to work. What else do I need to install/do in order to get this executable to work? P.S: The system does not have ia32-libs installed.
Sriram (413 rep)
May 11, 2016, 05:37 AM • Last activity: Feb 14, 2023, 02:55 PM
0 votes
0 answers
1397 views
enabling i386 arch on amd64 Debian Buster and installing libc6:i386 tries to replace the entire os
Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye I'd like to install `libc6:i386` to support an old proprietary printer driver. I've performed the following: dpkg --add-architecture i386 apt update When I attempt to install `libc6:i386` via apt instal...
Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye I'd like to install libc6:i386 to support an old proprietary printer driver. I've performed the following: dpkg --add-architecture i386 apt update When I attempt to install libc6:i386 via apt install libc6:i386 I am presented with a message indicating that most of the existing packages, including essential packages will be removed. Reading package lists... Done Building dependency tree... Done Reading state information... Done The following packages were automatically installed and are no longer required: [ seemingly all of the automatically installed packages on my system] Use 'apt autoremove' to remove them. The following additional packages will be installed: gcc-10-base:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386 libunistring2:i386 Suggested packages: glibc-doc:i386 debconf:i386 | debconf-2.0:i386 locales:i386 Recommended packages: libnss-nis:i386 libnss-nisplus:i386 The following packages will be REMOVED: [ seemingly all of remaining packages, including X, etc ] The following NEW packages will be installed: gcc-10-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386 libunistring2:i386 WARNING: The following essential packages will be removed. This should NOT be done unless you know exactly what you are doing! apt adduser (due to apt) gpgv (due to apt) libapt-pkg6.0 (due to apt) libc6 (due to apt) libgcc-s1 (due to apt) libgnutls30 (due to apt) libseccomp2 (due to apt) libstdc++6 (due to apt) libsystemd0 (due to apt) base-files base-passwd libdebconfclient0 (due to base-passwd) bash libtinfo6 (due to bash) debianutils (due to bash) bsdutils coreutils libacl1 (due to coreutils) libattr1 (due to coreutils) libgmp10 (due to coreutils) libselinux1 (due to coreutils) dash dpkg (due to dash) debconf (due to dash) diffutils libbz2-1.0 (due to dpkg) liblzma5 (due to dpkg) zlib1g (due to dpkg) tar (due to dpkg) e2fsprogs libblkid1 (due to e2fsprogs) libcom-err2 (due to e2fsprogs) libext2fs2 (due to e2fsprogs) libss2 (due to e2fsprogs) libuuid1 (due to e2fsprogs) logsave (due to e2fsprogs) findutils grep libpcre3 (due to grep) install-info (due to grep) gzip hostname init systemd-sysv (due to init) init-system-helpers (due to init) perl-base (due to init-system-helpers) libc-bin libcrypt1 login libaudit1 (due to login) libpam0g (due to login) libpam-runtime (due to login) libpam-modules (due to login) ncurses-bin sed sysvinit-utils util-linux libcap-ng0 (due to util-linux) libmount1 (due to util-linux) libsmartcols1 (due to util-linux) libudev1 (due to util-linux) 0 upgraded, 6 newly installed, 2746 to remove and 1 not upgraded. Need to get 3,579 kB of archives. After this operation, 13.7 GB disk space will be freed. You are about to do something potentially harmful. To continue type in the phrase 'Yes, do as I say!' Here are my source repositories: deb http://deb.debian.org/debian/ bullseye main non-free contrib deb http://security.debian.org/debian-security bullseye-security main non-free contrib deb http://deb.debian.org/debian/ bullseye-updates main non-free contrib deb [arch=amd64] http://http.debian.net/debian bullseye-backports main non-free contrib deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main deb [arch=amd64] https://xpra.org/ bullseye main Any idea on what might be causing this? **EDIT 1:** The system is up-to-date prior to adding the architecture, e.g. # apt upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Directly after adding the new architecture and running apt update, an apt upgrade returns this: # apt upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following packages have been kept back: gnupg gnupg-l10n 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. which seems to indicate there's already an issue prior to attempting to install libc
Diab Jerius (123 rep)
Mar 28, 2022, 03:57 PM • Last activity: Mar 28, 2022, 06:11 PM
4 votes
1 answers
1567 views
Kernel architecture vs OS architecture
What is the difference between the kernel architecture and the OS architecture? Which of these is relevant when trying to figure out which architecture to compile binaries for? From what I have read, it is possible to install a 64 bit kernel despite using a 32 bit OS in some distributions. What does...
What is the difference between the kernel architecture and the OS architecture? Which of these is relevant when trying to figure out which architecture to compile binaries for? From what I have read, it is possible to install a 64 bit kernel despite using a 32 bit OS in some distributions. What does uname -i print, the kernel architecture or the OS architecture? What about dpkg --print-architecture and arch?
just.kidding (159 rep)
Nov 18, 2017, 02:20 PM • Last activity: Apr 10, 2020, 02:52 PM
2 votes
1 answers
2814 views
How to check if my ARM64 board supports 32 bit binary compilation? (error: unrecognized command line option ‘-m32’)
I have a ARM virtual machine on AWS with Ubuntu18.04 installed. dpkg & uname commands show this, $ dpkg --print-architecture arm64 $ uname -m aarch64 I've got a third-party precompiled static library (.a) built for 32-bit. I understand that I cannot link 32-bit library to a 64-bit application, so I'...
I have a ARM virtual machine on AWS with Ubuntu18.04 installed. dpkg & uname commands show this, $ dpkg --print-architecture arm64 $ uname -m aarch64 I've got a third-party precompiled static library (.a) built for 32-bit. I understand that I cannot link 32-bit library to a 64-bit application, so I've created a new application which will link the library and get compiled for 32-bit. This application will communicate with rest of the applications (64-bit) using some IPC mechanism. To compile this application I've added following flag in my cmake file, set (CMAKE_CXX_FLAGS "-m32") but the compiler throw this error, c++: error: unrecognized command line option ‘-m32’ c++ version on my machine is, $ c++ -v Using built-in specs. COLLECT_GCC=c++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper Target: aarch64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu Thread model: posix gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) It shows that it is prepared with configuration option ***--enable-multiarch*** which I suppose should allow me to compile for different architecture (32-bit ARM). On one of the other thread on stackoverflow says that some ARM64 machine's hardware may not support compilation of 32-bit applications. My question is how to check if my ARM64 machine is capable of building 32-bit application? And if it is capable of building then what is the alternative to ***-m32*** flag?
nik (41 rep)
Jan 9, 2020, 07:25 AM • Last activity: Jan 19, 2020, 01:29 PM
2 votes
1 answers
2998 views
Building mips package on amd64: Exec format error chroot: failed to run command 'mount'
I'm trying to cross-build a Debian/Ubuntu package on a running amd64 system to mips arch. I've tried several methods, from pubilder to sbuild, but I keep failing. About the latter, on a freshly installed Debian 9 I do: ```bash apt-get -y install sbuild sbuild-createchroot --arch=mips --make-sbuild-t...
I'm trying to cross-build a Debian/Ubuntu package on a running amd64 system to mips arch. I've tried several methods, from pubilder to sbuild, but I keep failing. About the latter, on a freshly installed Debian 9 I do:
apt-get -y install sbuild
sbuild-createchroot --arch=mips --make-sbuild-tarball=/srv/chroots/wheezy-sbuild.tgz wheezy /srv/chroots/wheezy http://archive.debian.org/debian/ 
But in the end I get:
W: Failure trying to run: chroot /srv/chroots/wheezy dpkg-deb -f /var/cache/apt/archives/dpkg_1.16.18_mips.deb Version
W: See /srv/chroots/wheezy/debootstrap/debootstrap.log for details
W: Failure trying to run: chroot /srv/chroots/wheezy mount -t proc proc /proc
W: See /srv/chroots/wheezy/debootstrap/debootstrap.log for details
E: Error running debootstrap at /usr/sbin/sbuild-createchroot line 268.
and the log contains:
chroot: failed to run command 'dpkg-deb': Exec format error
chroot: failed to run command 'mount': Exec format error
All the methods I tried end up with that *Exec format error* while trying different commands.
Maxxer (143 rep)
May 15, 2019, 07:58 PM • Last activity: May 17, 2019, 11:51 AM
3 votes
1 answers
1507 views
APT version conflicts across different architectures even with Multi-Arch: same?
With Raspbian and a 64-bit kernel, I am fetching packages from the following sources: deb [arch=armhf] http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi deb http://deb.debian.org/debian stretch main contrib non-free deb http://deb.debian.org/debian stretch-updates main cont...
With Raspbian and a 64-bit kernel, I am fetching packages from the following sources: deb [arch=armhf] http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi deb http://deb.debian.org/debian stretch main contrib non-free deb http://deb.debian.org/debian stretch-updates main contrib non-free Attempting to install the minimal dependencies to run something like gzip:arm64 reports conflicts such as: libgcc1 : Breaks: libgcc1:arm64 (!= 1:6.3.0-18+rpi1+deb9u1) but 1:6.3.0-18+deb9u1 is to be installed gcc-6-base:arm64 : Breaks: gcc-6-base (!= 6.3.0-18+deb9u1) but 6.3.0-18+rpi1+deb9u1 is to be installed It looks like the "+rpi1" *armhf* packages are conflicting with the non-rpi1 *arm64* packages. But that would mean that it's comparing package **versions** across two different architectures! Error messages with apt-get can be misleading anyhow, so to bring my system into a state similar to bamarni's Debian Pi64 (where multiarch works), I can try downloading some non-rpi1 armhf packages from links such as https://packages.debian.org/stretch/armhf/libgcc1/download Once I replace libgcc1:armhf, gcc-6-base:armhf, libc6:armhf, libatomic1:armhf and others, basic conflicts go away and I can install libgcc1:arm64 gcc-6-base:arm64 libc6:arm64 via apt. However, this isn't a great solution because in the process I have likely lost ARMv6 compatibility and other Raspbian-specific modifications. And the above could still mean there's something else fishy hiding in the Raspbian packages. My next test is to use the Raspbian *.deb files, except with a script I repackage them to remove the +rpi1 part of the version text in each control file. Once I do this and reinstall those packages, the conflicts with arm64 packages go away. This again indicates that APT is comparing package versions across two different architectures. When I run apt-cache show on any of these they all say Multi-Arch: same with their correct corresponding Architecture: lines. As I understand things, it would only care about versions across different architectures in the cases of Multi-Arch: foreign or Multi-Arch: allowed. What's going on here? It seems like APT is comparing package versions across different architectures when it shouldn't, which leads to bogus conflicts. I wonder if the fact that multiarch works okay on bamarni's Pi64 or Ubuntu MATE--or most i386+x86_64 systems--is in part luck that these systems have generally consistent package versions across 32-bit and 64-bit.
jdonald (243 rep)
Nov 15, 2018, 01:49 AM • Last activity: Nov 15, 2018, 09:29 AM
10 votes
2 answers
4762 views
What does it take to run 64-bit userland software on a 32-bit kernel?
On Linux and Windows, I'm used to the situation that I require a 64-bit kernel to have a system with multiarch/WoW where I can run 32-bit and 64-bit software side-by-side. And then, years ago it blew my mind when someone showed me that MacOS 10.6 Snow Leopard could run 64-bit applications with the k...
On Linux and Windows, I'm used to the situation that I require a 64-bit kernel to have a system with multiarch/WoW where I can run 32-bit and 64-bit software side-by-side. And then, years ago it blew my mind when someone showed me that MacOS 10.6 Snow Leopard could run 64-bit applications with the kernel in 32-bit mode. This may be largely forgotten now because it was a one-time technology transition. With the hardware ahead of the curve in the mobile space, as far as I know this was never needed in the move to 64-bit for iOS and Android. My question: What would it take to get the same capability in a 32-bit Linux kernel (i386 or armhf)? I understand that this probably isn't trivial. If it was, Microsoft could have put the feature into Windows XP 32-bit. What are the general requirements though? Has there ever been a proposed patch or proof-of-concept? In the embedded world I think this would be especially helpful, as 64-bit support can lag behind for a long time in device drivers.
jdonald (243 rep)
Nov 13, 2018, 05:09 AM • Last activity: Nov 13, 2018, 05:16 PM
3 votes
2 answers
1561 views
Set up environment for cross-compilation to i386, armel, armhf, arm64 and mips with no libglib2 conflicts
I'm trying to set up a build environment for a software package in Debian Jessie. I need to produce amd64, i386 and eventually armel and armhf binaries of the software. It would be cool if I could cross-compile it to ALL of the architectures supported by Debian, which are a lot more than that, but t...
I'm trying to set up a build environment for a software package in Debian Jessie. I need to produce amd64, i386 and eventually armel and armhf binaries of the software. It would be cool if I could cross-compile it to ALL of the architectures supported by Debian, which are a lot more than that, but those 4 are the ones I particularly care about. I started with amd64 Debian Jessie and added i386 multiarch. It all worked well until I had to install libpulse-dev, which is a dependency of the software. When installing it, I got >The following packages have unmet dependencies: libpulse-dev : Depends: libglib2.0-dev but it is not going to be installed with apt-get and >The following packages have unmet dependencies: libglib2.0-dev : Conflicts: libglib2.0-dev:i386 but 2.42.1-1 is installed. with aptitude. It looks like libglib2:amd64 and libglib2:i386 conflict — they can't be installed at the same time. Someone on #debian at Freenode told me that it's a well-known limitation of multiarch. I have to have that package installed in order to make i386 builds. I'm thinking of removing i386 multiarch, since it doesn't work, and setting up i386 chroot and building the i386 version of the software inside that chroot. That chroot solution should work for i386, but it doesn't work for when I will be producing binaries for armel, armhf, arm64, mips and all others architectures — I won't be able to make those builds in armel, armhf, arm64, mips, etc. chroots since I can't run arm and mips executables on my processor. How can I produce builds of the software that target amd64, i386, armel, armhf, arm64 and mips architectures on the same Debian Jessie system in a consistent manner (i.e. all builds are done the same way, not "builds for one architecture use chroot, but builds for other architectures use multiarch") without getting libglib2 conflicts like I do when using multiarch?
Zorro-One (31 rep)
Aug 5, 2015, 03:06 AM • Last activity: Sep 2, 2018, 09:27 PM
6 votes
1 answers
5782 views
Multilib and Multiarch
**Multilib and Multiarch:** Are these two term just synonym ? If no, how they differ ? If I want to run 32-bit and 64-bit application in same system then shall I call it *Multiarch or Multilib ?*
**Multilib and Multiarch:** Are these two term just synonym ? If no, how they differ ? If I want to run 32-bit and 64-bit application in same system then shall I call it *Multiarch or Multilib ?*
SHW (15376 rep)
Jul 24, 2018, 05:48 AM • Last activity: Jul 24, 2018, 06:34 AM
0 votes
1 answers
193 views
Single Linux install bootable on multiple architectures
So it would be a single installation, sharing user data, config files, programs, etc., but I could take the boot drive and plug it into an x86 machine and it would boot and then later continue my work on an ARM machine and it would boot. This could be implemented, for example, by having multiple cop...
So it would be a single installation, sharing user data, config files, programs, etc., but I could take the boot drive and plug it into an x86 machine and it would boot and then later continue my work on an ARM machine and it would boot. This could be implemented, for example, by having multiple copies of every binary, each compiled for different architectures, connected by symlinks. Is this possible? Do any distros do this?
Gooberpatrol66 (417 rep)
May 23, 2018, 06:26 AM • Last activity: May 23, 2018, 11:18 AM
1 votes
1 answers
81 views
Filter by architecture for debtags search
I have [`multiarch`](https://wiki.debian.org/Multiarch/HOWTO) enabled, and when I run [`debtags search`](https://wiki.debian.org/Debtags), I get a lot of duplicate results. $ debtags search 'works-with-format::man' | head docbook-to-man - converter from DocBook SGML into roff man macros docbook-to-m...
I have [multiarch](https://wiki.debian.org/Multiarch/HOWTO) enabled, and when I run [debtags search](https://wiki.debian.org/Debtags) , I get a lot of duplicate results. $ debtags search 'works-with-format::man' | head docbook-to-man - converter from DocBook SGML into roff man macros docbook-to-man:i386 - converter from DocBook SGML into roff man macros docbook-utils - Convert DocBook files to other formats (HTML, RTF, PS, man, PDF) docbook2x - Converts DocBook/XML documents into man pages and TeXinfo docbook2x:i386 - Converts DocBook/XML documents into man pages and TeXinfo doclifter - Convert troff to DocBook dwww - Read all on-line documentation with a WWW browser dwww:i386 - Read all on-line documentation with a WWW browser ebook-speaker - eBook reader that reads aloud in a synthetic voice ebook-speaker:i386 - eBook reader that reads aloud in a synthetic voice There's a workaround using grep: $ debtags search 'works-with-format::man' | grep -v ':i386 - ' | head docbook-to-man - converter from DocBook SGML into roff man macros docbook-utils - Convert DocBook files to other formats (HTML, RTF, PS, man, PDF) docbook2x - Converts DocBook/XML documents into man pages and TeXinfo doclifter - Convert troff to DocBook dwww - Read all on-line documentation with a WWW browser ebook-speaker - eBook reader that reads aloud in a synthetic voice git-man - fast, scalable, distributed revision control system (manual pages) gman - small man(1) front-end for X gmanedit - GTK+ man pages editor gnulib - GNU Portability Library This assumes the string :i386 - does not appear in any package description, which is a bit of a hack. Is there a better way?
Nathaniel M. Beaver (1398 rep)
Mar 21, 2018, 06:19 PM • Last activity: Mar 24, 2018, 11:05 AM
5 votes
1 answers
39207 views
E: Unable to locate package libssl-dev when trying to download 32bit OpenSSL on 64bit system
I'm trying to compile multiarch project the right (means reproducible) way, so I decided to install all libraries through `apt-get`. But ever since the system noticed what I'm doing, it became hostile. While many people claim that you can install 32bit OpenSSL through this command: apt-get install l...
I'm trying to compile multiarch project the right (means reproducible) way, so I decided to install all libraries through apt-get. But ever since the system noticed what I'm doing, it became hostile. While many people claim that you can install 32bit OpenSSL through this command: apt-get install libssl-dev:i386 I ended up with this result: E: Unable to locate package libssl-dev I did apt-get update and my OS version is Debian GNU/Linux 8 (*Jessie*). Am I doing something wrong? I tried to check what i386 libraries are actually available: XXXXX@debianvirtualbox:~$ aptitude search i386 p debian-installer-8-netboot-i386 - Debian-installer network boot images for i386 v debian-installer-netboot-i386 - p installation-guide-i386 - Debian installation guide for i386 p installation-guide-kfreebsd-i386 - Debian installation guide for kFreeBSD i386 i libc6-dev-i386 - GNU C Library: 32-bit development libraries for AMD64 i A libc6-i386 - GNU C Library: 32-bit shared libraries for AMD64 v qemu-system-i386 -
Tom&#225;š Zato (1806 rep)
Sep 29, 2015, 02:01 PM • Last activity: Mar 9, 2018, 07:29 PM
4 votes
1 answers
1121 views
Why can't I install multiple both x86 and x86_64 versions of a library side by side?
Edited output: # apt-get install librados2:amd64 librados2:i386 The following packages have unmet dependencies: librados2:amd64 : Conflicts: librados2 but 0.80.7-2+deb8u1 is to be installed librados2 : Conflicts: librados2:amd64 but 0.80.7-2+deb8u1 is to be installed E: Unable to correct problems, y...
Edited output: # apt-get install librados2:amd64 librados2:i386 The following packages have unmet dependencies: librados2:amd64 : Conflicts: librados2 but 0.80.7-2+deb8u1 is to be installed librados2 : Conflicts: librados2:amd64 but 0.80.7-2+deb8u1 is to be installed E: Unable to correct problems, you have held broken packages. # apt-cache show librados2:amd64=0.80.7-2+deb8u1 librados2:i386=0.80.7-2+deb8u1 Package: librados2 Version: 0.80.7-2+deb8u1 Architecture: amd64 Replaces: libcrush, libcrush1, librados, librados1 Depends: libboost-system1.55.0, libboost-thread1.55.0, libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libnss3 (>= 2:3.13.4-2~) | libnss3-1d (>= 3.12.0~1.9b1), libstdc++6 (>= 4.9), libuuid1 (>= 2.16) Pre-Depends: multiarch-support Conflicts: libcrush, libcrush1, librados, librados1 Tag: role::shared-lib Section: libs Package: librados2 Version: 0.80.7-2+deb8u1 Architecture: i386 Replaces: libcrush, libcrush1, librados, librados1 Depends: libboost-system1.55.0, libboost-thread1.55.0, libc6 (>= 2.9), libgcc1 (>= 1:4.1.1), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libnss3 (>= 2:3.13.4-2~) | libnss3-1d (>= 3.12.0~1.9b1), libstdc++6 (>= 4.9), libuuid1 (>= 2.16) Pre-Depends: multiarch-support Conflicts: libcrush, libcrush1, librados, librados1 Tag: role::shared-lib Section: libs Why Conflicts:? I don't see this library in conflict list displayed by apt-cache info (there is librados**1**, not librados**2**)... What prevents having librados2:i386 in /usr/lib/i386-linux-gnu/librados.so.2.0.0 and librados2:amd64 in /usr/lib/x86_64-linux-gnu/librados.so.2.0.0?
Vi. (5985 rep)
Jul 6, 2016, 10:21 PM • Last activity: Nov 27, 2017, 04:16 PM
0 votes
1 answers
132 views
Adding Multiarch for kubuntu 14.4
I have this kind of system: :~$ dpkg --print-architecture amd64 :~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty When I try to sudo dpkg --add-architecture armhf sudo apt-get update I get the error messages W: Feh...
I have this kind of system: :~$ dpkg --print-architecture amd64 :~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty When I try to sudo dpkg --add-architecture armhf sudo apt-get update I get the error messages W: Fehlschlag beim Holen von http://security.ubuntu.com/ubuntu/dists/trusty-security/main/binary-armhf/Packages 404 Not Found [IP: 2001:67c:1560:8001::14 80] W: Fehlschlag beim Holen von http://security.ubuntu.com/ubuntu/dists/trusty-security/restricted/binary-armhf/Packages 404 Not Found [IP: 2001:67c:1560:8001::14 80] W: Fehlschlag beim Holen von http://security.ubuntu.com/ubuntu/dists/trusty-security/universe/binary-armhf/Packages 404 Not Found [IP: 2001:67c:1560:8001::14 80] W: Fehlschlag beim Holen von http://security.ubuntu.com/ubuntu/dists/trusty-security/multiverse/binary-armhf/Packages 404 Not Found [IP: 2001:67c:1560:8001::14 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-updates/main/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-updates/restricted/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-updates/universe/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-updates/multiverse/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://extras.ubuntu.com/ubuntu/dists/trusty/main/binary-armhf/Packages 404 Not Found [IP: 2001:67c:1360:8c01::23 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-backports/main/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-backports/restricted/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-backports/universe/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty-backports/multiverse/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty/main/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty/restricted/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty/universe/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] W: Fehlschlag beim Holen von http://de.archive.ubuntu.com/ubuntu/dists/trusty/multiverse/binary-armhf/Packages 404 Not Found [IP: 141.76.1.204 80] What can I do to add the armhf stuff?
Make42 (739 rep)
Jul 11, 2017, 07:06 AM • Last activity: Jul 11, 2017, 08:04 AM
4 votes
2 answers
848 views
apt-rdepends does not show multiarch information
I'm using `apt-rdepends` on an _amd64_ system with _i386_ as a foreign architecture. But it seems that `apt-rdepends` loses the architecture information of packages: $ apt-rdepends libgcc1:i386 Reading package lists... Done Building dependency tree Reading state information... Done libgcc1:i386 Depe...
I'm using apt-rdepends on an _amd64_ system with _i386_ as a foreign architecture. But it seems that apt-rdepends loses the architecture information of packages: $ apt-rdepends libgcc1:i386 Reading package lists... Done Building dependency tree Reading state information... Done libgcc1:i386 Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1) Depends: libc6 (>= 2.2.4) PreDepends: multiarch-support gcc-4.9-base libc6 Depends: libgcc1 libgcc1 Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1) Depends: libc6 (>= 2.14) PreDepends: multiarch-support multiarch-support Depends: libc6 (>= 2.3.6-2) While apt-cache shows the correct architecture but can't recurse: $ apt-cache depends libgcc1:i386 libgcc1:i386 Depends: gcc-4.9-base:i386 Depends: libc6:i386 PreDepends: multiarch-support:i386 multiarch-support Breaks: Breaks: Breaks: gcc-4.4 Breaks: gcc-4.4:i386 Breaks: Breaks: Replaces: libgcc1 Breaks: libgcc1 Any suggestions on how to recursively retrieve dependencies without losing architecture information?
Hurzelchen (191 rep)
May 9, 2017, 08:12 AM • Last activity: May 29, 2017, 05:25 PM
1 votes
1 answers
1501 views
How can an apt-get command be configured to ignore those it aims to remove?
Can the apt-get command be configured to ignore some of the packages it wants to remove. I run both 32 bit and 64 bit development packages as well as the programs created on them, meaning I need both the xxx:i386 and their 64 bit counterparts on the system.In this system for example I need to instal...
Can the apt-get command be configured to ignore some of the packages it wants to remove. I run both 32 bit and 64 bit development packages as well as the programs created on them, meaning I need both the xxx:i386 and their 64 bit counterparts on the system.In this system for example I need to install a 64bit development package on all the related 32bit development packages are marked for removal. root@ac02:/usr/src/packages/lazarus# apt-get -f install Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following packages were automatically installed and are no longer required: gir1.2-freedesktop:i386 gir1.2-glib-2.0:i386 gir1.2-pango-1.0:i386 libcairo-gobject2:i386 libcairo-script-interpreter2:i386 libexpat1-dev:i386 libgirepository-1.0-1:i386 libharfbuzz-gobject0:i386 libharfbuzz-icu0:i386 libice-dev:i386 liblzo2-2:i386 libpcre3-dev:i386 libpcrecpp0:i386 libpng12-dev:i386 libpthread-stubs0-dev:i386 libsm-dev:i386 libx11-dev:i386 libxau-dev:i386 libxcb-render0-dev:i386 libxcb-shm0-dev:i386 libxcb1-dev:i386 libxcursor-dev:i386 libxdamage-dev:i386 libxdmcp-dev:i386 libxext-dev:i386 libxfixes-dev:i386 libxinerama-dev:i386 libxrandr-dev:i386 libxrender-dev:i386 zlib1g-dev:i386 Use 'apt-get autoremove' to remove them. The following extra packages will be installed: gir1.2-atk-1.0 gir1.2-gdkpixbuf-2.0 gir1.2-gtk-2.0 libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libglib2.0-dev libgtk2.0-dev libharfbuzz-dev libharfbuzz-gobject0 libice-dev libpango1.0-dev libpcre3-dev libpcrecpp0 libpixman-1-dev libpng12-dev libpthread-stubs0-dev libsm-dev libx11-dev libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxrandr-dev libxrender-dev Suggested packages: libcairo2-doc libglib2.0-doc libgtk2.0-doc libice-doc libpango1.0-doc libsm-doc libxcb-doc libxext-doc The following packages will be REMOVED: gir1.2-atk-1.0:i386 gir1.2-gdkpixbuf-2.0:i386 gir1.2-gtk-2.0:i386 libatk1.0-dev:i386 libcairo2-dev:i386 libfontconfig1-dev:i386 libfreetype6-dev:i386 libgdk-pixbuf2.0-dev:i386 libglib2.0-dev:i386 libgtk2.0-dev:i386 libharfbuzz-dev:i386 libpango1.0-dev:i386 libpixman-1-dev:i386 libxcomposite-dev:i386 libxft-dev:i386 libxi-dev:i386 The following NEW packages will be installed: gir1.2-atk-1.0 gir1.2-gdkpixbuf-2.0 gir1.2-gtk-2.0 libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libglib2.0-dev libgtk2.0-dev libharfbuzz-dev libharfbuzz-gobject0 libice-dev libpango1.0-dev libpcre3-dev libpcrecpp0 libpixman-1-dev libpng12-dev libpthread-stubs0-dev libsm-dev libx11-dev libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxrandr-dev libxrender-dev 0 upgraded, 38 newly installed, 16 to remove and 33 not upgraded. 1 not fully installed or removed. Need to get 14.0 MB of archives. After this operation, 13.4 MB of additional disk space will be used. Do you want to continue? [Y/n] When a package is marked for removal, does that mean that apt-get thinks it conflicts with other packages? This I find rather unexpected as most development systems search for 32bit development packages separately form 64 bit packages.
vfclists (7909 rep)
Mar 5, 2017, 09:57 PM • Last activity: Mar 6, 2017, 08:05 AM
Showing page 1 of 20 total questions