std-training icon indicating copy to clipboard operation
std-training copied to clipboard

Instruction in the book for toolchain set-up on Debian/Ubuntu fails

Open nsengupta opened this issue 1 year ago • 1 comments

An Embedded Rust beginner here! So, please bear with me if the issues I raise are very fundamental and can be easily resolved or is already resolved! :-)

From the page on the book here:

The instruction is to use the following command for installing the toolchain on Debian/Ubuntu:

sudo apt install llvm-dev libclang-dev clang libuv-dev libuv1-dev pkgconf python3-venv python-is-python3

On my Ubuntu 22.10 machine, this is what I get:

sudo apt install llvm-dev libclang-dev clang libuv-dev libuv1-dev pkgconf python3-venv python-is-python3
[sudo] password for nirmalya: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package libuv-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  libuv1-dev:i386 libuv1-dev

E: Package 'libuv-dev' has no installation candidate

Here is the output of uname -a:

Linux bluewhale 6.8.0-45-generic #45~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Sep 11 15:25:05 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

I have removed the libuv-dev from the command, and then the installation goes through:


sudo apt install llvm-dev libclang-dev clang libuv1-dev pkgconf python3-venv python-is-python3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  binfmt-support clang-14 libclang-14-dev libclang-common-14-dev libclang-cpp14 libclang1-14 libpkgconf3 llvm llvm-14 llvm-14-dev llvm-14-linker-tools llvm-14-runtime llvm-14-tools
  llvm-runtime python3-pip-whl python3-setuptools-whl python3.10-venv
Suggested packages:
  clang-14-doc llvm-14-doc
The following packages will be REMOVED:
  pkg-config
The following NEW packages will be installed:
  binfmt-support clang clang-14 libclang-14-dev libclang-common-14-dev libclang-cpp14 libclang-dev libclang1-14 libpkgconf3 libuv1-dev llvm llvm-14 llvm-14-dev llvm-14-linker-tools
  llvm-14-runtime llvm-14-tools llvm-dev llvm-runtime pkgconf python-is-python3 python3-pip-whl python3-setuptools-whl python3-venv python3.10-venv
0 upgraded, 24 newly installed, 1 to remove and 30 not upgraded.
Need to get 106 MB of archives.
After this operation, 750 MB of additional disk space will be used.
Do you want to continue? [Y/n] y      
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libpkgconf3 amd64 1.8.0-1 [30.3 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/universe amd64 pkgconf amd64 1.8.0-1 [35.3 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 binfmt-support amd64 2.2.1-2 [55.8 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libclang-cpp14 amd64 1:14.0.0-1ubuntu1.1 [12.1 MB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libclang-common-14-dev amd64 1:14.0.0-1ubuntu1.1 [5,975 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 llvm-14-linker-tools amd64 1:14.0.0-1ubuntu1.1 [1,355 kB]                                                                
Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libclang1-14 amd64 1:14.0.0-1ubuntu1.1 [6,792 kB]                                                                        
Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 clang-14 amd64 1:14.0.0-1ubuntu1.1 [81.2 kB]                                                                             
Get:9 http://archive.ubuntu.com/ubuntu jammy/universe amd64 clang amd64 1:14.0-55~exp2 [3,558 B]                                                                                             
Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libclang-14-dev amd64 1:14.0.0-1ubuntu1.1 [25.2 MB]                                                                     
Get:11 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libclang-dev amd64 1:14.0-55~exp2 [3,138 B]                                                                                     
Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libuv1-dev amd64 1.43.0-1ubuntu0.1 [130 kB]                                                                                 
Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 llvm-14-runtime amd64 1:14.0.0-1ubuntu1.1 [484 kB]                                                                      
Get:14 http://archive.ubuntu.com/ubuntu jammy/universe amd64 llvm-runtime amd64 1:14.0-55~exp2 [3,204 B]                                                                                     
Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 llvm-14 amd64 1:14.0.0-1ubuntu1.1 [12.7 MB]                                                                             
Get:16 http://archive.ubuntu.com/ubuntu jammy/universe amd64 llvm amd64 1:14.0-55~exp2 [3,758 B]                                                                                             
Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 llvm-14-tools amd64 1:14.0.0-1ubuntu1.1 [404 kB]                                                                        
Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 llvm-14-dev amd64 1:14.0.0-1ubuntu1.1 [37.8 MB]                                                                         
Get:19 http://archive.ubuntu.com/ubuntu jammy/universe amd64 llvm-dev amd64 1:14.0-55~exp2 [1,656 B]                                                                                         
Get:20 http://archive.ubuntu.com/ubuntu jammy/main amd64 python-is-python3 all 3.9.2-2 [2,788 B]                                                                                             
Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-pip-whl all 22.0.2+dfsg-1ubuntu0.4 [1,680 kB]                                                                   
Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-setuptools-whl all 59.6.0-1.2ubuntu0.22.04.2 [788 kB]                                                           
Get:23 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3.10-venv amd64 3.10.12-1~22.04.6 [5,722 B]                                                                       
Get:24 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-venv amd64 3.10.6-1~22.04.1 [1,042 B]                                                                           
Fetched 106 MB in 20s (5,305 kB/s)                                                                                                                                                           
Selecting previously unselected package libpkgconf3:amd64.
(Reading database ... 289023 files and directories currently installed.)
Preparing to unpack .../libpkgconf3_1.8.0-1_amd64.deb ...
Unpacking libpkgconf3:amd64 (1.8.0-1) ...
dpkg: pkg-config: dependency problems, but removing anyway as you requested:
 libdbus-1-dev:amd64 depends on pkg-config.

(Reading database ... 289027 files and directories currently installed.)
Removing pkg-config (0.29.2-1ubuntu3) ...
Selecting previously unselected package pkgconf.
(Reading database ... 289014 files and directories currently installed.)
Preparing to unpack .../00-pkgconf_1.8.0-1_amd64.deb ...
Adding 'diversion of /usr/bin/pkg-config to /usr/bin/pkg-config.real by pkgconf'
Adding 'diversion of /usr/share/aclocal/pkg.m4 to /usr/share/aclocal/pkg.real.m4 by pkgconf'
Adding 'diversion of /usr/share/man/man1/pkg-config.1.gz to /usr/share/man/man1/pkg-config.real.1.gz by pkgconf'
Adding 'diversion of /usr/share/pkg-config-crosswrapper to /usr/share/pkg-config-crosswrapper.real by pkgconf'
Unpacking pkgconf (1.8.0-1) ...
Selecting previously unselected package binfmt-support.
Preparing to unpack .../01-binfmt-support_2.2.1-2_amd64.deb ...
Unpacking binfmt-support (2.2.1-2) ...
Selecting previously unselected package libclang-cpp14.
Preparing to unpack .../02-libclang-cpp14_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking libclang-cpp14 (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package libclang-common-14-dev.
Preparing to unpack .../03-libclang-common-14-dev_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking libclang-common-14-dev (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package llvm-14-linker-tools.
Preparing to unpack .../04-llvm-14-linker-tools_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking llvm-14-linker-tools (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package libclang1-14.
Preparing to unpack .../05-libclang1-14_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking libclang1-14 (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package clang-14.
Preparing to unpack .../06-clang-14_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking clang-14 (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package clang.
Preparing to unpack .../07-clang_1%3a14.0-55~exp2_amd64.deb ...
Unpacking clang (1:14.0-55~exp2) ...
Selecting previously unselected package libclang-14-dev.
Preparing to unpack .../08-libclang-14-dev_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking libclang-14-dev (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package libclang-dev.
Preparing to unpack .../09-libclang-dev_1%3a14.0-55~exp2_amd64.deb ...
Unpacking libclang-dev (1:14.0-55~exp2) ...
Selecting previously unselected package libuv1-dev:amd64.
Preparing to unpack .../10-libuv1-dev_1.43.0-1ubuntu0.1_amd64.deb ...
Unpacking libuv1-dev:amd64 (1.43.0-1ubuntu0.1) ...
Selecting previously unselected package llvm-14-runtime.
Preparing to unpack .../11-llvm-14-runtime_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking llvm-14-runtime (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package llvm-runtime:amd64.
Preparing to unpack .../12-llvm-runtime_1%3a14.0-55~exp2_amd64.deb ...
Unpacking llvm-runtime:amd64 (1:14.0-55~exp2) ...
Selecting previously unselected package llvm-14.
Preparing to unpack .../13-llvm-14_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking llvm-14 (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package llvm.
Preparing to unpack .../14-llvm_1%3a14.0-55~exp2_amd64.deb ...
Unpacking llvm (1:14.0-55~exp2) ...
Selecting previously unselected package llvm-14-tools.
Preparing to unpack .../15-llvm-14-tools_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking llvm-14-tools (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package llvm-14-dev.
Preparing to unpack .../16-llvm-14-dev_1%3a14.0.0-1ubuntu1.1_amd64.deb ...
Unpacking llvm-14-dev (1:14.0.0-1ubuntu1.1) ...
Selecting previously unselected package llvm-dev.
Preparing to unpack .../17-llvm-dev_1%3a14.0-55~exp2_amd64.deb ...
Unpacking llvm-dev (1:14.0-55~exp2) ...
Selecting previously unselected package python-is-python3.
Preparing to unpack .../18-python-is-python3_3.9.2-2_all.deb ...
Unpacking python-is-python3 (3.9.2-2) ...
Selecting previously unselected package python3-pip-whl.
Preparing to unpack .../19-python3-pip-whl_22.0.2+dfsg-1ubuntu0.4_all.deb ...
Unpacking python3-pip-whl (22.0.2+dfsg-1ubuntu0.4) ...
Selecting previously unselected package python3-setuptools-whl.
Preparing to unpack .../20-python3-setuptools-whl_59.6.0-1.2ubuntu0.22.04.2_all.deb ...
Unpacking python3-setuptools-whl (59.6.0-1.2ubuntu0.22.04.2) ...
Selecting previously unselected package python3.10-venv.
Preparing to unpack .../21-python3.10-venv_3.10.12-1~22.04.6_amd64.deb ...
Unpacking python3.10-venv (3.10.12-1~22.04.6) ...
Selecting previously unselected package python3-venv.
Preparing to unpack .../22-python3-venv_3.10.6-1~22.04.1_amd64.deb ...
Unpacking python3-venv (3.10.6-1~22.04.1) ...
Setting up libuv1-dev:amd64 (1.43.0-1ubuntu0.1) ...
Setting up python3-setuptools-whl (59.6.0-1.2ubuntu0.22.04.2) ...
Setting up python3-pip-whl (22.0.2+dfsg-1ubuntu0.4) ...
Setting up libclang1-14 (1:14.0.0-1ubuntu1.1) ...
Setting up libpkgconf3:amd64 (1.8.0-1) ...
Setting up llvm-14-runtime (1:14.0.0-1ubuntu1.1) ...
Setting up llvm-runtime:amd64 (1:14.0-55~exp2) ...
Setting up libclang-common-14-dev (1:14.0.0-1ubuntu1.1) ...
Setting up binfmt-support (2.2.1-2) ...
update-binfmts: warning: python3.10 already enabled in kernel.
update-binfmts: warning: llvm-17-runtime.binfmt already enabled in kernel.
Created symlink /etc/systemd/system/multi-user.target.wants/binfmt-support.service → /lib/systemd/system/binfmt-support.service.
Setting up libclang-cpp14 (1:14.0.0-1ubuntu1.1) ...
Setting up libclang-14-dev (1:14.0.0-1ubuntu1.1) ...
Setting up llvm-14-linker-tools (1:14.0.0-1ubuntu1.1) ...
Setting up python-is-python3 (3.9.2-2) ...
Setting up llvm-14 (1:14.0.0-1ubuntu1.1) ...
Setting up llvm-14-tools (1:14.0.0-1ubuntu1.1) ...
Setting up clang-14 (1:14.0.0-1ubuntu1.1) ...
Setting up python3.10-venv (3.10.12-1~22.04.6) ...
Setting up libclang-dev (1:14.0-55~exp2) ...
Setting up pkgconf (1.8.0-1) ...
Setting up python3-venv (3.10.6-1~22.04.1) ...
Setting up clang (1:14.0-55~exp2) ...
Setting up llvm (1:14.0-55~exp2) ...
Setting up llvm-14-dev (1:14.0.0-1ubuntu1.1) ...
Setting up llvm-dev (1:14.0-55~exp2) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
nirmalya@bluewhale:book-blinky$ 

So, I am not stuck. However, I thought I should bring this up, in case the book needs an update, or I am supposed to take a different step.

nsengupta avatar Oct 15 '24 07:10 nsengupta

Thanks for reporting it! We are evaluating how to simplify and unify the installation's instructions

SergioGasquez avatar Oct 18 '24 10:10 SergioGasquez

As stated in libudev-sys crate it shall be:

sudo apt-get install libudev-dev

not libuv-dev.

Then the cargo installs work as expected.

Fix proposal https://github.com/esp-rs/std-training/pull/267

debrutal avatar Nov 17 '24 12:11 debrutal

Closed by https://github.com/esp-rs/std-training/pull/267

SergioGasquez avatar Nov 18 '24 08:11 SergioGasquez