How to install mingw-w64 packages into a machine or docker image?

Hi all!

Converting from Travis, one of our builds requires the use of the MinGW-w64 dev tools (installed under Linux) to do its job.

I tried various ways to install mingw-related packages into the (ubuntu) images, but
no go… no such packages can be found.

The logs show:


sudo apt-get install -y mingw-w64

Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package mingw-w64

What are the correct package names? I am a debian user myself,
and never actually used ubuntu …

Thanks,

Fred

A first ‘quick’ idea - do ‘sudo apt-get update’ first.

Beyond that, which image are you working with? That error can be reported if the correct repository is not included in /etc/apt/sources.list and it may be that the team that defines the images have changed the list.

Hi:

Yeah, am already doing the update etc.

Images tried are cimg:base, ubuntu-220:current.

Thanks!

Fred

Can you try the following as mingw-w64 manages to install when I run this configuration. It may be quicker to debug your issue if we have a simple test configuration to compare against.

version: 2.1

executors:

  hosted_node:
    machine:
      image: ubuntu-2204:current
    resource_class: medium
    
jobs:
  build:
    executor: hosted_node
    steps:
      - run: sudo apt-get install -y mingw-w64
      
workflows:
  build-and-deploy:
    jobs:
      - build

For me the output of the apt-get command is

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  squashfs-tools
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 g++-mingw-w64
  g++-mingw-w64-i686 g++-mingw-w64-i686-posix g++-mingw-w64-i686-win32
  g++-mingw-w64-x86-64 g++-mingw-w64-x86-64-posix g++-mingw-w64-x86-64-win32
  gcc-mingw-w64 gcc-mingw-w64-base gcc-mingw-w64-i686 gcc-mingw-w64-i686-posix
  gcc-mingw-w64-i686-posix-runtime gcc-mingw-w64-i686-win32
  gcc-mingw-w64-i686-win32-runtime gcc-mingw-w64-x86-64
  gcc-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix-runtime
  gcc-mingw-w64-x86-64-win32 gcc-mingw-w64-x86-64-win32-runtime
  mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev
Suggested packages:
  gcc-10-locales wine wine64
The following NEW packages will be installed:
  binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 g++-mingw-w64
  g++-mingw-w64-i686 g++-mingw-w64-i686-posix g++-mingw-w64-i686-win32
  g++-mingw-w64-x86-64 g++-mingw-w64-x86-64-posix g++-mingw-w64-x86-64-win32
  gcc-mingw-w64 gcc-mingw-w64-base gcc-mingw-w64-i686 gcc-mingw-w64-i686-posix
  gcc-mingw-w64-i686-posix-runtime gcc-mingw-w64-i686-win32
  gcc-mingw-w64-i686-win32-runtime gcc-mingw-w64-x86-64
  gcc-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix-runtime
  gcc-mingw-w64-x86-64-win32 gcc-mingw-w64-x86-64-win32-runtime mingw-w64
  mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev
0 upgraded, 25 newly installed, 0 to remove and 5 not upgraded.
Need to get 229 MB of archives.
After this operation, 1,136 MB of additional disk space will be used.
Get:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 binutils-mingw-w64-i686 amd64 2.38-3ubuntu1+9build1 [2,882 kB]
Get:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 mingw-w64-common all 8.0.0-1 [4,911 kB]
Get:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 mingw-w64-i686-dev all 8.0.0-1 [2,837 kB]
Get:4 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-base amd64 10.3.0-14ubuntu1+24.3 [187 kB]
Get:5 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-i686-posix-runtime amd64 10.3.0-14ubuntu1+24.3 [11.9 MB]
Get:6 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-i686-posix amd64 10.3.0-14ubuntu1+24.3 [28.5 MB]
Get:7 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 g++-mingw-w64-i686-posix amd64 10.3.0-14ubuntu1+24.3 [11.4 MB]
Get:8 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-i686-win32-runtime amd64 10.3.0-14ubuntu1+24.3 [11.9 MB]
Get:9 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-i686-win32 amd64 10.3.0-14ubuntu1+24.3 [28.5 MB]
Get:10 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 g++-mingw-w64-i686-win32 amd64 10.3.0-14ubuntu1+24.3 [11.4 MB]
Get:11 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 binutils-mingw-w64-x86-64 amd64 2.38-3ubuntu1+9build1 [3,308 kB]
Get:12 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 mingw-w64-x86-64-dev all 8.0.0-1 [3,684 kB]
Get:13 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-x86-64-posix-runtime amd64 10.3.0-14ubuntu1+24.3 [12.8 MB]
Get:14 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-x86-64-posix amd64 10.3.0-14ubuntu1+24.3 [28.7 MB]
Get:15 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 g++-mingw-w64-x86-64-posix amd64 10.3.0-14ubuntu1+24.3 [11.6 MB]
Get:16 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-x86-64-win32-runtime amd64 10.3.0-14ubuntu1+24.3 [12.8 MB]
Get:17 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-x86-64-win32 amd64 10.3.0-14ubuntu1+24.3 [28.7 MB]
Get:18 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 g++-mingw-w64-x86-64-win32 amd64 10.3.0-14ubuntu1+24.3 [11.6 MB]
Get:19 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 g++-mingw-w64-i686 all 10.3.0-14ubuntu1+24.3 [186 kB]
Get:20 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 g++-mingw-w64-x86-64 all 10.3.0-14ubuntu1+24.3 [186 kB]
Get:21 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 g++-mingw-w64 all 10.3.0-14ubuntu1+24.3 [186 kB]
Get:22 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-i686 all 10.3.0-14ubuntu1+24.3 [187 kB]
Get:23 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64-x86-64 all 10.3.0-14ubuntu1+24.3 [187 kB]
Get:24 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 gcc-mingw-w64 all 10.3.0-14ubuntu1+24.3 [186 kB]
Get:25 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy/universe amd64 mingw-w64 all 8.0.0-1 [9,052 B]
Fetched 229 MB in 12s (19.0 MB/s)                                              
Selecting previously unselected package binutils-mingw-w64-i686.
(Reading database ... 145305 files and directories currently installed.)
Preparing to unpack .../00-binutils-mingw-w64-i686_2.38-3ubuntu1+9build1_amd64.deb ...
Unpacking binutils-mingw-w64-i686 (2.38-3ubuntu1+9build1) ...
Selecting previously unselected package mingw-w64-common.
Preparing to unpack .../01-mingw-w64-common_8.0.0-1_all.deb ...
Unpacking mingw-w64-common (8.0.0-1) ...
Selecting previously unselected package mingw-w64-i686-dev.
Preparing to unpack .../02-mingw-w64-i686-dev_8.0.0-1_all.deb ...
Unpacking mingw-w64-i686-dev (8.0.0-1) ...
Selecting previously unselected package gcc-mingw-w64-base:amd64.
Preparing to unpack .../03-gcc-mingw-w64-base_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-base:amd64 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-i686-posix-runtime.
Preparing to unpack .../04-gcc-mingw-w64-i686-posix-runtime_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-i686-posix-runtime (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-i686-posix.
Preparing to unpack .../05-gcc-mingw-w64-i686-posix_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-i686-posix (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package g++-mingw-w64-i686-posix.
Preparing to unpack .../06-g++-mingw-w64-i686-posix_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking g++-mingw-w64-i686-posix (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-i686-win32-runtime.
Preparing to unpack .../07-gcc-mingw-w64-i686-win32-runtime_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-i686-win32-runtime (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-i686-win32.
Preparing to unpack .../08-gcc-mingw-w64-i686-win32_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-i686-win32 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package g++-mingw-w64-i686-win32.
Preparing to unpack .../09-g++-mingw-w64-i686-win32_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking g++-mingw-w64-i686-win32 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package binutils-mingw-w64-x86-64.
Preparing to unpack .../10-binutils-mingw-w64-x86-64_2.38-3ubuntu1+9build1_amd64.deb ...
Unpacking binutils-mingw-w64-x86-64 (2.38-3ubuntu1+9build1) ...
Selecting previously unselected package mingw-w64-x86-64-dev.
Preparing to unpack .../11-mingw-w64-x86-64-dev_8.0.0-1_all.deb ...
Unpacking mingw-w64-x86-64-dev (8.0.0-1) ...
Selecting previously unselected package gcc-mingw-w64-x86-64-posix-runtime.
Preparing to unpack .../12-gcc-mingw-w64-x86-64-posix-runtime_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-x86-64-posix-runtime (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-x86-64-posix.
Preparing to unpack .../13-gcc-mingw-w64-x86-64-posix_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-x86-64-posix (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package g++-mingw-w64-x86-64-posix.
Preparing to unpack .../14-g++-mingw-w64-x86-64-posix_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking g++-mingw-w64-x86-64-posix (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-x86-64-win32-runtime.
Preparing to unpack .../15-gcc-mingw-w64-x86-64-win32-runtime_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-x86-64-win32-runtime (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-x86-64-win32.
Preparing to unpack .../16-gcc-mingw-w64-x86-64-win32_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking gcc-mingw-w64-x86-64-win32 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package g++-mingw-w64-x86-64-win32.
Preparing to unpack .../17-g++-mingw-w64-x86-64-win32_10.3.0-14ubuntu1+24.3_amd64.deb ...
Unpacking g++-mingw-w64-x86-64-win32 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package g++-mingw-w64-i686.
Preparing to unpack .../18-g++-mingw-w64-i686_10.3.0-14ubuntu1+24.3_all.deb ...
Unpacking g++-mingw-w64-i686 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package g++-mingw-w64-x86-64.
Preparing to unpack .../19-g++-mingw-w64-x86-64_10.3.0-14ubuntu1+24.3_all.deb ...
Unpacking g++-mingw-w64-x86-64 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package g++-mingw-w64.
Preparing to unpack .../20-g++-mingw-w64_10.3.0-14ubuntu1+24.3_all.deb ...
Unpacking g++-mingw-w64 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-i686.
Preparing to unpack .../21-gcc-mingw-w64-i686_10.3.0-14ubuntu1+24.3_all.deb ...
Unpacking gcc-mingw-w64-i686 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64-x86-64.
Preparing to unpack .../22-gcc-mingw-w64-x86-64_10.3.0-14ubuntu1+24.3_all.deb ...
Unpacking gcc-mingw-w64-x86-64 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package gcc-mingw-w64.
Preparing to unpack .../23-gcc-mingw-w64_10.3.0-14ubuntu1+24.3_all.deb ...
Unpacking gcc-mingw-w64 (10.3.0-14ubuntu1+24.3) ...
Selecting previously unselected package mingw-w64.
Preparing to unpack .../24-mingw-w64_8.0.0-1_all.deb ...
Unpacking mingw-w64 (8.0.0-1) ...
Setting up binutils-mingw-w64-x86-64 (2.38-3ubuntu1+9build1) ...
Setting up gcc-mingw-w64-base:amd64 (10.3.0-14ubuntu1+24.3) ...
Setting up gcc-mingw-w64-i686-posix-runtime (10.3.0-14ubuntu1+24.3) ...
Setting up binutils-mingw-w64-i686 (2.38-3ubuntu1+9build1) ...
Setting up gcc-mingw-w64-x86-64-win32-runtime (10.3.0-14ubuntu1+24.3) ...
Setting up gcc-mingw-w64-i686-win32-runtime (10.3.0-14ubuntu1+24.3) ...
Setting up mingw-w64-common (8.0.0-1) ...
Setting up mingw-w64-x86-64-dev (8.0.0-1) ...
Setting up gcc-mingw-w64-x86-64-posix-runtime (10.3.0-14ubuntu1+24.3) ...
Setting up gcc-mingw-w64-x86-64-posix (10.3.0-14ubuntu1+24.3) ...
update-alternatives: using /usr/bin/x86_64-w64-mingw32-gcc-posix to provide /usr/bin/x86_64-w64-mingw32-gcc (x86_64-w64-mingw32-gcc) in auto mode
Setting up gcc-mingw-w64-x86-64-win32 (10.3.0-14ubuntu1+24.3) ...
update-alternatives: using /usr/bin/x86_64-w64-mingw32-gcc-win32 to provide /usr/bin/x86_64-w64-mingw32-gcc (x86_64-w64-mingw32-gcc) in auto mode
Setting up gcc-mingw-w64-x86-64 (10.3.0-14ubuntu1+24.3) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/bin/x86_64-w64-mingw32-gcc-win32 because link group x86_64-w64-mingw32-gcc is broken
update-alternatives: warning: skip creation of /usr/bin/x86_64-w64-mingw32-gcc-8 because associated file /usr/bin/x86_64-w64-mingw32-gcc-8.3-win32 (of link group x86_64-w64-mingw32-gcc) doesn't exist
Setting up mingw-w64-i686-dev (8.0.0-1) ...
Setting up gcc-mingw-w64-i686-win32 (10.3.0-14ubuntu1+24.3) ...
update-alternatives: using /usr/bin/i686-w64-mingw32-gcc-win32 to provide /usr/bin/i686-w64-mingw32-gcc (i686-w64-mingw32-gcc) in auto mode
Setting up g++-mingw-w64-i686-win32 (10.3.0-14ubuntu1+24.3) ...
update-alternatives: using /usr/bin/i686-w64-mingw32-g++-win32 to provide /usr/bin/i686-w64-mingw32-g++ (i686-w64-mingw32-g++) in auto mode
Setting up g++-mingw-w64-x86-64-win32 (10.3.0-14ubuntu1+24.3) ...
update-alternatives: using /usr/bin/x86_64-w64-mingw32-g++-win32 to provide /usr/bin/x86_64-w64-mingw32-g++ (x86_64-w64-mingw32-g++) in auto mode
Setting up gcc-mingw-w64-i686-posix (10.3.0-14ubuntu1+24.3) ...
Setting up g++-mingw-w64-x86-64-posix (10.3.0-14ubuntu1+24.3) ...
Setting up gcc-mingw-w64-i686 (10.3.0-14ubuntu1+24.3) ...
update-alternatives: warning: forcing reinstallation of alternative /usr/bin/i686-w64-mingw32-gcc-win32 because link group i686-w64-mingw32-gcc is broken
update-alternatives: warning: skip creation of /usr/bin/i686-w64-mingw32-gcc-8 because associated file /usr/bin/i686-w64-mingw32-gcc-8.3-win32 (of link group i686-w64-mingw32-gcc) doesn't exist
Setting up g++-mingw-w64-x86-64 (10.3.0-14ubuntu1+24.3) ...
Setting up gcc-mingw-w64 (10.3.0-14ubuntu1+24.3) ...
Setting up g++-mingw-w64-i686-posix (10.3.0-14ubuntu1+24.3) ...
Setting up g++-mingw-w64-i686 (10.3.0-14ubuntu1+24.3) ...
Setting up g++-mingw-w64 (10.3.0-14ubuntu1+24.3) ...
Setting up mingw-w64 (8.0.0-1) ...
Processing triggers for man-db (2.10.2-1) ...
NEEDRESTART-VER: 3.5
NEEDRESTART-KCUR: 5.15.0-1028-aws
NEEDRESTART-KEXP: 5.15.0-1028-aws
NEEDRESTART-KSTA: 1

CircleCI received exit code 0

Bingo!

I had mostly a similar config, buttttttt: also had a

sudo rm -rf /var/lib/apt/lists/*

after the apt upgrade/install, nixing the package lists. That I think came from an
example I used as a base. Removing that (obviously…) kinda helped a lot :wink:

On to now trying to find a working solution for Discord notifications, sigh!

Thanks!

Fred