Infinit Drive and CLI - 'infinit-user is deprecated'
paulocoghi opened this issue · comments
(First of all, congratulations to the project)
Description:
After correctly installing infinit
package in Ubuntu 16.04 64bit, I installed infinit-desktop
and tried to create an account.
The following message is returned:
It seems that infinit-desktop
is using an old command syntax.
Steps to reproduce:
-
Choose a computer (or VM) with Ubuntu 16.04 64bit
-
Install
infinit
package according to official instructions ( https://infinit.sh/download ) -
Install
infinit-desktop
package according to official instructions ( https://infinit.sh/drive ) -
Run the binary
/opt/infinit-desktop/bin/infinit
and try to create an account
Details:
Ubuntu 16.04 64bit
Infinit 0.7.3
Infinit-Desktop 0.3.0
Edit
The problem persist even after correctly adding /opt/infinit/bin
to PATH
CLI note:
Using the steps documented in https://infinit.sh/get-started through CLI, it generates the same error:
$ infinit-user --signup --name paulocoghi --fullname "Paulo Coghi"
[infinit] [main] infinit-user is deprecated, please run: infinit user signup --name paulocoghi --fullname Paulo Coghi
Generating RSA keypair.
infinit-user: symbol lookup error: infinit-user: undefined symbol: _ZN7infinit7Infinit16beyond_push_dataERKSsS2_S2_RKN4elle15ConstWeakBufferES2_RKNS_4UserEbb
I understand and I will use the new syntax. I'm just informing so we can keep the docs updated (and I'll certainly contribute to documentation when its repository becomes available).
Hi.
Thanks for reporting.
We recently (0.7.3) changed the way infinit
's binaries work and infinit-desktop
was left behind (the new binaries were supposed to be backward-compatible).
I'll fix it and push a new infinit-desktop
in the days to come and keep you updated.
My pleasure!
Just a note, other commands from documentation, like:
infinit-storage --create --filesystem --name local --capacity ...
are also deprecated.
This is also affecting the daemon and docker:
[infinit] [main] infinit-volume is deprecated, please run: infinit volume create web-proxy_caddy-config --network diddledan/afterlife --create-root --register-service --as diddledan
/opt/infinit/bin/infinit-volume: symbol lookup error: /opt/infinit/bin/infinit-volume: undefined symbol: _ZN7infinit6VolumeC1ENS_10descriptor14BaseDescriptor4NameESsRKNS_12MountOptionsEN5boost8optionalISsEES9_
[ cli.daemon ] [request 0x2513e90] error creating volume: volume creation failed
Thanks to all for the reports about the warnings, we will address them. But rest assured that everything works as expected, albeit in a verbose fashion :)
However, I am worried by parts of the original message:
infinit-user: symbol lookup error: infinit-user: undefined symbol: _ZN7infinit7Infinit16beyond_push_dataERKSsS2_S2_RKN4elle15ConstWeakBufferES2_RKNS_4UserEbb
This should not happen, and is certainly breaking things. Paulo, can you comment on this?
there was a similar undefined symbol in my log two comments ago. I'm pulling it out here to highlight in light of @akimd's concerns:
infinit-volume: undefined symbol: _ZN7infinit6VolumeC1ENS_10descriptor14BaseDescriptor4NameESsRKNS_12MountOptionsEN5boost8optionalISsEES9_
It seems to me that new versions of infinit are not backward-compatible with older ones. And updating docs and get started guide will solve this issue.
Hi @paulocoghi. Well, really, as far as we know, they are backward compatible (except for some corner cases). Maybe the message
[infinit] [main] infinit-volume is deprecated, please run: infinit volume create web-proxy_caddy-config --network diddledan/afterlife --create-root --register-service --as diddledan
should read
[infinit] [main] warning: infinit-volume is deprecated, please run: infinit volume create web-proxy_caddy-config --network diddledan/afterlife --create-root --register-service --as diddledan
cause, really, all the message is saying is "you type this, and I ran that instead".
I am also seeing the undefined symbol
errors with the deprecated binaries.
Maybe just make them small shell script stubs instead of delivering broken binaries?
@diddledan So the missing symbol is:
infinit::Volume::Volume(infinit::descriptor::BaseDescriptor::Name,
std::string,
infinit::MountOptions const&,
boost::optional<std::string>,
boost::optional<std::string>)
which is not surprising, as we are not using it, it has 6 arguments in the 0.7.3 release.
Could you please send us ls -l /opt/infinit/bin/
? It looks like something was broken in the installation.
Could also please try to run the updated command yourself to check that it does work?
$ infinit volume create web-proxy_caddy-config --network diddledan/afterlife --create-root --register-service --as diddledan
Hi @djmaze. Same question: could you show us you infinit binaries? It seems that something horribly wrong happened during the packaging. Hopefully, infinit
, the main binary, should work properly, it's "only" the backward compatible binaries that seem to be broken.
(and @djmaze, FWIW, the backward compatible binaries should just be symlinks to infinit
, they are not supposed to be genuine binaries, so something similar to short shell scripts. Something in the packaging procedure wrecked those symlinks).
Which version did you download? Ubuntu, tarball, etc.?
$ ls -l /opt/infinit/bin/
total 3004380
-rwxr-xr-x 1 root root 547584 Feb 14 15:31 fnetusermount-client
-rwxr-xr-x 1 root root 899456 Feb 6 17:53 fnetusermount-server
-r-xr-xr-x 1 root root 132999904 Feb 14 15:27 infinit
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-acl
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-block
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-credentials
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-daemon
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-device
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-doctor
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-drive
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-journal
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-ldap
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-network
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-passport
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-storage
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-user
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-volume
This is on Ubuntu 16.04. I followed the instructions from the website:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3D2C3B0B
add-apt-repository "deb https://debian.infinit.sh/ trusty main"
apt-get update
apt-get install infinit
Yeah, it's broken. One simple fix should be:
cd /opt/infinit/bin
for i in infinit-*; do sudo ln -sf infinit $i; done
We're sorry about that.
@akimd Thanks, for the help. No problem, after all this is still dubbed alpha ;)
$ ls -l /opt/infinit/bin/
total 3004412
-rwxr-xr-x 1 root root 547584 Feb 14 15:31 fnetusermount-client
-rwxr-xr-x 1 root root 899456 Feb 6 17:53 fnetusermount-server
-r-xr-xr-x 1 root root 132999904 Feb 14 15:27 infinit
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-acl
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-block
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-credentials
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-daemon
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-device
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-doctor
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-drive
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-journal
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-ldap
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-network
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-passport
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-storage
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-user
-rwxr-xr-x 1 root root 210144696 Feb 14 13:46 infinit-volume
and the creation command seems to work when run myself (not via the docker daemon)
$ infinit volume create web-proxy_caddy-config --network diddledan/afterlife --create-root --register-service --as diddledan
[infinit.Network] [main] client version: 0.7.3
[infinit.model.Model] [main] infinit::model::Model(0x2052490): compatibility version 0.7.3
[infinit.model.doughnut.Local] [main] dht::Local(0xb921918800): listen on tcp://[::]:35137
[infinit.model.doughnut.Local] [main] dht::Local(0xb921918800): listen on utp://[::]:35137
[infinit.model.doughnut.Doughnut] [main] unable to monitor, socket already present at: "/tmp/infinit/root/monitor/d62c94.sock"
[ cli.volume ] [main] register volume in the network
[ cli.volume ] [main] create root directory
Locally saved volume descriptor "diddledan/web-proxy_caddy-config".
@diddledan Yeah, you really should run
cd /opt/infinit/bin
for i in infinit-*; do sudo ln -sf infinit $i; done
too, and forgive us :)
yup, I've done that. docker seems much happier now. my test deployment using volumes hasn't failed instantly and is still deploying, so things are looking like I'm good now!
Something to note for the documentation of the docker daemon:
- Need to show that the infinit network needs to be set-up per the network docs before starting on docker
- If all the docker nodes are also storage nodes then infinit network needs to be running on all docker systems
- I think the network needs to be running under the user specified by
--docker-user
toinfinit daemon
but it is unclear whether that is true
- the docker daemon is noted that it needs to be run as root, and a mention of
--docker-user
is noted in the current docs but it isn't clear that the user assigned must have infinit configured. I only noticed the discrepency when the docker daemon tried accessing files from .local/share/infinit which weren't there because I used a different user to configure the infinit client.