GoogleCloudPlatform / gcsfuse

A user-space file system for interacting with Google Cloud Storage

Home Page:https://cloud.google.com/storage/docs/gcs-fuse

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

offline installation on rockly linux running as a gcp vm

ranasaria opened this issue · comments

commented

Describe the issue
We have a gcp dataproc vm on which we need to install gcsfuse. However, this node does not have internet connectivity established so one needs to transfer all the packages to be installed on the node locally via cloud storage. What is the list of rpms that I can download from where and install them on this node?

System (please complete the following information):

  • OS: Rocky Linux
  • Platform: GCP Dataproc vm

SLO:
24 hrs to respond and 7 days to close the issue.

Did you try installing the rpm package from release tag?

Here is the latest gcsfuse rpm package - https://github.com/GoogleCloudPlatform/gcsfuse/releases/download/v1.3.0/gcsfuse-1.3.0-1.x86_64.rpm

commented

Yes I tried to install the rpm at the link: https://github.com/GoogleCloudPlatform/gcsfuse/releases/download/v1.3.0/gcsfuse-1.3.0-1.x86_64.rpm.

I get the following error:
image

I found the libfuse that is needed by the the gcsfuse rpm mentioned in the error here:
GitHub - libfuse/libfuse: The reference implementation of the Linux FUSE (Filesystem in Userspace) interface but its installation
needs tools like signify, meson, ninja to get installed so that seemed like opening a complete new can of worms. Another way I tried to get libfuse installed was using this rpm:
fuse-2.8.3-5.el6.x86_64.rpm
but tryig to install that package gave the following error:

aranasaria_toryburch_com@bigqueryqa-dataproc-cluster-01-m:~/.gcsfuse_install$ sudo rpm -i fuse-2.8.3-5.el6.x86_64.rpm
warning: fuse-2.8.3-5.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
        file /usr/bin/fusermount conflicts between attempted installs of fuse-2.8.3-5.el6.x86_64 and fuse-2.8.3-5.el6.x86_64
        file /usr/bin/ulockmgr_server conflicts between attempted installs of fuse-2.8.3-5.el6.x86_64 and fuse-2.8.3-5.el6.x86_64

@ranasaria First and foremost, the only supported ways of installing GCSFuse are the ones at Install Cloud Storage FUSE. The offline installation is not a supported way as of today. @marcoa6 it is something for you to see as a possibility.
The only supported OS'es and architectures are the one listed here and Rocky linux is not among them.

Anyway, we want to unblock you if we can.
I wanted to try out installing fuse online, and gcsfuse from rpm package to see which version of fuse will be required by gcsfuse v1.3.0 on rocky linux. It seems to work for me. You can give the same a try.

I tried to do this on a VM (GCE VM - VM created using Google Cloud Platform's Compute Engine service) booted with a Rocky Linux 8 image, and found the following:

# Assuming wget is already installed (if not, $ sudo yum install wget)
$ which wget
/usr/bin/wget

# let's install fuse using yum (online package manager)
$ sudo yum install -y fuse
...
Downloading Packages:
(1/2): fuse-2.9.7-17.el8.x86_64.rpm                                                                                                                                                                                                                       3.7 MB/s |  82 kB     00:00    
(2/2): fuse-common-3.3.0-17.el8.x86_64.rpm                                                                                                                                                                                                                
...
Installed:
  fuse-2.9.7-17.el8.x86_64

# so, looks like yum installs fuse-2.9.7-17.el8.x86_64 .

# let's test this version of fuse for gcsfuse offline rpm installation
$ sudo rpm -i gcsfuse-1.3.0-1.x86_64.rpm
# which gcsfuse
/usr/bin/gcsfuse
# Tested out gcsfuse by mounting a GCS bucket and ran some FS operations. It worked well.

# Next remove gcsfuse, fuse to test with offline installation of fuse.
$ sudo rpm -e fuse gcsfuse
$ which gcsfuse
/usr/bin/which: no gcsfuse in (/home/gargnitin_google_com/.local/bin:/home/gargnitin_google_com/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
# Try install gcsfuse again to verify that fuse really got removed
$ sudo rpm -i gcsfuse-1.3.0-1.x86_64.rpm
error: Failed dependencies:
	fuse is needed by gcsfuse-1.3.0-1.x86_64

# Searched for fuse-2.9.7-17.el8.x86_64.rpm on internet and found one.
# Not sure about if that fuse package is safe though.
$ wget https://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/fuse-2.9.7-17.el8.x86_64.rpm
--2023-12-28 04:43:38--  https://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/fuse-2.9.7-17.el8.x86_64.rpm
Resolving rpmfind.net (rpmfind.net)... 195.220.108.108
Connecting to rpmfind.net (rpmfind.net)|195.220.108.108|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 84948 (83K) [application/x-rpm]
Saving to: ‘fuse-2.9.7-17.el8.x86_64.rpm’

# let's install fuse offline from this rpm package
$ sudo rpm -i fuse-2.9.7-17.el8.x86_64.rpm 
warning: fuse-2.9.7-17.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
# that seems to have worked, exceot fir that signature warning.

#Anyway, let's try install gcsfuse offline now
$ sudo rpm -i gcsfuse-1.3.0-1.x86_64.rpm
$ which gcsfuse 
/usr/bin/gcsfuse
$ gcsfuse --version
gcsfuse version 1.3.0 (Go version go1.21.4)
# tested out gcsfuse once again by mounting a bucket and running a few FS operations. It all worked well.

@ranasaria please try the solution in #1548 (comment) and let me know if it worked or not.

Closing this issue as we haven't received any response in 30 days. Please reopen if you are still experiencing this issue.