bitcoin-core / packaging

Distribution-specific packaging for Bitcoin Core
42 stars 42 forks source link

Issues running snap on Ubuntu #21

Closed AO-LocLab closed 4 years ago

AO-LocLab commented 5 years ago

After installing the bitcoin-core snap, the Bitcoin Core GUI is not available in Unity’s dashboard. I managed to find and launch bitcoin-core.qt from the terminal, but it seems it doesn’t manage hardlinks, and is returning an error because it doesn’t find my files anymore. Also it has ignored my previous /home/user/.config/Bitcoin and is giving me the "New install" screen. So that’s a no show for me.

'bitcoin-core.qt ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (failed to map segment from shared object): ignored. /home/ao/Téléchargements was removed, reassigning DOWNLOAD to homedir'

maflcko commented 5 years ago

it has ignored my previous /home/user/.config/Bitcoin

Currently the default dir is in the snap dir:

https://github.com/bitcoin-core/packaging/blob/40f8a131003bb1346a45d78a054db9c5b4b4f0e7/snap/snapcraft.yaml#L20

Maybe you can create a bitcoin.conf in this dir and then change the datadir to something else in the conf file?

the Bitcoin Core GUI is not available in Unity’s dashboard.

Unity has been deprecated by Ubuntu and it doesn't seem to work with our snap. See also

AO-LocLab commented 5 years ago

it has ignored my previous /home/user/.config/Bitcoin

Currently the default dir is in the snap dir:

https://github.com/bitcoin-core/packaging/blob/40f8a131003bb1346a45d78a054db9c5b4b4f0e7/snap/snapcraft.yaml#L20

Maybe you can create a bitcoin.conf in this dir and then change the datadir to something else in the conf file?

I don’t have a ~/snap/bitcoin, only ~/snap/bitcoin-core, I tried creating a /common/.bitcoin in both ~/snap/bitcoin and ~/snap/bitcoin-core and place a bitcoin.conf there (my former Bitcoin-Qt.conf that I renamed), but bitcoin-core.qt ignores it.

the Bitcoin Core GUI is not available in Unity’s dashboard.

Unity has been deprecated by Ubuntu and it doesn't seem to work with our snap. See also

I see, thank you. Unity is still used by many.

maflcko commented 5 years ago

Snap packages are supposed to be self-contained and don't allow arbitrary file-access. So my previous suggestion wouldn't work anyway. See:


$ cat ~/snap/bitcoin-core/common/.bitcoin/bitcoin.conf
regtest=1
datadir=/home/marco/Downloads/rt
uacomment=test_issue_21

$ bitcoin-core.qt 
/snap/bitcoin-core/37/bin/desktop-launch: line 29: /home/marco/.config/user-dirs.locale: No such file or directory
terminate called after throwing an instance of 'boost::filesystem::filesystem_error'
  what():  boost::filesystem::create_directory: Permission denied: "/home/marco/Downloads/rt/regtest"
Aborted (core dumped)
maflcko commented 5 years ago

Sorry, I can't help with the Unity issue, but I suggest to close this issue and track the Unity issues in (Snap install on Unity UI has qt menu bar missing #20)

wmpedersen commented 5 years ago

This issue has been referenced as a bug in snapd and seems to affect multiple snaps https://github.com/PX4/Firmware/issues/9409 https://bugs.launchpad.net/snapd/+bug/1757198

The proposed solutions suggest to edit your .bashrc https://github.com/PX4/Firmware/issues/9409#issuecomment-429703445

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 Make sure you have libgtk3-nocsd.so.0 in /usr/lib/x86_64-linux-gnu/ If you didn't have it, try sudo apt-get install gtk3-nocsd

This issue and #20 look to be related to the upgrade path through Ubuntu versions.

AO-LocLab commented 5 years ago

So I haven’t tried to use the bitcoin-core snap for over four months. When running it, the "Welcome to Bitcoin Core" dialog offers me to choose my datadir. Now since my datadir is on a separate hard drive, snap can’t access it, so I still can’t access Bitcoin Core with my datadir. Is there any solution to this problem?

maflcko commented 4 years ago

There is the home interface https://snapcraft.io/docs/home-interface or https://snapcraft.io/docs/personal-files-interface or https://snapcraft.io/docs/removable-media-interface or https://snapcraft.io/docs/system-files-interface

As the snap dir already resides in the home dir, I am not sure how much the home interface is going to help. And Bitcoin Core generally does not support storing data on removable media, as it is a common cause for data corruption. I guess the removable-media-interface also gives access to "permanent" secondary disks, so I wouldn't object adding that interface.

adriaanbd commented 4 years ago

Installed bitcoin-core with:

$ snap install bitcoin-core
Setup snap "bitcoin-core" (54) security profiles                                                                            
    Setup snap "bitcoin-core" (54) security profiles 
    Setubitcoin-core 0.19.0.1 from Bitcoin Core installed

Then when I run it, nothing happens:

$ bitcoind -testnet -deamon
bitcoind: command not found

Running $ l snap does not even output a bitcoin directory.

Solved it by running (warning this might delete or make your system unrecognize previously installed snaps):

$ sudo apt purge snapd && sudo apt install snapd
$ sudo snap install bitcoin-core

Now it's here:

$ l snap | grep bitcoin-core
bitcoin-core/

However, I was still unable to run the commands. So, I decided to download the tar file from website and install it manually. Everything works now.

Hope this helps!

maflcko commented 4 years ago

To run the deamon, you'd have to type bitcoin-core.daemon -testnet

adriaanbd commented 4 years ago

@MarcoFalke I didn't know that was the command for it. Hope others try it out and let us know.

ktuulos commented 4 years ago

This snap should give possibility to run the daemon with command "bitcoind". This is because some 3rd party wallets, like Armory, depend on running Bitcoin daemon using the standard (as in Bitcoin's delivery .tar.gz file) "bitcoind" file name.

maflcko commented 4 years ago

With the third party package managers like snap or flatpak it is not possible to create a bitcoind alias on installation. If an shell alias is not sufficient, you can try creating ~/bin/bitcoind in the home dir of the user that is running the scripts.

Content of the file should be something like:


#!/usr/bin/env bash
bitcoin-core.daemon "${@}"
mahalamobile commented 4 years ago

i have installed, how or where do i get the bitcoin.conf file, need to add details for rcpuser and password

thanks

maflcko commented 4 years ago

Does ~/snap/bitcoin-core/common/.bitcoin/bitcoin.conf work?