How to build the linux Desktop wallet for the Steem blockchain Vessel from source code
Hello Utopians & Steemians, this tutorial is for anyone who wants to build the linux desktop wallet for the Steem blockchain from the source code on Ubuntu; and this is what it will look like as a result.
It is called Vessel (for now), my thanks go to @jesta for creating it. See his latest article about version 0.2.3 if you just want to install the already made binaries. This tutorial is for those who want it build on their machine from scratch.
Let's update and install some dependencies:
sudo apt-get update
Install node js if you do not have it.
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy
Install npm if you do not have it:
sudo apt-get install npm
Install snapcraft, even if you do not plan to install the snap
sudo apt-get install --no-install-recommends -y snapcraft
For your information, if you do not install this, you will get these errors:
Update your nodejs:
sudo npm install -g n
sudo n latest
Install yarn:
sudo npm install -g yarn
Get the source code of the Vessel wallet:
git clone https://github.com/aaroncox/vessel.git
cd vessel
Let the configurator install the node js dependencies:
yarn install
Get the wallet built:
npm run package-linux
Install the newly created wallet:
cd release
sudo dpkg -i vessel_0.2.3_amd64.deb
You will find the wallet installed and available in your apps screen:
After running it, you will get the wallet as shown in the top image of this post!
Have a great day and let's keep making Steem better by our actions everyday.
Posted on Utopian.io - Rewarding Open Source Contributors
I sent you my ten cent vote. @originalworks. Under Mint I found the package
snapcraft
is calledsnapd
. I think vessel should includen
andyarn
as dependencies if they are necessary for building.The only dependency lists for NPM are "dependencies" and "devdependencies". The "dependencies" are supposed to be for "using" and the "devdependencies" for "testing" and development.
I posted this about how to run without installing. It is much better to be able to have an install solution like described in this post. I am still waiting for these command lines I issued from this tutorial to complete. I am looking forward to trying it out!
Hello @leprechaun, I will try to do a fresh install with
sudo apt-get install snapd
instead of snapcraft and see if it makes the instruction for building the package more generic across distributions. 👍I've chosen
n
to allow users to update their nodejs since the one that comes with ubuntu is to old for this build. Others may assume that the user will have the latests nodejs and not think to include a package updater. From looking at the code, it did look to me thatyarn
was involved and it is part of the 'devEngines' section of the package.json file.I'm glad to see you've found another way to get it running, that's great.
I had installed
npm
from source. As I recall my distribution's version ofnpm
was old or just absent or perhaps it didn't have the package name I expected (like withsnapd
). Anyway, I issued the following command:sudo apt-get install --no-install-recommends -y snapd
I added node_modules/.bin to the end of the PATH variable.
After waiting a long time while getting ready for a party, I found it finally finished but the other task that I was waiting for had not yet finished. So, I issued the following command line:
npm install n && n latest && npm i yarn && yarn install && npm run package-linux && cd release && sudo dpg -i vessel*.deb
I left out the '-g' so I can later remove everything needed by vessel and test installs with fewer packages. If I can get a 32-bit installer built, I want to proceed to see if I can eliminate packages from the dependencies that are only for the development of vessel but not required for making its package or running it like I described earlier.
I mispelt
dpkg
. Of course things didn't work out. I see an error at the end but I it is not "command not found". The error is:Using
which n
, I see n was installed and runningwhich yarn
, I seeyarn
was not installed.I am going to try it without running
n latest
. I knownpm
is already the newest stable version on this old computer I am using. I should probably take this computer to a kindergarten because she is old enough to start that.Now, if the yarn command is in the 'devEngines', I guess that means it is supposed to install
yarn
automatically. It doesn't. I did some searching and I found users ofnpm
are disappointed that things found in "devdependencies" were not getting installed before running the install scripts. There seems to be a big disconnect between the developers ofnpm
itself and the developers that usenpm
(us).I am going to try this now:
npm --save-prod yarn && yarn install && npm run package-linux
Edit
The result of the above command was:
... etc
Now, I had only moved nearly all packages from "devdependencies" to "dependencies". This was necessary because many of the modules needed for the "install" process were in devdependencies and those listed in devdependencies were not being installed before running the scripts named in "install".
It seems to me that a user shouldn't need to install
npm
packages manually. The package contains a file that lists all of dependencies. The dependencies should be installed automatically. Maybe that is part of that "disconnect" I referred to earlier.Resteemed your article. This article was resteemed because you are part of the New Steemians project. You can learn more about it here: https://steemit.com/introduceyourself/@gaman/new-steemians-project-launch
thank you for sharing a good article.
we can learn a lot of thing's from here.
keep it up.
@helo
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @helo I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x