Files
atom/docs/build-instructions/linux.md
Ethan Estrada 223334181b Place atom.png icons in standard system locations
This is so that the atom.desktop file will be able to find the
"atom" icon when requested. This adds the dependency of ImageMagick
to convert atom.png to varying resolutions, although, only during
the rpm build process (not during actual install). So the result
is ultimatly no different for the end user.

Also, fixed an absolute path from the rpm build process and made
it relative. It was hardcoded in the spec file to
"/tmp/atom-build/Atom/*", so builds that were made elsewhere would
have broken when attempting to package into an rpm. Now rpm packaging
should work from a build made anywhere. Also needed to modify
script/mkrpm so that it copies the build files in such a way that
they can more easily be dealt with in the spec file in a relative
way.
2015-01-31 22:14:07 -07:00

4.3 KiB

Linux

Ubuntu LTS 12.04 64-bit is the recommended platform.

Requirements

  • OS with 64-bit or 32-bit architecture
  • C++ toolchain
  • Git
  • Node.js v0.10.x
  • npm v1.4.x (bundled with Node.js)
    • npm -v to check the version.
    • npm config set python /usr/bin/python2 -g to ensure that gyp uses python2.
      • You might need to run this command as sudo, depending on how you have set up npm.
  • development headers for GNOME Keyring

Ubuntu / Debian

  • sudo apt-get install build-essential git libgnome-keyring-dev fakeroot
  • Instructions for Node.js.

Fedora / CentOS / RHEL

  • sudo yum --assumeyes install make gcc gcc-c++ glibc-devel git-core libgnome-keyring-devel rpmdevtools ImageMagick
  • Instructions for Node.js.

Arch

  • sudo pacman -S gconf base-devel git nodejs libgnome-keyring python2
  • export PYTHON=/usr/bin/python2 before building Atom.

Slackware

  • sbopkg -k -i node -i atom

openSUSE

  • sudo zypper install nodejs make gcc gcc-c++ glibc-devel git-core libgnome-keyring-devel rpmdevtools ImageMagick

Instructions

If you have problems with permissions don't forget to prefix with sudo

  1. Clone the Atom repository:
git clone https://github.com/atom/atom
cd atom
  1. Checkout the latest Atom release:
git fetch -p
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
  1. Build Atom:
script/build

This will create the atom application at $TMPDIR/atom-build/Atom.

  1. Install the atom and apm commands to /usr/local/bin by executing:
sudo script/grunt install

To use the newly installed Atom, quit and restart all running Atom instances.

  1. Optionally, you may generate distributable packages of Atom at $TMPDIR/atom-build. Currenty, .deb and .rpm package types are supported. To create a .deb package run:
script/grunt mkdeb

To create an .rpm package run

script/grunt mkrpm

Advanced Options

Custom install directory

sudo script/grunt install --install-dir /install/atom/here

Custom build directory

script/build --build-dir /build/atom/here

Troubleshooting

TypeError: Unable to watch path

If you get following error with a big traceback right after Atom starts:

TypeError: Unable to watch path

you have to increase number of watched files by inotify. For testing if this is the reason for this error you can issue

sudo sysctl fs.inotify.max_user_watches=32768

and restart Atom. If Atom now works fine, you can make this setting permanent:

echo 32768 | sudo tee -a /proc/sys/fs/inotify/max_user_watches

See also https://github.com/atom/atom/issues/2082.

/usr/bin/env: node: No such file or directory

If you get this notice when attempting to script/build, you either do not have Node.js installed, or node isn't identified as Node.js on your machine. If it's the latter, entering sudo ln -s /usr/bin/nodejs /usr/bin/node into your terminal may fix the issue.

You can also use Alternatives

On some variants (mostly Debian based distros) it's preferable for you to use Alternatives so that changes to the binary paths can be fixed or altered easily:

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 1 --slave /usr/bin/js js /usr/bin/nodejs

AttributeError: 'module' object has no attribute 'script_main'

If you get following error with a big traceback while building Atom:

sys.exit(gyp.script_main()) AttributeError: 'module' object has no attribute 'script_main' gyp ERR!

you need to uninstall the system version of gyp.

On Fedora you would do the following:

sudo yum remove gyp

Linux build error reports in atom/atom

  • Use this search to get a list of reports about build errors on Linux.