Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debian 10 Buster missing from install.sh #125

Closed
JanneSiren opened this issue Jun 13, 2019 · 28 comments · Fixed by #126 or #71
Closed

Debian 10 Buster missing from install.sh #125

JanneSiren opened this issue Jun 13, 2019 · 28 comments · Fixed by #126 or #71

Comments

@JanneSiren
Copy link

JanneSiren commented Jun 13, 2019

There are less than 4 weeks to Debian 10 Buster release. Yes, the date has already been set.
Please update the convenience script to ease the final testing of Debian 10 Buster release.

install-sh.txt

@ghost
Copy link

ghost commented Jun 28, 2019

With the launch of the Raspberry Pi 4 and therefore Buster already available for download/install, I am also not able to install Docker properly on my Pi.

@teadur
Copy link

teadur commented Jul 1, 2019

#126 fixes it, please merge

@MichaIng
Copy link
Contributor

MichaIng commented Jul 1, 2019

It just got merged. Users of the new Raspbian Buster image will still run into an error as there is no Buster branch available yet: https://download.docker.com/linux/raspbian/dists/

Workaround for now, as the Stretch package should still work:

sed -i 's/buster/stretch/' /etc/apt/sources.list.d/docker.list
apt update
apt install docker-ce docker-ce-cli

@teadur
Copy link

teadur commented Jul 1, 2019

Thank you for your quick action i can go back and play with my buster host deployments :)

@j616
Copy link

j616 commented Jul 3, 2019

I had to use

sed -i 's/10/stretch/' /etc/apt/sources.list.d/docker.list
apt update
apt install docker-ce docker-ce-cli

instead of what was in @MichaIng's comment for raspbian

@MichaIng
Copy link
Contributor

MichaIng commented Jul 3, 2019

@j616
Jep, I didn't think about that even that it got merged, the change has not yet been uploaded to: https://get.docker.com/

@ysicing
Copy link

ysicing commented Jul 6, 2019

Debian Buster has been released on 2019-07-06, the change has not yet been uploaded to https://get.docker.com/ 😊

@Sirtea
Copy link

Sirtea commented Jul 8, 2019

Not sure if still relevant, but the script (as of today), generates the apt sources line with "10" instead of "buster". This causes failure to install, and I had to change it manually, repeat the "apt update" and the "apt install docker-ce".

Should be interesting to put a link "10 -> buster" in the apt server https://download.docker.com/linux/debian/dists/ or fix the script.

Thanks

@MichaIng
Copy link
Contributor

MichaIng commented Jul 8, 2019

@Sirtea

Not sure if still relevant

This is what the whole topic + solution is about 😄. The master branch already contains the fix: https://github.com/docker/docker-install/blob/master/install.sh#L297-L299
But https://get.docker.com/ still ships the old version...

Not sure if there were other relevant changes that need to be tested first but IMO things should be tested BEFORE merging into the main branch (master), so they can be uploaded immediately. But that's a question of individual schedules.

@Sirtea
Copy link

Sirtea commented Jul 9, 2019

Great!

Master branch release worked for me; this should count as another test on debian 10, amd64. I did:

wget -qO- https://raw.githubusercontent.com/docker/docker-install/master/install.sh | bash

Regards

@JesperG
Copy link

JesperG commented Jul 12, 2019

I tried on a fresh Raspbian on Raspberry Pi 3B.

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l GNU/Linux

It failed for my setup with the following command and output:

pi@raspberrypi:~ $ wget -qO- https://raw.githubusercontent.com/docker/docker-install/master/install.sh | bash
# Executing docker install script, commit: UNKNOWN

  • sudo -E sh -c 'apt-get update -qq >/dev/null'
  • sudo -E sh -c 'apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null'
  • sudo -E sh -c 'curl -fsSL "https://download.docker.com/linux/raspbian/gpg" | apt-key add -qq - >/dev/null'
    Warning: apt-key output should not be parsed (stdout is not a terminal)
  • sudo -E sh -c 'echo "deb [arch=armhf] https://download.docker.com/linux/raspbian buster stable" > /etc/apt/sources.list.d/docker.list'
  • sudo -E sh -c 'apt-get update -qq >/dev/null'
  • '[' -n '' ']'
  • sudo -E sh -c 'apt-get install -y -qq --no-install-recommends docker-ce >/dev/null'
    E: Package 'docker-ce' has no installation candidate

@MichaIng
Copy link
Contributor

MichaIng commented Jul 13, 2019

@JesperG
The Raspbian Buster branch is now available, but does not yet contain a stable component: https://download.docker.com/linux/raspbian/dists/buster/

So for now you need to go with "nightly":

sed -i 's/stable/nightly/' /etc/apt/sources.list.d/docker.list
apt update
apt install docker-ce docker-ce-cli

Or you go with stable Stretch (which at least works on Buster according to my tests): #125 (comment)

@rradar
Copy link

rradar commented Jul 13, 2019

@MichaIng

getting the following error when I try to install nightly for raspbian buster:

sudo apt install docker-ce docker-ce-cli

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:
 docker-ce : Depends: containerd.io (>= 1.2.2-3) but it is not installable
             Recommends: aufs-tools but it is not going to be installed
             Recommends: cgroupfs-mount but it is not going to be installed or
                         cgroup-lite but it is not installable
             Recommends: git but it is not going to be installed
             Recommends: pigz but it is not going to be installed
             Recommends: libltdl7 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Don't get this error when using stretch stable repo but other:

Setting up docker-ce-cli (5:18.09.0~3-0~raspbian-stretch) ...
Setting up aufs-dkms (4.19+20190211-1) ...
Loading new aufs-4.19+20190211 DKMS files...
It is likely that 4.19.57-v7+ belongs to a chroot's host
Building for 4.19.57+, 4.19.57-v7+ and 4.19.57-v7l+
Building initial module for 4.19.57+
Error! Bad return status for module build on kernel: 4.19.57+ (armv7l)
Consult /var/lib/dkms/aufs/4.19+20190211/build/make.log for more information.
dpkg: error processing package aufs-dkms (--configure):
 installed aufs-dkms package post-installation script subprocess returned error exit status 10
Setting up pigz (2.4-1) ...
Setting up git-man (1:2.20.1-2) ...
Setting up cgroupfs-mount (1.4) ...
Setting up docker-ce (5:18.09.0~3-0~raspbian-stretch) ...
update-alternatives: using /usr/bin/dockerd-ce to provide /usr/bin/dockerd (dockerd) in auto mode
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Setting up git (1:2.20.1-2) ...
Processing triggers for systemd (241-5+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...
Errors were encountered while processing:
 aufs-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

@MichaIng
Copy link
Contributor

MichaIng commented Jul 13, 2019

@rradar
Fist of all I forgot to add --no-install-recommends to avoid installing recommendations. It's default on my systems, on yours obviously not, so better: apt install --no-install-recommends docker-ce docker-ce-cli

But containerd.io is a dependency, so the above does not solve the error.

Indeed the nightly branch does not have this package, seems to be not yet ready for use.
See Buster nightly: https://download.docker.com/linux/raspbian/dists/buster/pool/nightly/armhf/
Compare Stretch stable: https://download.docker.com/linux/raspbian/dists/stretch/pool/stable/armhf/

containerd.io (>= 1.2.2-3)

So it would actually work with the containered.io package from Stretch stable, so:

cat << _EOF_ > /etc/apt/sources.list.d/docker.list
deb [arch=armhf] https://download.docker.com/linux/raspbian buster nightly
deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable
_EOF_
apt update
apt install --no-install-recommends docker-ce docker-ce-cli

Setting up aufs-dkms (4.19+20190211-1) ...
Loading new aufs-4.19+20190211 DKMS files...
It is likely that 4.19.57-v7+ belongs to a chroot's host
Building for 4.19.57+, 4.19.57-v7+ and 4.19.57-v7l+
Building initial module for 4.19.57+
Error! Bad return status for module build on kernel: 4.19.57+ (armv7l)
Consult /var/lib/dkms/aufs/4.19+20190211/build/make.log for more information.
dpkg: error processing package aufs-dkms (--configure):

Puhh not sure if this is related to Stretch Docker vs Buster RPi firmware repo. But actually AFAIK the firmware/kernel packages are identical it it should not matter from which distro branch they are... And it worked for me some weeks ago, but this was before RPi4 compatible Raspbian Buster (+related firmware updates) were released, I used Buster already since 1.5 years ago.

Which RPi do you use? You could try to remove non-matching kernel from /boot and /lib/modules. 4.19.57+ is RPi1+Zero, 4.19.57-v7+ is RPi2+3 and 4.19.57-v7l+ is RPi4. uname -a to be 100% sure which kernel is in use. However I would go with the above first, to grab containerd.io from Stretch + Docker from Buster nightly.

@rradar
Copy link

rradar commented Jul 14, 2019

cat << _EOF_ > /etc/apt/sources.list.d/docker.list
deb [arch=armhf] https://download.docker.com/linux/raspbian buster nightly
deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable
_EOF_
apt update
apt install --no-install-recommends docker-ce docker-ce-cli

@MichaIng I did this now, purged my installed docker-ce and docker-ce-cli and tried again with
apt install --no-install-recommends docker-ce docker-ce-cli

Now I get this error here:

It is likely that 4.19.57-v7+ belongs to a chroot's host
Building for 4.19.57+, 4.19.57-v7+ and 4.19.57-v7l+
Building initial module for 4.19.57+
Error! Bad return status for module build on kernel: 4.19.57+ (armv7l)
Consult /var/lib/dkms/aufs/4.19+20190211/build/make.log for more information.
dpkg: error processing package aufs-dkms (--configure):
installed aufs-dkms package post-installation script subprocess returned error exit status 10
Setting up docker-ce (5:18.09.03-0raspbian-stretch) ...
update-alternatives: using /usr/bin/dockerd-ce to provide /usr/bin/dockerd (dockerd) in auto mode
Processing triggers for man-db (2.8.5-2) ...
Errors were encountered while processing:
aufs-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

I use a raspberry 3 (4.19.57-v7+)

EDIT: Now it worked! Problem was that apt purge was not able to purge the packages properly. A apt autoremove fixed that and I was able to install with apt install --no-install-recommends docker-ce docker-ce-cli finally

@MichaIng
Copy link
Contributor

MichaIng commented Jul 14, 2019

@rradar
Great, I just wanted to say that from the output still the Stretch package was about to be handled:

Setting up docker-ce (5:18.09.03-0raspbian-stretch) ...

So purging + autoremoving + installing finally pulls the correct packages from Buster. If you find any issue with the setup you might want to report to the actual Docker Linux repo. E.g. I found an ongoing topic about Docker on Raspbian Buster where you could contribute in case: docker/for-linux#709

@rradar
Copy link

rradar commented Jul 15, 2019

I don't know why but now my docker setup (hassio) install fails with:

[Info] Install supervisor Docker container
could not get decompression stream: fork/exec /usr/bin/unpigz: no such file or directory

with raspbian stretch this (curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh" | bash -s -- -m raspberrypi3) works without errors.

@MichaIng
Copy link
Contributor

MichaIng commented Jul 15, 2019

@rradar

/usr/bin/unpigz: no such file or directory

https://packages.debian.org/buster/pigz: apt install pigz?
I would have expected Docker resolving such dependencies internally, however at least worth to give it a try.

@rradar
Copy link

rradar commented Jul 15, 2019

@MichaIng

apt install pigz?
I would have expected Docker resolving such dependencies internally, however at least worth to give it a try.

This did actually help... Running the install script again and this time it succeeded!

Thank's!

@MichaIng
Copy link
Contributor

MichaIng commented Jul 15, 2019

@rradar
Great. Looks like docker itself uses unpigz when pulling containers: https://github.com/home-assistant/hassio-installer/blob/master/hassio_install.sh#L140-L143
AFAIK this is only another gzip implementation, so strange it does not use gzip..
pigz allows to use multiple cores/threads, but it should be only used, when available, else revert to use gzip. Will check bug reports...

EDIT: Fallback is actually the case... no idea why this didn't work in your case: https://github.com/docker/docker-ce/blob/master/components/engine/pkg/archive/archive.go#L30-L39

But gzip is available on your system, right? dpkg -l gzip

@o-alquimista
Copy link

o-alquimista commented Jul 15, 2019

The script from get.docker.com AND test.docker.com fails on Debian 10 Buster:

sudo sh get-docker.sh

# Executing docker install script, commit: 36b78b2

Either your platform is not easily detectable or is not supported by this
installer script.
Please visit the following URL for more detailed installation instructions:

https://docs.docker.com/engine/installation/

sudo sh test-docker.sh

# Executing docker install script, commit: 36b78b2

Either your platform is not easily detectable or is not supported by this
installer script.
Please visit the following URL for more detailed installation instructions:

https://docs.docker.com/engine/installation/

lsb_release -a

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

lsb_release -cs

buster

@Sirtea
Copy link

Sirtea commented Jul 16, 2019

Today, it worked for debian buster amd64, so the issue is fixed for me without modifications nor hacks.
Thank you all

gerard@debian:~$ wget -qO- get.docker.com | bash
# Executing docker install script, commit: 6bf300318ebaab958c4adc341a8c7bb9f3a54a1a
+ sudo -E sh -c 'apt-get update -qq >/dev/null'
+ sudo -E sh -c 'apt-get install -y -qq apt-transport-https ca-certificates curl gnupg >/dev/null'
+ sudo -E sh -c 'curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null'
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sudo -E sh -c 'echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" > /etc/apt/sources.list.d/docker.list'
+ sudo -E sh -c 'apt-get update -qq >/dev/null'
+ '[' -n '' ']'
+ sudo -E sh -c 'apt-get install -y -qq --no-install-recommends docker-ce >/dev/null'
+ sudo -E sh -c 'docker version'
Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        2d0083d
 Built:             Thu Jun 27 17:56:40 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       2d0083d
  Built:            Thu Jun 27 17:23:02 2019
  OS/Arch:          linux/amd64
  Experimental:     false
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker gerard

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.
gerard@debian:~$ 

@Ciantic
Copy link

Ciantic commented Jul 17, 2019

It didn't work with raspberry pi 4 using "get.docker.com":

# Executing docker install script, commit: 6bf300318ebaab958c4adc341a8c7bb9f3a54a1a
+ sudo -E sh -c apt-get update -qq >/dev/null
+ sudo -E sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sudo -E sh -c curl -fsSL "https://download.docker.com/linux/raspbian/gpg" | apt-key add -qq - >/dev/null
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sudo -E sh -c echo "deb [arch=armhf] https://download.docker.com/linux/raspbian buster stable" > /etc/apt/sources.list.d/docker.list
+ sudo -E sh -c apt-get update -qq >/dev/null
+ [ -n  ]
+ sudo -E sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
E: Package 'docker-ce' has no installation candidate
pi@raspberrypi:~ $

@MichaIng
Copy link
Contributor

MichaIng commented Jul 17, 2019

@Ciantic
Please check the posts above. In case of all RPi on Raspbian Buster, one must currently run:

curl -sSL get.docker.com | CHANNEL='nightly' bash

@Ciantic
Copy link

Ciantic commented Jul 17, 2019

@MichaIng I got it working, thanks. It however gave me aufs-dkms problems afterwards. I then used this sudo apt-get --purge remove aufs-dkms and it seems to fix it.

@MichaIng
Copy link
Contributor

MichaIng commented Jul 17, 2019

@Ciantic
I guess aufs-dkms came from an earlier attempt to install Docker without --no-install-recommends.

For this reason I tend to disable recommends install by default on all systems, e.g.

cat << _EOF_ >> /etc/apt/apt.conf.d/99norecommends
APT::Install-Recommends "false";
APT::Install-Suggests "false";
APT::AutoRemove::RecommendsImportant "false";
APT::AutoRemove::SuggestsImportant "false";
_EOF_
  • This prevent install of recommends (and suggestions, which is default anyway) by default.
  • And it allows to autoremove them: apt autoremove --purge
    • Of course be careful with this, check if there is anything contained that you actually want. But in this case it should be marked as manual installed: apt-mark manual package_i_need

@redeagle84
Copy link

@thaJeztah
Copy link
Member

closing, as debian 10 "buster" came and went

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.