A Mostly Complete Guide to Installing Scrivener on Linux

User avatar
LAP
Posts: 999
Joined: Tue Sep 21, 2010 5:25 pm
Platform: Windows
Location: Sydney
Contact:

Thu Oct 18, 2012 2:20 am Post

A Mostly Complete Guide to Installing on Linux

This was originally posted by: Steven Saus (uriel1998) from Alliteration Ink http://www.alliterationink.com
Steven is, in his own words, an Author, Publisher, eBook Converter (and some other stuff too)

It was so good I wanted to post it here in a prominent position for all to benefit from Steven's helpful post. Here's the post:

Disclaimer: I'm not affiliated with L&L. They can change things at any time. I bear no responsibility for anything that happens when you follow these instructions, unless it is TOTALLY KEWL. That said, I've followed these instructions myself (Ubuntu 10.04|Openbox/Gnome 2) for both the tarball and the debian package.

These instructions should:
1. Install Scrivener on your Linux box.
2. Provide a launcher on your desktop or where a launcher like Kupfer/Gnome-Do/Launchy can get to it.
3. Provide an (unofficial) icon that I mocked up a while back with Tux on it.

Check for the latest install (while we're still in beta) from the top forum post here.

If you're using a tarball, read the quoted section below:
If you're using the tarball (which I've also done in the past), I used the script by phibxr mentioned here and requoted for your convenience below:

/home/(your username)/LiteratureAndLatte/bin/scrivener.sh:

Code: Select all

   
#!/bin/bash
export LD_LIBRARY_PATH=/home/(your username)/LiteratureAndLatte/lib:$LD_LIBRARY_PATH
exec /home/(your username)/LiteratureAndLatte/bin/Scrivener


After creating this file, run:

Code: Select all

   
~/LiteratureAndLatte/bin$ chmod +x scrivener.sh
./scrivener.sh



If you're installing from a .deb, .rpm, etc, read the quoted section below.
Install the package using your package manager; most modern file managers will automatically call the right package manager for you. (And if you're hardcore enough to be using something that doesn't, you probably don't need this guide.)

If Ubuntu Software Center is starting up and not installing the .deb, I would highly recommend using gdebi-gtk. Enter this at the commandline:

Code: Select all

sudo apt-get install gdebi


Then you can install any local .deb file by using the command

Code: Select all

gdebi-gtk (package name.deb)


For example:

Code: Select all

gdebi-gtk scrivener-1.2.6-beta.deb


Let it finish. You may need to enter your root password here; this is different than my complaining about running from root below.

Once it has completed, open a terminal and type this:

Code: Select all

which Scrivener

That will tell you the full path to the binary file (usually /usr/bin/Scrivener). You'll need that below.


Save the attached icon to /home/(your username)/.icons/Scrivener_Logo.png
Scrivener_Logo.png
Scrivener_Logo.png (17.27 KiB) Viewed 43244 times



Then create the file below. Edit the Exec name to match the location of your binary.

NOTE: You could instead have this file as
/home/(your username)/.local/share/applications/Scrivener.desktop
which won't show up on your desktop, but will let most launcher applications easily find it. Or, if you installed from the .deb (I presume the .rpm is the same), the installed launcher is located at
/usr/share/applications/Scrivener.desktop
and you can edit that file with whatever text editor you like.

/home/(your username)/Desktop/Scrivener.desktop

Code: Select all

#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Name=Scrivener
Type=Application
Icon=/home/(your username)/.icons/Scrivener_Logo.png
Exec=/usr/bin/Scrivener %U
Terminal=false
Categories=Application;Office;


Some folks had problems on KDE running as a normal user. TRY RUNNING WITHOUT ROOT ACCESS FIRST. Running with root permissions is A Bad Idea (see http://www.psychocats.net/ubuntu/graphicalsudo for why this can end up borking your system.) Honestly, if you find that you're having to run something like Scrivener as root, there's a deeper problem with file permissions on your system. Seriously. (Or library variables, which might be why the KDE folks are having issues. Still...)

But... if you find that you will need root access, add gksudo (for Gnome) or kdesudo (for KDE) to the "Exec" line in the launcher above. Example:

Code: Select all

FOR KDE:
Exec=kdesudo /usr/bin/Scrivener %U

FOR GNOME:
Exec=gksudo /usr/bin/Scrivener %U


Still having problems? Check the forums for help. There's a wide variety of folks running a wide variety of flavors of linux, and if you manage to make it work, share what you did.

Revisions:
* Added link to top of forums
* Added note about gdebi-gtk
* Added location of installed .desktop from .deb

Ko
Kona
Posts: 1
Joined: Fri Jan 25, 2013 11:19 pm
Platform: Linux + Windows

Fri Jan 25, 2013 11:46 pm Post

I ran into a little problem running trying to run Scrivener on Ubuntu 12.04.01 LTS (Precise Pangolin), so I thought I'd post the solution here.

When trying to run scrivener.sh (as given above), I got this message:

Code: Select all

Scrivener: no such file or directory

even though I could clearly see the file in folder view and when using the ls command.

With a little digging I found the solution to this similar problem, which explains why it wasn't able to recognize the file: it is a 32-bit executable and I'm trying to use it on a 64-bit machine. The solution was to install ia32-libs (available through the Ubuntu Software Center). After doing that, Scrivener opened just as it should.

Hope this helps others!

be
beesontoast
Posts: 10
Joined: Mon Apr 16, 2012 8:33 am
Platform: Linux

Wed May 15, 2013 8:14 am Post

Attempting to run Scrivener on an Acer Aspire One 722 under Peppermint Three.

Tried 1.2.6 and the latest beta - both appear to install, icon shows under Office apps, but nothing happens when I click it. Nada. Zilch.

I have successfully run Scrivener under Windows and various other Linux flavours.

be
beesontoast
Posts: 10
Joined: Mon Apr 16, 2012 8:33 am
Platform: Linux

Wed May 15, 2013 8:32 pm Post

I found a couple of other things I could not install under Peppermint, so as I am on a deadline, I gave up and installed WattOS over it - and now have a fully working Scrivener installation, thanks to the latest beta and GDebi.

wo
wolfe023
Posts: 1
Joined: Sun May 19, 2013 12:41 pm
Platform: Mac

Sun May 19, 2013 2:37 pm Post

So here is just a very basic question. I have installed Ubuntu on my brand new Chromebook and have been trying to install Scrivener. I have been unsuccessful so far, and in reading the posts here, I noticed one message that Scrivener will not work on an ARM-based Chromebook. I am writing just to confirm this. Is true that I should not bother any more trying to get it work? If so, is there any possibility of being able to use Scrivener via Ubuntu on a Chromebook? Thanks.

Mi
Mist
Posts: 1
Joined: Sat May 25, 2013 7:20 pm
Platform: Linux

Sat May 25, 2013 9:42 pm Post

Linux Mint 14.1 64 Cinnamon 1.6 (Both to become Mint 15 and Cinnamon 1.8 when released).
PC died, stuck with Win 8, moved to Mint, lost writing program = newbie looking at Scrivener.
I realize that Scrivener is a beta. Beta plus newbie is not good. Yet, I see others have installed it.
Direction (kindergartner) would be appreciated.

Thanks,
Mist
Newbies get better.

Ka
KarlJ
Posts: 3
Joined: Fri Jun 07, 2013 7:42 am
Platform: Mac + Linux

Fri Jun 07, 2013 7:46 am Post

It won't install at all on Mint 14. Package manager just freezes.

d~
d~l
Posts: 77
Joined: Thu Feb 09, 2012 10:06 pm
Platform: Linux

Fri Jun 07, 2013 1:15 pm Post

GDebi Package Installer may help in manual installation of *.deb packages. If there is a freeze you will at least get a report.

Ka
KarlJ
Posts: 3
Joined: Fri Jun 07, 2013 7:42 am
Platform: Mac + Linux

Tue Jun 11, 2013 9:06 am Post

Hi,

No report, unfortunately. It just freezes. The graphical front-end appears, then nothing else. Is there a way of just downloading the package?

Ka
KarlJ
Posts: 3
Joined: Fri Jun 07, 2013 7:42 am
Platform: Mac + Linux

Tue Jun 11, 2013 10:47 am Post

Update - found the download link - http://www.literatureandlatte.com/scriv ... 1-beta.deb
and downloaded the package. I had assumed that the package would be downloaded automatically :?

Clicking on the package installed it using gdebi - no problems. Now running well.

be
beesontoast
Posts: 10
Joined: Mon Apr 16, 2012 8:33 am
Platform: Linux

Thu Jul 04, 2013 9:33 am Post

Running nicely on Dell 1545 under Mint 15, and on Travelmate 4230 also under Mint 15 (fast becoming my favourite distro) but why does it STILL say on the installation notes, "Beta - expires. Jul 31, 2012" ?

User avatar
dixonge
Posts: 46
Joined: Mon Feb 05, 2007 6:50 pm
Platform: Windows
Location: Austin, TX

Fri Aug 02, 2013 1:55 pm Post

up and running

Acer C7
Ubuntu 12.04 LTS
beta

Ja
James Wilde
Posts: 38
Joined: Thu Jun 03, 2010 7:42 pm

Wed Aug 07, 2013 9:00 am Post

Kona wrote:When trying to run scrivener.sh (as given above), I got this message:

Code: Select all

Scrivener: no such file or directory

even though I could clearly see the file in folder view and when using the ls command.

With a little digging I found the solution to this similar problem, which explains why it wasn't able to recognize the file: it is a 32-bit executable and I'm trying to use it on a 64-bit machine. The solution was to install ia32-libs (available through the Ubuntu Software Center). After doing that, Scrivener opened just as it should.

Hope this helps others!


It did help, Kona, thanks, but it didn't go all the way. One has to reinstall the deb file with the parameter --force-architecture. See other posts in this forum.

ed
edf
Posts: 99
Joined: Thu Oct 19, 2006 7:45 pm
Platform: Linux
Location: New York, NY

Sat Aug 24, 2013 9:46 pm Post

I'd like to add my notes for getting a complete (for my purposes) install of Scrivener on 64-bit Linux.

Code: Select all

bash$ lsb_release -d
Description:    Ubuntu 12.04.2 LTS
bash$ uname -r -m
3.5.0-18-generic x86_64


A. Kindlegen

Download the utility from http://www.amazon.com/gp/feature.html?docId=1000765211 (the 32-bit version for 2.x kernels is fine).

Unpack the tarball and copy the utility wherever you like, but make sure it is named kindlegen.bin instead of kindlegen (the Scrivener File-Select dialog box has a mask that requires a file extension). It is convenient to make a symlink named 'kindlegen' for Linux-specific applications that might use this.

Code: Select all

cd /tmp
tar -zxf ~/downloads/kindlegen_linux_2.6_i386_v2_9.tar.gz
sudo cp kindlegen/kindlegen /usr/local/bin/kindlegen.bin
sudo ln -s /usr/local/bin/kindlegen.bin /usr/local/bin/kindlegen


B. Multimarkdown

Attempting to compile a Multimarkdown document results in an error message stating that the multimarkdown utility is not installed, and that you should run

Code: Select all

sudo apt-get install libtext-multimarkdown-perl
in order to install it.

This multimarkdown utility, however, is incompatible with the command-line invocation performed by Scrivener. You will get an error dialog saying "Unknown error", and the following message on the command line (you did run Scrivener from the command line for debugging purposes, didn't you?) :

Cannot find file -b at /usr/bin/multimarkdown line 127.


The fix? Uninstall the libtext-multimarkdown-perl package (if you indeed installed it), and instead install the multimarkdown utility from https://github.com/fletcher/peg-multimarkdown . This utility supports the options that Scrivener expects.

The commands (run in your home directory):

Code: Select all

git clone git://github.com/fletcher/peg-multimarkdown.git
cd peg-multimarkdown
./update_submodules.sh
git submodule update
make
sudo cp multimarkdown /usr/local/bin
cd ..
rm -r peg-multimarkdown


Assuming you have git installed, this should "just work": Latex files can now be generated.

C. GNOME-Keyring

On LTS systems (such as mine), the following error message may appear on the console when Scrivener starts up:

p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: cannot open shared object file: No such file or directory


This is a fairly harmless message, and most users can ignore it. To get rid of the message, download the 32-bit package for gnome-keyring, unpack it, and copy the missing library to the expected location.

The 32-bit .deb package for gnome-keyring can be downloaded from the Ubuntu repositories at https://launchpad.net/ubuntu/precise/i386/gnome-keyring/3.2.2-2ubuntu4.1 .

Code: Select all

cd /tmp
mkdir gnome-keyring
cd gnome-keyring
dpkg -x ~/downloads/gnome-keyring_3.2.2-2ubuntu4.1_i386.deb .
sudo cp -r usr/lib/i386-linux-gnu/pkcs11/ /usr/lib/i386-linux-gnu/
cd ..
rm -r gnome-keyring


Note that this is a brute-force installation of the library, and does not perform any of the apt or dpkg dependency checks (which fail due to an "uninstallable" libgcr-3-common:i386 package). It seems to work fine at runtime.

D. Spelling

A local copy of a 32-bit aspell can be installed in the LiteratureAndLatte directory tree, and configured to run locally.

Download the .deb files for the following packages:
aspell:i386 http://packages.ubuntu.com/precise/i386/aspell/download
libaspell15:i386 http://packages.ubuntu.com/precise/i386/libaspell15/download

1. Unpack aspell and libaspell15.

Code: Select all

cd /tmp
mkdir aspell libaspell
dpkg -x ~downloads/aspell*_i386.deb aspell
dpkg -x ~downloads/libaspell15*_i386.deb libaspell


2. Seed the lib/aspell directory with a copy of the one in /usr/lib/aspell

Code: Select all

sudo cp -r /usr/lib/aspell /usr/local/LiteratureAndLatte/lib


3. Copy aspell and libaspell into the LiteratureAndLatte directory tree.

Code: Select all

sudo cp -i aspell/usr/bin/* /usr/local/LiteratureAndLatte/bin/
sudo cp -r libaspell/usr/lib/aspell/* /usr/local/LiteratureAndLatte/lib/aspell/
sudo cp libaspell/usr/lib/libaspell.so.15.2.0 libaspell/usr/lib/libpspell.so.15.2.0 /usr/local/LiteratureAndLatte/lib


4. Create symlinks so all the tools work properly

Code: Select all

sudo ln -s /usr/local/LiteratureAndLatte/lib/libaspell.so.15.2.0 /usr/local/LiteratureAndLatte/lib/libaspell.so
sudo ln -s /usr/local/LiteratureAndLatte/lib/libaspell.so.15.2.0 /usr/local/LiteratureAndLatte/lib/libaspell.so.15
sudo ln -s /usr/local/LiteratureAndLatte/lib/libaspell.so.15.2.0 /usr/lib/i386-linux-gnu/libaspell.so
sudo ln -s /usr/local/LiteratureAndLatte/lib/libpspell.so.15.2.0 /usr/local/LiteratureAndLatte/lib/libpspell.so
sudo ln -s /usr/local/LiteratureAndLatte/lib/libpspell.so.15.2.0 /usr/local/LiteratureAndLatte/lib/libpspell.so.15
sudo ln -s /usr/local/LiteratureAndLatte/lib/libpspell.so.15.2.0 /usr/lib/i386-linux-gnu/libpspell.so


5. Build 32-bit versions of the dictionaries in the LiteratureAndLatte directory tree.
a) replace symlinks with actual dictionary files

Code: Select all

sudo rm /usr/local/LiteratureAndLatte/lib/aspell/*.rws
sudo cp /var/lib/aspell/*.rws /usr/local/LiteratureAndLatte/lib/aspell/

b) Create a shell script to rebuild the dictionaries using the 32-bit aspell install

Code: Select all

echo '#!/bin/sh' > /tmp/gen_32_aspell_dicts.sh
echo "ASPELL_CONF='prefix /usr/local/LiteratureAndLatte'" >> /tmp/gen_32_aspell_dicts.sh
echo 'PATH="/usr/local/LiteratureAndLatte/bin:$PATH"' >> /tmp/gen_32_aspell_dicts.sh
echo export PATH ASPELL_CONF >> /tmp/gen_32_aspell_dicts.sh
chmod +x /tmp/gen_32_aspell_dicts.sh
sudo /usr/sbin/aspell-autobuildhash --dry-run  --force 2>&1 | grep zcat | sed -e 's/var\/lib/usr\/local\/LiteratureAndLatte\/lib/' -e 's/usr\/lib/usr\/local\/LiteratureAndLatte\/lib/' >> /tmp/gen_32_aspell_dicts.sh


NOTE: This last command is very important to get right. I have created a pastebin for the command so that you can be sure to copy and paste it correctly: http://pastebin.com/JFGjnsjT.

An example shell script, for non-Ubuntu users, is available here: http://pastebin.com/sXbTTwAq . Be sure to modify it to suit your local system.

c) Execute the shell script as root

Code: Select all

sudo bash /tmp/gen_32_aspell_dicts.sh


6. Remove the downloaded files.

Code: Select all

cd /tmp
rm -r aspell ispell
rm ~/downloads/libaspell*_i386.deb ~/downloads/aspell*_i386.deb


7. Create a shell script for launching Scrivener with the aspell options set correctly.

Code: Select all

echo '#!/bin/sh' > /tmp/scrivener.64
echo "ASPELL_CONF='prefix /usr/local/LiteratureAndLatte'" 'PATH="/usr/local/LiteratureAndLatte/bin:$PATH"' 'scrivener &' >> /tmp/scrivener.64
chmod +x /tmp/scrivener.64
sudo cp /tmp/scrivener.64 /usr/local/LiteratureAndLatte/bin/


8. Enjoy!

Code: Select all

/usr/local/LiteratureAndLatte/bin/scrivener.64


The commandline-averse among you may want to create a .desktop file for this.

UPDATE: I realized I was working off a tarball of Scrivener, and installed the .deb package. This includes the file /usr/share/scrivener/bin/scrivener.sh , which is a much better startup script than I provided in step 7. The above steps can be applied to /usr/share/scrivener instead of /usr/local/LiteratureAndLatte , and the scrivener.sh script modified as follows:

Code: Select all

bindir=`dirname "$me"`
libdir=`cd "$bindir/../lib" ; pwd`
LD_LIBRARY_PATH=$libdir
export LD_LIBRARY_PATH
# ======================================
# Add these three lines here:
basedir=`cd "$bindir/.." ; pwd`
ASPELL_CONF="prefix $basedir"
export ASPELL_CONF
# ======================================
unset QT_PLUGIN_PATH
exec "$bindir/Scrivener" ${1+"$@"}   



--------------------------------------------------------------------------
OLD, DANGEROUS, BRUTE-FORCE METHOD (retained for posterity)


The following code will replace the 64-bit aspell .so files and binaries with 32-bit ones, and rebuild the system dictionaries to be 64-bit -- without removing the 64-bit aspell dependency from the package manager.

After making these changes, a 32-bit installation of Scrivener will have a working aspell-based spellchecker on a 64-bit system. A handful of 64-bit applications (Firefox, Thunderbird, Open Office, Opera) have been tested, and (unexpectedly) continue to work fine after these changes.

WARNING These changes will make your system non-standard, may break spell-checking in some 64-bit applications, and may be overwritten during a system upgrade. USE AT YOUR OWN RISK.

Download the .deb files for the following packages:
aspell:i386 http://packages.ubuntu.com/precise/i386/aspell/download
aspell-en:all http://packages.ubuntu.com/precise/aspell-en
libaspell15:i386 http://packages.ubuntu.com/precise/i386/libaspell15/download

1. Unpack aspell and libaspell15.

Code: Select all

cd /tmp
mkdir aspell libaspell
dpkg -x ~downloads/aspell*_i386.deb aspell
dpkg -x ~downloads/libaspell15*_i386.deb libaspell


2. Copy libaspell into the system 32-bit library location.

Code: Select all

sudo cp usr/lib/libaspell.so.15.2.0 /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/libaspell.so.15.2.0 /usr/lib/i386-linux-gnu/libaspell.so.15
sudo ln -s /usr/lib/i386-linux-gnu/libaspell.so.15.2.0 /usr/lib/i386-linux-gnu/libaspell.so
sudo cp usr/lib/libpspell.so.15.2.0 /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/libpspell.so.15.2.0 /usr/lib/i386-linux-gnu/libpspell.so.15
sudo ln -s /usr/lib/i386-linux-gnu/libpspell.so.15.2.0 /usr/lib/i386-linux-gnu/libpspell.so


3. Replace the support binaries in /usr/lib/aspell with 32-bit versions

Code: Select all

sudo cp -r libaspell/usr/lib/aspell /usr/lib/aspell.orig
sudo cp -r libaspell/usr/lib/aspell/*.so /usr/lib/aspell/
sudo cp -r libaspell/usr/lib/aspell/*spell /usr/lib/aspell/


4. Replace the executables in /usr/bin with 32-bit versions (optional).

Code: Select all

sudo mv /usr/bin/aspell /usr/bin/aspell.orig
sudo mv /usr/bin/aspell-import /usr/bin/aspell-import.orig
sudo mv /usr/bin/precat /usr/bin/precat.orig
sudo mv /usr/bin/prezip /usr/bin/prezip.orig
sudo mv /usr/bin/preunzip /usr/bin/preunzip.orig
sudo mv /usr/bin/prezip-bin /usr/bin/prezip-bin.orig
sudo mv /usr/bin/run-with-aspell /usr/bin/run-with-aspell.orig
sudo mv /usr/bin/word-list-compress /usr/bin/word-list-compress.orig
sudo cp aspell/usr/bin/* /usr/bin/


5. Reinstall the dictionaries. This will build 32-bit dictionaries (readable by 64-bit aspell libraries as well, as per http://aspell.net/0.61/man-html/Using-32_002dBit-Dictionaries-on-a-64_002dBit-System.html).

Code: Select all

sudo dpkg -i ~/downloads/aspell-en*.deb


6. Remove the downloaded files.

Code: Select all

cd /tmp
rm -r aspell ispell
rm ~/downloads/libaspell*_i386.deb ~/downloads/aspell*_i386.deb


Note that these steps are non-destructive: you can always roll back the changes by restoring the files named .orig.

Gr
Granitel
Posts: 7
Joined: Thu Nov 14, 2013 4:59 am
Platform: Linux

Fri Nov 15, 2013 12:18 am Post

Apparently, it's impossible to install Scrivener on the current 64-bit Ubuntu.
- Installing 32 bit Scrivener on 64 bit Ubuntu/Kubuntu

The OP of that thread suggests installing an entire additional (but 32-bit) operating system, which, IMHO, is absolutely crazy.

I wish someone had just told us that Scrivener won't work on the current 64-bit Ubuntu, and, that would have saved us all a lot of lost time and effort. If we're gonna install a whole new operating system, we may as well dual-boot Windows, rather than having two differnet Linux operating systems, one of which is just for running Scrivener. Sigh.