Bootstrapping a Centos 7 image fails on Ubuntu

481 views
Skip to first unread message

Simon Butcher

unread,
Oct 27, 2016, 9:31:53 AM10/27/16
to singularity
Hello

When I bootstrap an image on my laptop using Ubuntu, I get an error (i already did apt-get install yum on the ubuntu system)


BootStrap: yum
OSVersion: 7
MirrorURL: https://www.mirrorservice.org/sites/mirror.centos.org/%{OSVERSION}/os/$basearch/
UpdateURL: https://www.mirrorservice.org/sites/mirror.centos.org/%{OSVERSION}/updates/$basearch/
Include: yum


%post
    yum
-y install epel-release
    yum
-y install python34

%runscript
    python3
.4



sudo singularity create  centos7-python-3.4.3-7.el7.img
sudo singularity bootstrap centos7-python-3.4.3-7.el7.img centos7-python-3.4.3-7.el7.def

after installing about 90 packages, it fails with:
...
Complete!
Executing Postbootstrap module
+ yum -y install epel-release
Loaded plugins: fastestmirror


 
One of the configured repositories failed (Unknown),
 
and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Disable the repository, so yum won'
t use it by default. Yum will then
        just ignore the repository
until you permanently enable it again or use
       
--enablerepo for temporary usage:

            yum
-config-manager --disable <repoid>

     
4. Configure the failing repository to be skipped, if it is unavailable.
       
Note that yum will try to contact the repo. when it runs most commands,
        so will have to
try and fail each time (and thus. yum will be be much
        slower
). If it is a very temporary problem though, this is often a nice
        compromise
:

            yum
-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: base/$releasever/x86_64

It works on a Centos system, but fails on 2 Ubuntu ones. Something I'm doing wrong?

regards
simon

David Godlove

unread,
Oct 27, 2016, 10:17:38 AM10/27/16
to singularity
I had a similar problem.  Adding these lines to my .def file worked for me.  (Of course you will need to make sure wget is installed in the container beforehand with the Include: directive).
    # yum needs some tlc to work properly in container
    RELEASEVER=7
    ARCH=x86_64
    echo $RELEASEVER > /etc/yum/vars/releasever
    echo $ARCH > /etc/yum/vars/arch
    wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
    rpm -ivh --nodeps epel-release-7-8.noarch.rpm
    yum -d 10 check-update

Simon Butcher

unread,
Oct 27, 2016, 10:59:57 AM10/27/16
to singularity
Thanks! Works for me. I think we're going to have to mandate bootstrapping on Centos to avoid this ugliness. Shame that ubuntu builds don't work exactly the same.

Gregory M. Kurtzer

unread,
Nov 4, 2016, 12:43:47 PM11/4/16
to singularity
You could technically pass the URL to rpm directly too


Is this possible to include in our YUM bootstrap module?

--
You received this message because you are subscribed to the Google Groups "singularity" group.
To unsubscribe from this group and stop receiving emails from it, send an email to singularity+unsubscribe@lbl.gov.



--
Gregory M. Kurtzer
HPC Systems Architect and Technology Developer
Lawrence Berkeley National Laboratory HPCS
University of California Berkeley Research IT
Singularity Linux Containers (http://singularity.lbl.gov/)
Warewulf Cluster Management (http://warewulf.lbl.gov/)
Reply all
Reply to author
Forward
0 new messages