Installing fenics on Google Cloud Platform Virtual Instance

Hi,

I tried installing fenics on a Google Cloud Platform Virtual Instance (from console.cloud.google.com) using the following code:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:fenics-packages/fenics
sudo apt-get update
sudo apt-get install --no-install-recommends fenics

But I get the same issue as Installing fenics on Google Colab, the installation fails and I get the following message:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
software-properties-common is already the newest version (0.96.20.2-1+deb9u1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
This PPA provides packages for the FEniCS project.

To use this PPA, please follow the instructions at http://fenicsproject.org.
 More info: https://launchpad.net/~fenics-packages/+archive/ubuntu/fenics
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keybox '/tmp/tmp3e7lpl6j/pubring.gpg' created
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
gpg: connecting dirmngr at '/tmp/tmp3e7lpl6j/S.dirmngr' failed: No such file or directory
gpg: keyserver receive failed: No dirmngr

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 fenics : Depends: libdolfin-dev (>= 2019.2) but it is not going to be installed
          Depends: python3-dolfin (>= 2019.2) but it is not going to be installed
          Depends: dolfin-doc (>= 2019.2) but it is not going to be installed
          Depends: dolfin-bin (>= 2019.2) but it is not going to be installed
          Depends: python3-ffc (>= 2019.2) but it is not installable
          Depends: python3-dijitso (>= 2019.2) but it is not going to be installed
          Depends: python3-mshr (>= 2019.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

But the solution in the previous topic does not work for me.

If I run “sudo apt install fenics”, I will get the message:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 fenics : Depends: libdolfin-dev (>= 2019.2) but it is not going to be installed
          Depends: python3-dolfin (>= 2019.2) but it is not going to be installed
          Depends: dolfin-doc (>= 2019.2) but it is not going to be installed
          Depends: dolfin-bin (>= 2019.2) but it is not going to be installed
          Depends: python3-ffc (>= 2019.2) but it is not installable
          Depends: python3-dijitso (>= 2019.2) but it is not going to be installed
          Depends: python3-mshr (>= 2019.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Does anyone have any ideas? Thanks a lot!

Your installation seems to be an incomplete state. Can you try

sudo apt-get upgrade

(and maybe also sudo apt-get dist-upgrade) before installing fenics?

I have tried your command and the result is:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

After that, run “sudo apt-get install fenics” I get the same issue.

It is strange. Can you confirm you also ran

 sudo apt-get dist-upgrade

?

After running “sudo apt-get dist-upgrade”, I get

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Then I run the command “sudo apt-get upgrade”, I get

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

They are the same.

Finally, I run the command “sudo apt install fenics”, it shows the same issue

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 fenics : Depends: libdolfin-dev (>= 2019.2) but it is not going to be installed
          Depends: python3-dolfin (>= 2019.2) but it is not going to be installed
          Depends: dolfin-doc (>= 2019.2) but it is not going to be installed
          Depends: dolfin-bin (>= 2019.2) but it is not going to be installed
          Depends: python3-ffc (>= 2019.2) but it is not installable
          Depends: python3-dijitso (>= 2019.2) but it is not going to be installed
          Depends: python3-mshr (>= 2019.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

The system of my Google Cloud Platform Virtual Instance is

sysname=‘Linux’,
release=‘4.9.0-14-amd64’,
version=’#1 SMP Debian 4.9.240-2 (2020-10-30)’,
machine=‘x86_64’

together with python 3.7

Is this an Ubuntu installation or Debian? What does lsb_release -a report?

Your report identifies python3-ffc as the problem. Does it provide no more information on why it considers python3-ffc to be uninstallable ?

“lsb_release -a” reports

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.13 (stretch)
Release:        9.13
Codename:       stretch

I have provided all the information from the terminal. if there is any ways to find out the reasons? I don’t know how to get more information on why it considers the packages are uninstallable.

I’m not sure why it’s complaining about python3-ffc. Usually it provides reasons, not sure why it isn’t here.

Anyway, the main problem here is that you have an old release of Debian (stretch). The FEniCS PPA builds against Ubuntu releases, not Debian as such. And stretch is quite old. The python3-ffc problem would probably be some mismatch in dependent package versions. To be honest, I’m surprised it didn’t complain when you ran add-apt-repository ppa:fenics-packages/fenics, since the PPA does not support stretch.

If you just want to try FEniCS and dolfin, then just run sudo apt install fenics directly without using the PPA. It will install the older version of fenics that was released with stretch (FEniCS 2016.1).

But if you want more recent versions of FEniCS, then you should upgrade your Debian installation. The current stable release is buster (Debian 10), which provides FEniCS 2018.1.

If you want access to latest versions then you should consider upgrading to debian testing (which is currently bullseye). It provides latest versions which have had time to stabilize from the development archive of debian unstable.

Thanks for your reply.

I have created a new Google Cloud Patform Virtual Instance with debian 10.

The result of “lsb_release -a” is

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

But when I install the fenics I meet a new problem. The result of “sudo apt-get install fenics” is

Reading package lists... Done
Building dependency tree       
Reading state information... Done
fenics is already the newest version (1:2018.1.0.6).
0 upgraded, 0 newly installed, 0 to remove and 16 not upgraded.

It sounds good, but I can not run ‘from fenics import *’ in python, it will still shows “ModuleNotFoundError: No module named ‘fenics’”.

I run “sudo apt-get update” again, here is the problem, it shows:

Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease                                                                                    
Hit:3 http://deb.debian.org/debian buster-updates InRelease                                                                            
Hit:5 http://deb.debian.org/debian buster-backports InRelease                                                                          
Hit:6 https://download.docker.com/linux/debian buster InRelease                                                                        
Hit:7 https://nvidia.github.io/libnvidia-container/stable/debian10/amd64  InRelease                                                    
Hit:8 https://nvidia.github.io/nvidia-container-runtime/stable/debian10/amd64  InRelease                                   
Hit:9 https://nvidia.github.io/nvidia-docker/debian10/amd64  InRelease                         
Hit:10 http://packages.cloud.google.com/apt cloud-sdk-buster InRelease                         
Hit:4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease                        
Get:11 http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-buster InRelease [3874 B]
Ign:12 http://ppa.launchpad.net/fenics-packages/fenics/ubuntu hirsute InRelease
Hit:13 http://packages.cloud.google.com/apt gcsfuse-buster InRelease     
Hit:14 http://packages.cloud.google.com/apt google-compute-engine-buster-stable InRelease
Err:15 http://ppa.launchpad.net/fenics-packages/fenics/ubuntu hirsute Release
  404  Not Found [IP: 91.189.95.83 80]
Reading package lists... Done
E: The repository 'http://ppa.launchpad.net/fenics-packages/fenics/ubuntu hirsute Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Could you please help me?

Thank you very much!

That’s not a clean Debian installation. You’ll want to eliminate the ubuntu ppa.