Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

REQUEST: Calibre - E-book management

Featured Replies

I think this would be an excellent addition to an always on media server. For those unfamiliar Calibre organizes e-books and syncs them to various e-reader devices. The feature most useful for an unraid severer is probably "calibre has a built-in web server that allows you to access your ebook collection using a simple browser from any computer anywhere in the world. It can also email your books and downloaded news to you automatically. It has support for mobile devices, so you can browse your collection and download books from your smartphone, Kindle, etc."

 

Unfortunately I know very little about linux and even less about how unraid works with most things happening on a flash drive. Here's what I've found so far.

 

Here's the Calibre linux install page http://calibre-ebook.com/download_linux. The dependencies are:

 

Package Version

python 2.7.1 not 3.x

Python Imaging Library 1.1.6

Qt 4.7.0

PyQt 4.8.2

python-mechanize 0.1.11

ImageMagick 6.5.9

xdg-utils 1.0.2

lxml 2.2.1

python-dateutil 1.4.1

cssutils 0.9.7a3

BeautifulSoup 3.0.5

dnspython 1.6.0

poppler 0.12.0

podofo 0.8.2

libwmf 0.2.8

chmlib 0.40

ICU 4.4

 

Here are slackware pkg and build files someone has made http://connie.slackware.com/~alien/slackbuilds/calibre/.

 

If none of our plug-in wizards are interested in working on this I'll chip away at it. Any help folks can offer will be greatly appreciated. I think I'll start by getting python upgraded to 2.7. I've got Benni-chan's sabnzbd and sickbeard python plug-ins installed but it looks like they're using 2.6. Hopefully the update doesn't break those.

  • Author

Just a thread to keep track of my progress.

 

To see what version of python you have "python -c 'import sys; print sys.version[:3]'"

 

To see what version of slackware see file /etc/slackware-version. We may all be on 13.1

 

I downloaded all the files from here into a folder http://connie.slackware.com/~alien/slackbuilds/calibre/pkg/13.1/. I used boot/packages/calibre/.

 

 

Then from that directory "installpkg calibre-0.8.7-i486-1alien.txz"

 

The install seems to complete but when I run "calibre-server" I get:

 

root@SERVER:/boot/packages/calibre# calibre-server

libicudata.so.46: cannot open shared object file: No such file or directory

libicudata.so.46: cannot open shared object file: No such file or directory

Traceback (most recent call last):

  File "/usr/bin/calibre-server", line 18, in <module>

    from calibre.library.server.main import main

  File "/usr/lib/calibre/calibre/library/server/main.py", line 12, in <module>

    from calibre.library.server.base import LibraryServer

  File "/usr/lib/calibre/calibre/library/server/base.py", line 21, in <module>

    from calibre.library.server.content import ContentServer

  File "/usr/lib/calibre/calibre/library/server/content.py", line 14, in <module>

    from calibre.library.caches import SortKeyGenerator

  File "/usr/lib/calibre/calibre/library/caches.py", line 19, in <module>

    from calibre.ebooks.metadata.opf2 import metadata_to_opf

  File "/usr/lib/calibre/calibre/ebooks/metadata/opf2.py", line 14, in <module>

    from lxml import etree

ImportError: libxslt.so.1: cannot open shared object file: No such file or directory

 

 

  • Author

I think the error was caused by not having icu4c installed. To fix I downloaded all the files from here http://connie.slackware.com/~alien/slackbuilds/icu4c/pkg/13.1/ into the calibre folder. Then "installpkg icu4c-4.6.1-i486-1alien.tgz". Now I get:

 

root@SERVER:/boot/packages/calibre# calibre-server -p 8090

Traceback (most recent call last):

  File "/usr/bin/calibre-server", line 18, in <module>

    from calibre.library.server.main import main

  File "/usr/lib/calibre/calibre/library/server/main.py", line 12, in <module>

    from calibre.library.server.base import LibraryServer

  File "/usr/lib/calibre/calibre/library/server/base.py", line 21, in <module>

    from calibre.library.server.content import ContentServer

  File "/usr/lib/calibre/calibre/library/server/content.py", line 14, in <module>

    from calibre.library.caches import SortKeyGenerator

  File "/usr/lib/calibre/calibre/library/caches.py", line 19, in <module>

    from calibre.ebooks.metadata.opf2 import metadata_to_opf

  File "/usr/lib/calibre/calibre/ebooks/metadata/opf2.py", line 14, in <module>

    from lxml import etree

ImportError: libxslt.so.1: cannot open shared object file: No such file or directory

 

  • 2 weeks later...

Any updates on this?  Looks pretty interesting. I would love to get this running on my unpaid box and sync over wifi to the kindle.

  • Author

I haven't worked on it much lately but I plan to keep trying unless someone more skilled picks it up. I think there are quite few more dependencies than I originally thought. It may be easier to just go with a full slackware install.

  • Author

Tried to install with sudo python -c "import urllib2; exec urllib2.urlopen('http://status.calibre-ebook.com/linux_installer').read(); main()"

but it get

 

WARNING: Failed to set default libc locale, using en_US.UTF-8

Traceback (most recent call last):

  File "site.py", line 53, in main

  File "site.py", line 13, in set_default_encoding

  File "locale.py", line 539, in setlocale

Error: unsupported locale setting

 

It looks like the current betas have the language set to en_US.UTF-8 in lang.sh so I'm not sure why I'm getting this error.

Do you have glibc-i18n installed?

  • Author

I installed the ""C" compiler & development tools" from unmenu although now I see those are for 12.1. Not sure how important that is. This morning I installed glibc-i18n-2.7-noarch-17.tgz but I get the same result.

What version of unRAID are you doing this on?

  • Author

5.0-beta12a which I think is slackware 13.1.

can you type the following the command line and report what gets returned?

 

echo $LANG

 

 

  • Author

Result is

en_US.UTF-8

Seems like it should work.

PS.  I've managed to get the installation to complete on a clean basic version of unraid (no c-compiler & dev tools).  I'm still playing around a bit to see if anything's missing.  It requires a LOT of dependencies already (for example a lot of X-related libraries (X11, etc...)), and I suspect there might be others hiding until a calibre action requires it...

 

I've also realized that installing this on unraid may not be the most ideal.  I suspect one would have problems creating/maintaing their library.  Once installed, you can certainly run headless (at least it appears so - there are plenty of available actions/options via command line).  But I would suspect that adding new books (or editing existing ones) would become very tedious, very quickly if done entirely this way.  Any attempt to replicate the functionality of the calibre app via an unRAID plugin, could become a huge undertaking.

 

Alternatively, you could continue to use another an install of calibre on your mac/windows box (i.e., after moving your library and metadata database to unRAID) to manage the library, but that has its own potential issues.  There may be concurrency issues if there are multiple users making changes.  Server/clients could get confused if changes are made w/o it being notified, etc...

 

Regardless, I'll be posting the list of dependencies shortly.  I will say that I "brute forced" some installs, since I got tired of doing installs one by one.  I instead installed in groups once I realized a pattern of dependencies (e.g. once it started asking me to install a bunch of X-related libs, I just installed a bunch of other x-related libs that I suspected would be required).  Not the most optimal approach, I know, but the best given the short amount of time I had to look at this... :)

  • Author

Thanks for the help ajax3712. I also ran into to quite a few dependencies when I tried to install the slackware package. The linux download page http://calibre-ebook.com/download_linux says "calibre has a binary install that includes private versions of all its dependencies" so I thought that might work better but can't get the install to complete. I agree that the command line is not ideal for managing your collection but the content sever would be great for downloading books to your kindle/nook/tablet.

Result is

en_US.UTF-8

Seems like it should work.

 

what about:

 

locale

 

I ran into something similar with another app so I'm just trying to see what, if anything, is different than what's being reported for me (since I don't appear to have this "language" issue)...

Thanks for the help ajax3712. I also ran into to quite a few dependencies when I tried to install the slackware package. The linux download page http://calibre-ebook.com/download_linux says "calibre has a binary install that includes private versions of all its dependencies" so I thought that might work better but can't get the install to complete. I agree that the command line is not ideal for managing your collection but the content sever would be great for downloading books to your kindle/nook/tablet.

 

I have a feeling you're going to be disappointed either way.  As I alluded to earlier, I switched approaches 1/2 way through.  I first tried the binary package created by alienbob (the one available http://connie.slackware.com/~alien/slackbuilds/calibre/pkg/13.1/calibre-0.8.7-i486-1alien.txz).  However, as you mentioned, there were tons of dependencies.  So after installing quite a few, I switched to installing python and then trying the calibre-recommended install method.  Still tons of dependencies.  When I finally got the installer to complete (with a warning about failing to setup desktop integration), I ended up with a list of over 50 external pkgs that I installed.

 

I believe the reason for this is that both approaches expect that you are installing on a full distro, with a windowing system (X) installed and other things taken for granted on a full blown desktop system.  And so the reason why they're not listed as actual dependencies is b/c they are already present for most flavors of linux that have a GUI.  Unfortunately, unraid is a stripped down flavor of slackware, with many things, like a windowing system, not included.

 

I haven't had a chance yet to cull down my dependency list.  I can post what I've got so far, and then modify it with a better list when I get a chance.  I suspect the dependencies between the two install methods will overlap a good bit, since the end goal is the same.  So let me know if you think it's worth it...

 

thanks!

  • Author

After locale I get

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

 

You're probably right in that it's not worth the work it would take to install all the dependencies. I may just go with a full slackware distro if I can't figure out an easier way. Thanks for the help.

hmmm an interesting app.  Sounds like Calibre needs to design a web managment console so that library management can occur from a client just like Plex, etc do.

 

I have no idea how hard that would be, but it might be worth petitioning them for it so they can increase user base.  Even for people who install this on a full distro, they might find it handy to manage from somewhere other than their terminal [shrug].

  • 3 months later...

+1

  • 3 weeks later...

+1

This isn't quite what you're talking about, and depends on your definition of management but :

 

http://charles.the-haleys.org/calibre/

 

is very useful. No need to have calibre running, it just uses the database file directly to present the data. No management features as such but is a lightweight and easy way to give web access to a library.

 

Perhaps it will be extended in future..?

  • 3 weeks later...
  • Author

Just to follow up I found that installing virtualbox (with the guide) was much easier than getting calibre running on unraid. I'm currently running calibre on a windows 7 virtual machine. Of course this also allows me to run quite a few other programs on my server.

  • 1 year later...

just as a thought, unraid is the storage 'medium'  - calibre should run on your main pc. the valuable part of it would be to outsource only the calibre 'internet' server part. so that can be always on to leech books  8)

im install on unraid Calibre :) enought just one line :P

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.