-
Notifications
You must be signed in to change notification settings - Fork 614
[LINUX] build a .tar.gz to be unpacked anywhere. #433
Conversation
This is the easiest way for non-Debian systems to run Brackets without creating a package for each distribution. The output can also be used to ease packaging for other systems (hopefully).
Categories=Development | ||
Exec=brackets %U | ||
Icon=brackets | ||
MimeType=text/html; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we define more mimetypes here? For CSS and JavaScript for example.
Now supports: text/html text/css text/javascript application/javascript
When passed the -c parameter, uninstall.sh will remove the user's local Brackets configuration.
@ingorichter how are my changes? |
@radicaled That looks good to me. I'll give it a try later today. Thanks |
@radicaled I tried it out and the tar.gz is properly generated. What do you think of copying the whole folder to the final destination instead of creating links? I accidentally removed the |
For instance, when you download the Linux version of RubyMine or WebStorm or any of IntelliJ's excellent IDE products, you unzip them to whatever location you'd like them to be (in my case they're in ~/Development/RubyMine). Then they create the appropriate links within ~/.local to their command line binaries ("mine" for RubyMine), and create a
The actual location where you unzip a .tar.gz like this is entirely up to the user: you could actually unzip it to RE Ubuntu, I don't really know why Unity isn't monitoring ~/.local/applications. I can call |
Run ./uninstall to remove these files. | ||
|
||
Requires libudev.so.0. You may need to do this: | ||
ln -s /usr/lib64/libudev.so.1 /usr/lib64/libudev.so.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to do this similar to the debian package? See https://github.com/adobe/brackets-shell/blob/master/installer/linux/debian/package-root/DEBIAN/postinst#L81.
We create a symlink to libudev
next to the brackets
executable without affecting the global /usr/
dir. Chromium does the same thing.
Also, for completeness, if we can't make this change, then we should add a 32-bit example ln
command. I guess I should ask, have you tested this build on 32 and 64-bit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've only tested this on on 64-bit. 32-bit is a bit of a rarity for Linux these days. However, the technique is still the same -- it's just a different directory.
I will modify install.sh
to make a local symlink.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will modify install.sh to make a local symlink. [for libudev.so.0]
Looking into it, I probably shouldn't do this. Distributions store their library files in different locations. I might end up writing a pretty gnarly bash script to support every distro and its library paths. I will update the README instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about the last script on this wiki page from node-webkit https://github.com/rogerwang/node-webkit/wiki/The-solution-of-lacking-libudev.so.0. Seems like reasonable approach without getting too gnarly?
Great work @radicaled! Thanks for your help. A few suggestions for moving forward:
|
@jasonsanjose I have only tested it briefly yesterday on 64 bit Linux. So the symlink won't probably work 32 bit Linux. |
Only seems to be Unity that is not watching ~/.local/share/applications right now.
Latest changes should now register .desktop file for Ubuntu's Unity. Let me know if it's OK: if not I will provision a fresh Ubuntu VM and take a closer look. |
@jasonsanjose I can't find your comment, so I'm replying to it here:
I guess that works -- anyone running a distribution not in that list should have the know-how to perform the symlink themselves, I hope. |
Only works on Ubuntu, Fedora, SUSE, and Arch.
The install script has been augmented with the technique outlined here: https://github.com/rogerwang/node-webkit/wiki/The-solution-of-lacking-libudev.so.0 Seems to work beautifully. What's next? |
I'll give a test run tomorrow morning. Thank you for working on this. |
@radicaled This looks good to me and Brackets shows up in the menu. There are two things that could be added to the
But these are nice to haves. If there are no other issues or objections, I'm going to merge it before we branch into release, since I'd like to build the archive for the upcoming release. |
[LINUX] build a .tar.gz to be unpacked anywhere.
[LINUX] build a .tar.gz to be unpacked anywhere.
Generates a .tar.gz based off the current Linux build.
Includes 2 simple scripts, install.sh and uninstall.sh, that install/uninstall desktop and command-line entries for brackets.
According to adobe/brackets/issues/5021 this binary tarball might make actual packaging easier for maintainers.