New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(Linux) Change installation path from /usr/local/bin to /usr/bin #57
Comments
Because of this issue I would also like to see this changed as suggested. |
Verified on version 3.3.21, tested on multiple Linux Systems, Fedora 33, Linux Mint, Ubuntu 20.04, CentOS 8, Linux MX, Debian, the installation path has been changed from Please be aware that when upgrading to a new IVPN version, if using the same terminal after the upgrade in order to run the IVPN CLI, the terminal will still search for the IVPN binary in the old path, which means that the IVPN commands are not reachable. Therefore a new terminal window has to be opened in order to use the CLI with the new binary path. |
Awesome @gorkapernas ! Thank you. Waiting for the 3.3.21 release then... |
@gorkapernas : This feature is currently blocking me in one of my projects. Is there a timeline on when this is expected to be released? |
We will release it next week. |
thx for your swift response! @stenya |
@gorkapernas Due to new changes (fixes), it is necessary to re-check it again. |
Verified on version 3.3.30, different Linux distributions, the installation process works as expected after the last changes implemented in the installer (FYI, the new path had to be specified on certain instances). |
Released in v3.3.30 |
Wow thx! Will give it a shot asap. |
Could you update the AUR package as well? These haven't been updated yet :( |
@TommyTran732 Yes. I will do it next release. |
No, it works fine. I just prefer having consistency between my different Linux setups. Plus, I also wanna follow the file system heirachy :D |
Hi,
I am not sure whether I should create this issue under bug report or feature request, but I figured I would just use feature request because I am suggesting a change.
Feature request
Moving the installation path to /usr/bin instead of /usr/local/bin to support rpm-ostree systems (like Fedora Silverblue) and avoid breaking atomic updates/inconsistency on systems like openSUSE MicroOS or openSUSE Tumbleweed/Leap.
More information
On rpm-ostree based systems like Fedora Silverblue, they currently cannot work with packages that use /usr/local/bin due to a bug on their part: coreos/rpm-ostree#233. This practically make the IVPN app uninstallable on those systems :/
On openSUSE distros, /usr/local/bin belong to the BTRFS subvolume @/usr/local is not part of the root subvolume (@/.snapshots/X/snapshot), and thus do not get snapshotted and does not rollback with the rest of the system should the user choose to do so. This essentially make the MicroOS variant lose its atomic update and cause in consistency with the Tumbleweed/Leap variants. The package manager (zypper) will think that IVPN is rolled back to an older version along with the rest of the system, while in reality the executable on /usr/local/bin is the newer version.
And while I have not tested this on Ubuntu yet (I have on Fedora Silverblue and openSUSE), it seems like Ubuntu's ZFS partition layout also uses a seperate pool for /usr/local as well, and thus could probably lead to the same issue on openSUSE.
Accoding to the Linux filesystem heirachy, /usr/local is supposed to contain programs the user installed from source, while /usr is for programs installed using the package manager. IVPN is distributed as pre compiled packages, and thus it should not be installed in /usr/local/bin in the first place. The issue I described with openSUSE and potentially Ubuntu with ZFS looks to be more like an issue with the IVPN package than the way they setup their BTRFS subvolumes/ZFS pools. I also think that it is unlikely rpm-ostree will support /usr/local as well, since you cannot
make install
anything on the host OS's immutable filesystem.Have you considered any alternative solutions or workarounds?
Yes I have, but it is practically not doable on rpm-ostree systems. However, I don't think IVPN should be installed at /usr/local/bin in the first place, since it is being distributed as a .deb, .rpm, and pacman package that is being installed by the package manager.
The text was updated successfully, but these errors were encountered: