libmysqlclient-dev is not installed?
Closed this issue · 6 comments
I am not quite sure what to make of this one yet, but it looks like even though our Dockerfile installs libmysqlclient-dev
, it's not actually installed:
# dpkg -l | grep mysql
ii libmysqlclient20:amd64 5.7.31-0ubuntu0.18.04.1 amd64 MySQL database client library
ii mysql-common 5.8+1.0.4 all MySQL database common files, e.g. /etc/mysql/my.cnf
# which mysql_config
# mysql_config
/bin/sh: 5: mysql_config: not found
libmysqlclient-dev
is the package that installs mysql_config
This is using this image:
readthedocs/build 6.0 a48a32b77a74 2 months ago 7.13GB
readthedocs/build 6.0rc1 a48a32b77a74 2 months ago 7.13GB
readthedocs/build latest a48a32b77a74 2 months ago 7.13GB
Found the cause in docker hub:
...
---> 0cd5fed7092b
Step 35/57 : RUN apt-get -y install nodejs npm && npm install --global jsdoc typedoc
---> Running in eb50013d51f9
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
libmysqlclient20 mysql-common
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
gyp libc-ares2 libhttp-parser2.7.1 libjs-async libjs-inherits
libjs-node-uuid libjs-underscore libssl1.0-dev libuv1 libuv1-dev node-abbrev
node-ansi node-ansi-color-table node-archy node-async node-balanced-match
node-block-stream node-brace-expansion node-builtin-modules
node-combined-stream node-concat-map node-cookie-jar node-delayed-stream
node-forever-agent node-form-data node-fs.realpath node-fstream
node-fstream-ignore node-github-url-from-git node-glob node-graceful-fs
node-gyp node-hosted-git-info node-inflight node-inherits node-ini
node-is-builtin-module node-isexe node-json-stringify-safe node-lockfile
node-lru-cache node-mime node-minimatch node-mkdirp node-mute-stream
node-node-uuid node-nopt node-normalize-package-data node-npmlog node-once
node-osenv node-path-is-absolute node-pseudomap node-qs node-read
node-read-package-json node-request node-retry node-rimraf node-semver
node-sha node-slide node-spdx-correct node-spdx-expression-parse
node-spdx-license-ids node-tar node-tunnel-agent node-underscore
node-validate-npm-package-license node-which node-wrappy node-yallist
nodejs-dev nodejs-doc
Suggested packages:
node-hawk node-aws-sign node-oauth-sign node-http-signature debhelper
The following packages will be REMOVED:
libmysqlclient-dev libssl-dev
...
The underlying bugs are:
- https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1873608
- https://bugs.launchpad.net/ubuntu/+source/nodejs/+bug/1794589
libssl-dev
is removed, cascading to libmysqlclient-dev
, but both removals are problematic.
This might be reason to install node via nodenv
There is also a silly workaround maybe, that avoids dependency collision:
https://askubuntu.com/questions/1125036/installing-nodejs-dev-fails-depending-on-libssl1-0-dev-but-i-have-already-inst
Edit: libssl1.0-dev is a dead end, still get removal on conflicting dependencies
# apt install libssl-dev libmysqlclient-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
file libc-ares2 libexpat1 libhttp-parser2.7.1 libicu60 libmagic-mgc libmagic1
libnghttp2-14 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib
libreadline7 libsqlite3-0 libssl1.0.0 libuv1 libuv1-dev mime-support nodejs
nodejs-doc python python-minimal python2.7 python2.7-minimal readline-common
xz-utils
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
libc-dev-bin libc6 libc6-dev libmysqlclient20 linux-libc-dev manpages
manpages-dev mysql-common zlib1g-dev
Suggested packages:
glibc-doc locales libssl-doc man-browser
The following packages will be REMOVED:
libssl1.0-dev nodejs-dev
The following NEW packages will be installed:
libc-dev-bin libc6-dev libmysqlclient-dev libmysqlclient20 libssl-dev
linux-libc-dev manpages manpages-dev mysql-common zlib1g-dev
The following packages will be upgraded:
libc6
1 upgraded, 10 newly installed, 2 to remove and 33 not upgraded.
Need to get 13.4 MB of archives.
After this operation, 40.4 MB of additional disk space will be used.
I opened an issue on the RTD's GitHub page, readthedocs/readthedocs.org#7990.
What I don't understand is—locally this image seems to have mysql_config
, but the RTD builds seem unable to find it?
Hi @FrancescoCasalegno! We pin the Docker images we download in our servers, we don't use readthedocs/build:latest
. I suggest you to try using build.image: testing
in your config file that it may not have this problem.
This apt-get incompatible packages are affecting libssl-dev
as well and building Python 3.10 in #174.
Currently, we are using OpenSSL 1.0.2n
in all our images:
docs@03d3253830d2:~$ python2 --version ; python2 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
Python 2.7.18
OpenSSL 1.0.2n 7 Dec 2017
docs@03d3253830d2:~$ python3.6 --version ; python3.6 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
Python 3.6.12
OpenSSL 1.0.2n 7 Dec 2017
docs@03d3253830d2:~$ python3.7 --version ; python3.7 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
Python 3.7.9
OpenSSL 1.0.2n 7 Dec 2017
docs@03d3253830d2:~$ python3.8 --version ; python3.8 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
Python 3.8.6
OpenSSL 1.0.2n 7 Dec 2017
docs@03d3253830d2:~$ python3.9 --version ; python3.9 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
Python 3.9.1
OpenSSL 1.0.2n 7 Dec 2017