Closed Weiterso closed 10 months ago
Same problem here trying to use it with NextPush
Thanks, would be nice if you could provide install instructions for cargo too.
I use nextcloudpi and when using rustup it says that cargo is already installed. I installed it as user "mollysocket" anyway because I could not find a single install method other then apt-get and now i got the error:
mollysocket@nextcloudpi:~ $ cargo install mollysocket
Updating crates.io index
Downloaded mollysocket v1.2.0
Downloaded 1 crate (66.1 KB) in 1.27s
Installing mollysocket v1.2.0
Updating crates.io index
Downloaded openssl-probe v0.1.5
Downloaded openssl-macros v0.1.1
Downloaded option-ext v0.2.0
Downloaded parking_lot v0.12.1
Downloaded hyper-tls v0.5.0
Downloaded futures-core v0.3.30
Downloaded resolv-conf v0.7.0
Downloaded httpdate v1.0.3
Downloaded humantime v2.1.0
Downloaded parking_lot_core v0.9.9
Downloaded heck v0.4.1
Downloaded match_cfg v0.1.0
Downloaded http-body v0.4.6
Downloaded utf8parse v0.2.1
Downloaded utf-8 v0.7.6
Downloaded prost v0.12.3
Downloaded httparse v1.8.0
Downloaded hashlink v0.8.4
Downloaded openssl-sys v0.9.99
Downloaded url v2.5.0
Downloaded tinyvec_macros v0.1.1
Downloaded want v0.3.1
Downloaded foreign-types v0.3.2
Downloaded devise_codegen v0.4.1
Downloaded tower-service v0.3.2
Downloaded is-terminal v0.4.10
Downloaded devise v0.4.1
Downloaded async-stream-impl v0.3.5
Downloaded indenter v0.3.3
Downloaded glob v0.3.1
Downloaded equivalent v1.0.1
Downloaded time-core v0.1.2
Downloaded colorchoice v1.0.0
Downloaded pear_codegen v0.2.8
Downloaded pear v0.2.8
Downloaded hostname v0.3.1
Downloaded foreign-types-shared v0.1.1
Downloaded anstyle-query v1.0.2
Downloaded binascii v0.1.4
Downloaded clap_lex v0.6.0
Downloaded atomic v0.5.3
Downloaded try-lock v0.2.5
Downloaded form_urlencoded v1.2.1
Downloaded fnv v1.0.7
Downloaded serde_spanned v0.6.5
Downloaded dirs-sys v0.4.1
Downloaded digest v0.10.7
Downloaded slab v0.4.9
Downloaded devise_core v0.4.1
Downloaded tokio-macros v2.2.0
Downloaded thiserror v1.0.56
Downloaded ref-cast-impl v1.0.22
Downloaded rand_core v0.6.4
Downloaded termcolor v1.4.1
Downloaded tokio-native-tls v0.3.1
Downloaded powerfmt v0.2.0
Downloaded anstyle v1.0.5
Downloaded futures-macro v0.3.30
Downloaded proc-macro2-diagnostics v0.10.1
Downloaded futures-task v0.3.30
Downloaded prost-derive v0.12.3
Downloaded rand_chacha v0.3.1
Downloaded pkg-config v0.3.29
Downloaded toml_datetime v0.6.5
Downloaded serde_urlencoded v0.7.1
Downloaded strsim v0.10.0
Downloaded unicode-xid v0.2.4
Downloaded lock_api v0.4.11
Downloaded smallvec v1.13.1
Downloaded tempfile v3.9.0
Downloaded percent-encoding v2.3.1
Downloaded stable-pattern v0.1.0
Downloaded env_logger v0.10.2
Downloaded block-buffer v0.10.4
Downloaded once_cell v1.19.0
Downloaded ubyte v0.10.4
Downloaded time-macros v0.2.16
Downloaded futures-io v0.3.30
Downloaded multer v2.1.0
Downloaded ref-cast v1.0.22
Downloaded yansi v1.0.0-rc.1
Downloaded quote v1.0.35
Downloaded futures-channel v0.3.30
Downloaded tokio-stream v0.1.14
Downloaded ppv-lite86 v0.2.17
Downloaded getrandom v0.2.12
Downloaded spin v0.9.8
Downloaded futures v0.3.30
Downloaded anyhow v1.0.79
Downloaded native-tls v0.2.11
Downloaded state v0.6.0
Downloaded socket2 v0.5.5
Downloaded cc v1.0.83
Downloaded cookie v0.18.0
Downloaded tinyvec v1.6.0
Downloaded async-trait v0.1.77
Downloaded eyre v0.6.11
Downloaded proc-macro2 v1.0.78
Downloaded clap v4.4.18
Downloaded typenum v1.17.0
Downloaded serde_derive v1.0.196
Downloaded indexmap v2.2.1
Downloaded unicode-bidi v0.3.15
Downloaded bytes v1.5.0
Downloaded hashbrown v0.14.3
Downloaded pin-project-lite v0.2.13
Downloaded toml v0.8.8
Downloaded base64 v0.21.7
Downloaded unicode-ident v1.0.12
Downloaded serde v1.0.196
Downloaded tracing-core v0.1.32
Downloaded memchr v2.7.1
Downloaded mio v0.8.10
Downloaded h2 v0.3.24
Downloaded hyper v0.14.28
Downloaded trust-dns-resolver v0.23.2
Downloaded itertools v0.11.0
Downloaded rand v0.8.5
Downloaded rocket_http v0.5.0
Downloaded rocket_codegen v0.5.0
Downloaded tracing v0.1.40
Downloaded tungstenite v0.20.1
Downloaded figment v0.10.14
Downloaded toml_edit v0.21.0
Downloaded unicode-normalization v0.1.22
Downloaded tokio-util v0.7.10
Downloaded serde_json v1.0.113
Downloaded zerocopy v0.7.32
Downloaded futures-util v0.3.30
Downloaded reqwest v0.11.23
Downloaded openssl v0.10.63
Downloaded winnow v0.5.35
Downloaded rusqlite v0.30.0
Downloaded rustix v0.38.30
Downloaded regex v1.10.3
Downloaded rocket v0.5.0
Downloaded vcpkg v0.2.15
Downloaded trust-dns-proto v0.23.2
Downloaded tokio v1.35.1
Downloaded regex-syntax v0.8.2
Downloaded regex-automata v0.4.5
Downloaded encoding_rs v0.8.33
Downloaded libsqlite3-sys v0.27.0
Downloaded linux-raw-sys v0.4.13
Downloaded libc v0.2.152
Downloaded syn v2.0.48
Downloaded time v0.3.31
Downloaded aho-corasick v1.1.2
Downloaded clap_builder v4.4.18
Downloaded idna v0.5.0
Downloaded idna v0.4.0
Downloaded allocator-api2 v0.2.16
Downloaded bitflags v2.4.2
Downloaded ryu v1.0.16
Downloaded fastrand v2.0.1
Downloaded ipnet v2.9.0
Downloaded tracing-attributes v0.1.27
Downloaded tokio-tungstenite v0.20.1
Downloaded anstream v0.6.11
Downloaded http v0.2.11
Downloaded anstyle-parse v0.2.3
Downloaded rocket_prometheus v0.10.0
Downloaded clap_derive v4.4.7
Downloaded log v0.4.20
Downloaded version_check v0.9.4
Downloaded enum-as-inner v0.6.0
Downloaded ip_rfc v0.1.0
Downloaded uncased v0.9.10
Downloaded quick-error v1.2.3
Downloaded fallible-iterator v0.3.0
Downloaded inlinable_string v0.1.15
Downloaded data-encoding v2.5.0
Downloaded fallible-streaming-iterator v0.1.9
Downloaded crypto-common v0.1.6
Downloaded errno v0.3.8
Downloaded deranged v0.3.11
Downloaded pin-utils v0.1.0
Downloaded generic-array v0.14.7
Downloaded futures-sink v0.3.30
Downloaded either v1.9.0
Downloaded thiserror-impl v1.0.56
Downloaded sha1 v0.10.6
Downloaded signal-hook-registry v1.4.1
Downloaded prometheus v0.13.3
Downloaded directories v5.0.1
Downloaded cpufeatures v0.2.12
Downloaded async-stream v0.3.5
Downloaded byteorder v1.5.0
Downloaded autocfg v1.1.0
Downloaded cfg-if v1.0.0
Downloaded num_cpus v1.16.0
Downloaded lru-cache v0.1.2
Downloaded lazy_static v1.4.0
Downloaded scopeguard v1.2.0
Downloaded mime v0.3.17
Downloaded linked-hash-map v0.5.6
Downloaded itoa v1.0.10
Downloaded ahash v0.8.7
Downloaded 198 crates (19.7 MB) in 10.16s (largest was `libsqlite3-sys` at 4.9 MB)
Compiling proc-macro2 v1.0.78
Compiling unicode-ident v1.0.12
Compiling version_check v0.9.4
Compiling libc v0.2.152
Compiling cfg-if v1.0.0
Compiling once_cell v1.19.0
Compiling autocfg v1.1.0
Compiling quote v1.0.35
Compiling pin-project-lite v0.2.13
Compiling bytes v1.5.0
Compiling syn v2.0.48
Compiling memchr v2.7.1
Compiling serde v1.0.196
Compiling bitflags v2.4.2
Compiling futures-core v0.3.30
Compiling ahash v0.8.7
Compiling httparse v1.8.0
Compiling pkg-config v0.3.29
Compiling vcpkg v0.2.15
Compiling itoa v1.0.10
Compiling num_cpus v1.16.0
Compiling signal-hook-registry v1.4.1
Compiling mio v0.8.10
Compiling socket2 v0.5.5
Compiling slab v0.4.9
Compiling futures-sink v0.3.30
Compiling zerocopy v0.7.32
Compiling proc-macro2-diagnostics v0.10.1
Compiling allocator-api2 v0.2.16
Compiling futures-channel v0.3.30
Compiling pin-utils v0.1.0
Compiling futures-task v0.3.30
Compiling hashbrown v0.14.3
Compiling yansi v1.0.0-rc.1
Compiling fnv v1.0.7
Compiling futures-io v0.3.30
Compiling cc v1.0.83
Compiling tracing-core v0.1.32
Compiling percent-encoding v2.3.1
Compiling http v0.2.11
Compiling equivalent v1.0.1
Compiling rustix v0.38.30
Compiling log v0.4.20
Compiling time-core v0.1.2
Compiling linux-raw-sys v0.4.13
Compiling openssl-sys v0.9.99
Compiling tinyvec_macros v0.1.1
Compiling tinyvec v1.6.0
error: failed to run custom build command for `openssl-sys v0.9.99`
Caused by:
process didn't exit successfully: `/tmp/cargo-install7FsjoL/release/build/openssl-sys-254a55304ea1238a/build-script-main` (exit status: 101)
--- stdout
cargo:rerun-if-env-changed=AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_DIR
AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_DIR
OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=OPENSSL_STATIC
cargo:rerun-if-env-changed=OPENSSL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
run pkg_config fail:
pkg-config exited with status code 1
> PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags openssl
The system library `openssl` required by crate `openssl-sys` was not found.
The file `openssl.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
The PKG_CONFIG_PATH environment variable is not set.
HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `openssl.pc`.
--- stderr
thread 'main' panicked at /opt/mollysocket/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.99/build/find_normal.rs:190:5:
Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it, you can set the `OPENSSL_DIR` environment variable for the
compilation process.
Make sure you also have the development packages of openssl installed.
For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.
If you're in a situation where you think the directory *should* be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.
$HOST = aarch64-unknown-linux-gnu
$TARGET = aarch64-unknown-linux-gnu
openssl-sys = 0.9.99
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 `mollysocket v1.2.0`, intermediate artifacts can be found at `/tmp/cargo-install7FsjoL`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
with another temp file every time. And I stuck there now, removing the temp files, reboot, reinstall of rustup did not help.
Would be really nice if someone could give me a hand here :D
cargo 1.75.0
Cargo has its own doc: https://doc.rust-lang.org/cargo/getting-started/installation.html
You need these packages : libssl3 libsqlite3-0 ca-certificates
Thanks for tying to help me, but I am not an advanced user, I just don't get it. I have never heard of rust or cargo before
Where do I get this packages from you mentioned, I can't use apt-get because I do not know the password for the mollysocket user I tried this but I just created the folders I think.
`Rust is installed now. Great!
To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).
To configure your current shell, run:
source "$HOME/.cargo/env"
mollysocket@nextcloudpi:~ $ source "$HOME/.cargo/env"
mollysocket@nextcloudpi:~ $ cargo new libssl3
Created binary (application) `libssl3` package
mollysocket@nextcloudpi:~ $ cargo new libsqlite3-0
Created binary (application) `libsqlite3-0` package
mollysocket@nextcloudpi:~ $ cargo new ca-certificates
Created binary (application) `ca-certificates` package
mollysocket@nextcloudpi:~ $ cargo new libssl3
error: destination `/opt/mollysocket/libssl3` already exists
Use `cargo init` to initialize the directory
mollysocket@nextcloudpi:~ $ cargo init
Created binary (application) package
mollysocket@nextcloudpi:~ $ cargo install mollysocket`
and I get the same error as before. When I install rustup in my main user I can't use it with the mollysocket user.
I assume you are using a debian based distribution. Those 3 packages have to be installed with your system package manager, as root.
apt install libssl3 libsqlite3-0 ca-certificates
Yes exactly, I use raspian, which is debian.
root@nextcloudpi:~# apt install libsqlite3-0
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
**libsqlite3-0 is already the newest version (3.34.1-3).**
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@nextcloudpi:~# apt install ca-certificates
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
**ca-certificates is already the newest version (20210119).**
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@nextcloudpi:~# apt install libssl3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
**E: Unable to locate package libssl3**
I am unable to install libssl3
try libssl-dev
That helped me move forward but unfortunately directly into the next error:
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL="C" PATH="/opt/mollysocket/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/bin:/opt/mollysocket/.cargo/bin:/usr/local/sbin:/usr/lo cal/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "/tmp/rustcsDiSOc/symbols.o" "/tmp/cargo-installXCQJHE/release/deps/mollysocket-0389f912f61820c7.mollysocket.f096210fe59245f1-cgu.0 .rcgu.o" "-Wl,--as-needed" "-L" "/tmp/cargo-installXCQJHE/release/deps" "-L" "/opt/mollysocket/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/mollysocket/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcompiler_builtins-3f410048cea510b6.rlib" "-Wl,-Bdynamic" " -lssl" "-lcrypto" "-lsqlite3" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/mollysocket/.rustup/toolchains/stable-aarch64-unk nown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-o" "/tmp/cargo-installXCQJHE/release/deps/mollysocket-0389f912f61820c7" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,--s trip-all" "-nodefaultlibs"
= note: /usr/bin/ld: cannot find -lsqlite3
collect2: error: ld returned 1 exit status
error: could not compile `mollysocket` (bin "mollysocket") due to previous error
error: failed to compile `mollysocket v1.2.0`, intermediate artifacts can be found at `/tmp/cargo-installXCQJHE`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
I tried to install lsqlite3 as root as well but the package is also not found.
Edit:
sudo apt install libsqlite3-dev
did the trick.
Summarise for debian/raspian (NextCloudPi):
install necessary packages as root:
apt install libssl-dev libsqlite3-dev libsqlite3-0 ca-certificates
create user "mollysocket" and switch to that user:
sudo useradd mollysocket -m -d /opt/mollysocket
sudo -su mollysocket
cd
install cargo which is included in rust as mollysocket user:
curl https://sh.rustup.rs -sSf | sh
I know I'm annoying, but now "prod.toml" is not created and so I can't configure it.
Installed package `mollysocket v1.2.0` (executable `mollysocket`)
mollysocket@nextcloudpi:~ $ ln -s /opt/mollysocket/.cargo/bin/mollysocket /opt/mollysocket/ms
mollysocket@nextcloudpi:~ $ MOLLY_CONF=/opt/mollysocket/prod.toml /opt/mollysocket/ms c l
thread 'main' panicked at /opt/mollysocket/.cargo/registry/src/index.crates.io-6f17d22bba15001f/mollysocket-1.2.0/src/config.rs:131:13:
MOLLY_CONF=/opt/mollysocket/prod.toml, file not found.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
mollysocket@nextcloudpi:~ $ ls -l
total 20
drwxr-xr-x 4 mollysocket mollysocket 4096 Jan 30 15:54 ca-certificates
-rw-r--r-- 1 mollysocket mollysocket 180 Jan 30 16:03 Cargo.toml
drwxr-xr-x 4 mollysocket mollysocket 4096 Jan 30 15:54 libsqlite3-0
drwxr-xr-x 4 mollysocket mollysocket 4096 Jan 30 15:54 libssl3
lrwxrwxrwx 1 mollysocket mollysocket 39 Jan 31 22:43 ms -> /opt/mollysocket/.cargo/bin/mollysocket
drwxr-xr-x 2 mollysocket mollysocket 4096 Jan 30 16:03 src
mollysocket@nextcloudpi:~ $ exit
If it works in the end I will write a short summary maybe someone else needs a step by step instruction as a ncp user too,
Good catch, the file isn't created automatically since v1.2.0. If you want to use a config file, you have to create it manually.
I need to update INSTALL.md, you can open an issue for that if you want
@citizenserious : I've updated the install doc
You are awesome will try that in a minute (:
Up and running! Thank you very much. I am very happy right now (: You could add this to the install doc as advice for an existing server like Nextcloud if you wish and think it could be helpfull (helped me):
Step-by-step guide to set up a reverse proxy configuration in Apache to forward requests to your-domain.com/ms ( "/ms" is an example you could use whatever you want and isn't used yet by your instance) to while keeping the rest of the website content unchanged:
If you want to have both the original website (like Nextcloud) content on your-domain.com/ and the reverse proxy setup coexist, you can configure specific paths or subdomains to be proxied to mollysocket while leaving other paths or the root domain unchanged.
Here's a step-by-step guide to set up a reverse proxy configuration in Apache to forward requests to your-domain.com/ms to while keeping the rest of the website content unchanged:
Add the following lines to set up the reverse proxy for the specific path /ms:
<Location /ms>
ProxyPass http://127.0.0.1:8020/
ProxyPassReverse http://127.0.0.1:8020/
</Location>
Save the configuration file and restart Apache to apply the changes:
sudo systemctl restart apache2
Test the configuration by accessing your-domain.com/ms in a web browser. Requests to /ms should now be forwarded to the backend server running on 127.0.0.1:8020.
Ensure that other paths on your website, such as /, continue to serve content from the original website without being proxied.
By following these steps, you can set up a reverse proxy configuration in Apache to forward requests to a specific path /ms to a backend server while maintaining the rest of the website content unchanged.
Tried to install mollysocket; got this error:
$ cargo install mollysocket Updating crates.io index Downloaded mollysocket v1.2.0 error: failed to parse manifest at´
/opt/mollysocket/.cargo/registry/src/github.com-1ecc6299db9ec823/mollysocket-1.2.0/Cargo.toml
´Caused by: invalid type: unit variant, expected string only for key´
profile.release.strip
how to solve this? I'm trying this on a dietpi Debian GNU/Linux 11 (bullseye) x86_64