Open jakubhejhal opened 9 months ago
Hi @jakubhejhal, if you can share which download url should be used for arch
I can add the entry and publish a patch. Though because Arch Linux is a rolling release distribution it's hard to guarantee support
I downloaded the latest ubuntu
binaries and copied them to site-packages/fiftyone/db
:
tar -xzvf mongodb-linux-x86_64-ubuntu2204-7.0.4.tgz
cp -r bin ~/.venv/lib/python3.10/site-packages/fiftyone/db/
And that seems to fixed the issue. But as you said, arch is rolling release and I have no idea if arch may decide to upgrade some underlying mongodb dependencies.
I tried to list the linked libraries that the ubuntu mongodb uses:
$> objdump -p .venv/lib/python3.10/site-packages/fiftyone/db/bin/mongod
...
Dynamic Section:
NEEDED libcurl.so.4
NEEDED liblzma.so.5
NEEDED libresolv.so.2
NEEDED libcrypto.so.3
NEEDED libssl.so.3
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
NEEDED ld-linux-x86-64.so.2
Which all seem to be very widely used libs, so I guess nothing should break?
Had the same issue and ubuntu binaries are working for me. As another solution (I don't know the consequences of it) falling back to the system mongod binaries can be used by checking the if it is in the $PATH. I am willing to contribute if you think it is logical.
Hi @zadobudak I believe that would be useful! A contribution would be great! That would be a more reliable approach.
Pardon the delay @jakubhejhal. I think @zadobudak's is a bit more reliable. I think the fiftyone-db
should only attempt installing officially supported downloads.
Generally speaking, we recommend configuring a database_uri for the best experience if FiftyOne is used frequently as it avoids subprocess management of the db.
I had a similar problem on Red Hat. The way you are parsing the os-release file with csv.reader doesn't work if there are empty lines in the file. The file on Red Hat 8 seems to have an empty line after BUG_REPORT_URL causing the parsing to fail.
$ cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.6 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.6 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.6"
This leads to it failing to download the mongodb binaries.
I had a similar problem on Red Hat. The way you are parsing the os-release file with csv.reader doesn't work if there are empty lines in the file. The file on Red Hat 8 seems to have an empty line after BUG_REPORT_URL causing the parsing to fail.
$ cat /etc/os-release NAME="Red Hat Enterprise Linux" VERSION="8.6 (Ootpa)" ID="rhel" ID_LIKE="fedora" VERSION_ID="8.6" PLATFORM_ID="platform:el8" PRETTY_NAME="Red Hat Enterprise Linux 8.6 (Ootpa)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos" HOME_URL="https://www.redhat.com/" DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8" REDHAT_BUGZILLA_PRODUCT_VERSION=8.6 REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" REDHAT_SUPPORT_PRODUCT_VERSION="8.6"
This leads to it failing to download the mongodb binaries.
Thanks for reporting this! Fixed in fiftyone-db==1.1.1
@benjaminpkane hello I am a little late but I found 2 solutions for the problem and implement it will send it here for contribution however I have one question in my mind which one is a better way?
Hi @zadobudak. 2. sounds like a hard solution to maintain, I agree. 1. sounds like a reasonable enhancement. A contribution would be welcomed! Just want to make sure this is a backward compatible change for users
System information
ArchLinux x86_64
:3.10.13
:0.23.2
:pip
:Commands to reproduce
Describe the problem
The
mongodb
database binaries which are supposed to be shipped withfiftyone
by thefiftyone-db
auxilliary package aren't downloaded and installed:Thus running fiftyone fails:
I looked into the
fiftyone-db
setup.py
and it's failing here.The
ID=arch
isn't in the LINUX_DOWNLOADS dict.But the installation of
fiftyone-db
fails silently.