Cannot install tickrs via Cargo

Hello, new here. A bit of a detailed question - I have no real technical/programming knowledge other than installing various distros and running simple commands that I’ve picked up, but I aim to learn more. Anyway, I’m having trouble installing package “tickrs” via Cargo, which is very important to me using a distro.

I have successfully installed it in many other distros. It is in the Arch Community repo, I installs in Mint and other Ubuntu-based distros by installing build-essentials (not needed in Mint) and running the rustup script from rust-lang.org. Sometimes I also need to install make or cmake as well. Then run “cargo install tickrs” and it works. The only way I have found it to work in Fedora is by installing every package from the “C Development Tools and Libraries” and “Development Tools” groups via dnfdragora. Running the group install command doesn’t install all of the needed packages. But that installs multiple hundreds of packages and I’m sure most aren’t needed I just can’t figure out what I actually need and I have not been able to find any documentation.

The error message is below (after fresh install, adding rustup script, make, cmake, gcc (which got me a bit further). I don’t know nearly enough to undersand what it means. Any help is greatly appreciated! PS. the problem exists in several DE/spins that I’ve tried. As far as I can see, openssl is installed, but there are many many variations of that as well. Thank you!


error: failed to run custom build command for openssl-sys v0.9.87

Caused by:
process didn’t exit successfully: /tmp/cargo-installAxZiL6/release/build/openssl-sys-36007bdb9b2e7a0b/build-script-main (exit status: 101)
— stdout
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu
CC_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu
CC_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_CC
HOST_CC = None
cargo:rerun-if-env-changed=CC
CC = None
cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu
CFLAGS_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu
CFLAGS_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_CFLAGS
HOST_CFLAGS = None
cargo:rerun-if-env-changed=CFLAGS
CFLAGS = None
cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some(“false”)
CARGO_CFG_TARGET_FEATURE = Some(“fxsr,sse,sse2”)
cargo:rerun-if-env-changed=AR_x86_64-unknown-linux-gnu
AR_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=AR_x86_64_unknown_linux_gnu
AR_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_AR
HOST_AR = None
cargo:rerun-if-env-changed=AR
AR = None
cargo:rerun-if-env-changed=ARFLAGS_x86_64-unknown-linux-gnu
ARFLAGS_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=ARFLAGS_x86_64_unknown_linux_gnu
ARFLAGS_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_ARFLAGS
HOST_ARFLAGS = None
cargo:rerun-if-env-changed=ARFLAGS
ARFLAGS = None
cargo:rerun-if-env-changed=RANLIB_x86_64-unknown-linux-gnu
RANLIB_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=RANLIB_x86_64_unknown_linux_gnu
RANLIB_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_RANLIB
HOST_RANLIB = None
cargo:rerun-if-env-changed=RANLIB
RANLIB = None
cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64-unknown-linux-gnu
RANLIBFLAGS_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64_unknown_linux_gnu
RANLIBFLAGS_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_RANLIBFLAGS
HOST_RANLIBFLAGS = None
cargo:rerun-if-env-changed=RANLIBFLAGS
RANLIBFLAGS = None
running cd “/tmp/cargo-installAxZiL6/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/build/src” && AR=“ar” CC=“cc” RANLIB=“ranlib” “perl” “./Configure” “–prefix=/tmp/cargo-installAxZiL6/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/install” “–openssldir=/usr/local/ssl” “no-dso” “no-shared” “no-ssl3” “no-unit-test” “no-comp” “no-zlib” “no-zlib-dynamic” “no-md2” “no-rc5” “no-weak-ssl-ciphers” “no-camellia” “no-idea” “no-seed” “linux-x86_64” “-O2” “-ffunction-sections” “-fdata-sections” “-fPIC” “-m64”

— stderr
Can’t locate FindBin.pm in @INC (you may need to install the FindBin module) (@INC contains: /usr/local/lib64/perl5/5.36 /usr/local/share/perl5/5.36 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./Configure line 15.
BEGIN failed–compilation aborted at ./Configure line 15.
thread ‘main’ panicked at ’

Error configuring OpenSSL build:
Command: cd “/tmp/cargo-installAxZiL6/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/build/src” && AR=“ar” CC=“cc” RANLIB=“ranlib” “perl” “./Configure” “–prefix=/tmp/cargo-installAxZiL6/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/install” “–openssldir=/usr/local/ssl” “no-dso” “no-shared” “no-ssl3” “no-unit-test” “no-comp” “no-zlib” “no-zlib-dynamic” “no-md2” “no-rc5” “no-weak-ssl-ciphers” “no-camellia” “no-idea” “no-seed” “linux-x86_64” “-O2” “-ffunction-sections” “-fdata-sections” “-fPIC” “-m64”
Exit status: exit status: 2

  ', /home/jm/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-src-111.25.3+1.1.1t/src/lib.rs:506:13

note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish…
error: failed to compile tickrs v0.14.8, intermediate artifacts can be found at /tmp/cargo-installAxZiL6

I used dnf provides */FindBin.pm to identify that the missing perl module is in the package “perl-FindBin”
Install it with sudo dnf install perl-FindBin then try again.

This can also be done with a shortcut of sudo dnf install */FindBin.pm

You may need to walk through the compile tries one at a time and fix each one before the task completes.

Thank you so much for the very prompt response, greatly appreciated! I installed perl-FindBin but I am getting this error. I’m not sure how to proceed from here.

[jm@fedora ~]$ cargo install tickrs
Updating crates.io index
Installing tickrs v0.14.8
Compiling proc-macro2 v1.0.56
Compiling quote v1.0.26
Compiling unicode-ident v1.0.8
Compiling autocfg v1.1.0
Compiling libc v0.2.142
Compiling cfg-if v1.0.0
Compiling version_check v0.9.4
Compiling syn v1.0.109
Compiling cc v1.0.79
Compiling value-bag v1.0.0-alpha.9
Compiling memchr v2.5.0
Compiling log v0.4.17
Compiling futures-core v0.3.28
Compiling syn v2.0.15
Compiling pkg-config v0.3.26
Compiling crossbeam-utils v0.8.15
Compiling pin-project-lite v0.2.9
Compiling futures-io v0.3.28
Compiling ctor v0.1.26
Compiling slab v0.4.8
Compiling openssl-src v111.25.3+1.1.1t
Compiling event-listener v2.5.3
Compiling openssl-sys v0.9.87
Compiling concurrent-queue v2.2.0
Compiling libz-sys v1.1.9
Compiling libnghttp2-sys v0.1.7+1.45.0
error: failed to run custom build command for openssl-sys v0.9.87

Caused by:
process didn’t exit successfully: /tmp/cargo-installyRo47d/release/build/openssl-sys-36007bdb9b2e7a0b/build-script-main (exit status: 101)
— stdout
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu
CC_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu
CC_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_CC
HOST_CC = None
cargo:rerun-if-env-changed=CC
CC = None
cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu
CFLAGS_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu
CFLAGS_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_CFLAGS
HOST_CFLAGS = None
cargo:rerun-if-env-changed=CFLAGS
CFLAGS = None
cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some(“false”)
CARGO_CFG_TARGET_FEATURE = Some(“fxsr,sse,sse2”)
cargo:rerun-if-env-changed=AR_x86_64-unknown-linux-gnu
AR_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=AR_x86_64_unknown_linux_gnu
AR_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_AR
HOST_AR = None
cargo:rerun-if-env-changed=AR
AR = None
cargo:rerun-if-env-changed=ARFLAGS_x86_64-unknown-linux-gnu
ARFLAGS_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=ARFLAGS_x86_64_unknown_linux_gnu
ARFLAGS_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_ARFLAGS
HOST_ARFLAGS = None
cargo:rerun-if-env-changed=ARFLAGS
ARFLAGS = None
cargo:rerun-if-env-changed=RANLIB_x86_64-unknown-linux-gnu
RANLIB_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=RANLIB_x86_64_unknown_linux_gnu
RANLIB_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_RANLIB
HOST_RANLIB = None
cargo:rerun-if-env-changed=RANLIB
RANLIB = None
cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64-unknown-linux-gnu
RANLIBFLAGS_x86_64-unknown-linux-gnu = None
cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64_unknown_linux_gnu
RANLIBFLAGS_x86_64_unknown_linux_gnu = None
cargo:rerun-if-env-changed=HOST_RANLIBFLAGS
HOST_RANLIBFLAGS = None
cargo:rerun-if-env-changed=RANLIBFLAGS
RANLIBFLAGS = None
running cd “/tmp/cargo-installyRo47d/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/build/src” && AR=“ar” CC=“cc” RANLIB=“ranlib” “perl” “./Configure” “–prefix=/tmp/cargo-installyRo47d/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/install” “–openssldir=/usr/local/ssl” “no-dso” “no-shared” “no-ssl3” “no-unit-test” “no-comp” “no-zlib” “no-zlib-dynamic” “no-md2” “no-rc5” “no-weak-ssl-ciphers” “no-camellia” “no-idea” “no-seed” “linux-x86_64” “-O2” “-ffunction-sections” “-fdata-sections” “-fPIC” “-m64”
Configuring OpenSSL version 1.1.1t (0x1010114fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile



*** OpenSSL has been successfully configured ***


*** If you encounter a problem while building, please open an ***
*** issue on GitHub https://github.com/openssl/openssl/issues ***
*** and include the output from the following command: ***


*** perl configdata.pm --dump ***


*** (If you are new to OpenSSL, you might want to consult the ***
*** ‘Troubleshooting’ section in the INSTALL file first) ***



running cd “/tmp/cargo-installyRo47d/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/build/src” && “make” “depend”

— stderr
Can’t locate File/Compare.pm in @INC (you may need to install the File::Compare module) (@INC contains: . /usr/local/lib64/perl5/5.36 /usr/local/share/perl5/5.36 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./util/add-depends.pl line 16.
BEGIN failed–compilation aborted at ./util/add-depends.pl line 16.
make: *** [Makefile:264: depend] Error 2
thread ‘main’ panicked at ’

Error building OpenSSL dependencies:
Command: cd “/tmp/cargo-installyRo47d/release/build/openssl-sys-cc1b7ce2294256f0/out/openssl-build/build/src” && “make” “depend”
Exit status: exit status: 2

  ', /home/jm/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-src-111.25.3+1.1.1t/src/lib.rs:506:13

note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish…
error: failed to compile tickrs v0.14.8, intermediate artifacts can be found at /tmp/cargo-installyRo47d

Another similar error.
It cannot find Compare.pm perl module, so it needs to be located.

# dnf install '*/Compare.pm'
Last metadata expiration check: 3:32:15 ago on Mon 01 May 2023 07:37:43 AM CDT.
Package perl-File-Compare-1.100.700-492.fc37.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

As you can see I already have that installed.

Look at the reported error each time and make needed installs until every dependency is met.

That Worked! Thank you so, so much!

1 Like