I've got Atom from git (from https://github.com/atom/atom), and checked out version 1.5.0-beta0 some time ago, when I built a 32-bit deb out of it; I'm on Ubuntu 14.04.
Now, I would like to build the exact same version, as a 64-bit deb. I thought it would be straightforward, so I just issued in the git source folder:
script/build
script/grunt mkdeb
That built me a /tmp/atom-build/atom-1.5.0-beta0-amd64.deb
, but when I installed it, it told me:
/usr/share/atom/atom: error while loading shared libraries: libnotify.so.4: cannot open shared object file: No such file or directory
... which was weird, because on my 64-bit system:
$ locate libnotify.so.4
/usr/lib/x86_64-linux-gnu/libnotify.so.4
/usr/lib/x86_64-linux-gnu/libnotify.so.4.0.0
I thought, it cannot possibly be, that the build system of atom
cannot distinguish between 32 and 64-bit builds? But it turned to be exactly that, because I tried LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu atom
and it gave me some error (EDIT: most likely it was: "/usr/share/atom/atom: error while loading shared libraries: libnotify.so.4: wrong ELF class: ELFCLASS64
") that pointed to me that it probably did have a problem with this...
Great. Ok, now I tried cleaning first:
script/clean
script/build
Now, while I was doing the build here over wireless network, npm
(or apm
) would have COMPLETELY clogged my internet connection, eventually producing messages like:
....
Installing build modules...
npm ERR! fetch failed https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz
....
At this point, if I tried to load a page in say Firefox, then it would have just kept spinning, and never loaded the page.
So, I changed from wireless to wired, and finally got to this:
atom_git$ script/clean
atom_git$ script/build
Node: v4.0.0
npm: v2.14.2
Installing build modules...
=> Took 94239ms.
Installing apm...
=> Took 67760ms.
Deleting old packages...
=> Took 418ms.
Installing modules ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✓
Installing [email protected] ✗
Package version: 0.88.0 not found
... and now the build process here stops. I thought damn it - how can I build from source, now that they rely on packages from internet that keep being removed? But then I browser a bit, and found https://github.com/atom/tabs/releases/tag/v0.88.0 - great; so I tried this:
cd /tmp
wget https://github.com/atom/tabs/archive/v0.88.0.zip
unzip v0.88.0.zip
cd /path/to/atom_git
mv /tmp/tabs-0.88.0 ./node_modules/
... and tried the build again:
atom_git$ script/build
Node: v4.0.0
npm: v2.13.3
Installing build modules...
=> Took 3473ms.
Installing apm...
=> Took 1122ms.
Deleting old packages...
Removing tabs-0.88.0 ✓
=> Took 1290ms.
Installing modules ✓
Installing [email protected] ✗
Package version: 0.88.0 not found
Damn it - it found [email protected], AND it removed it!! How can I persuade the build process now, to NOT look for [email protected]
online, but instead to use the one that I'm supplying to it, so the build script can continue building?