If the umask is set up to exlude execute, the installer will set up calibre to be unreadable by any user other than the installing user. When installing as `root`, a starting umask of `0o077` results in the installer choosing a new umask of `0o033`, which means the calibre install directory (and child directories) are installed with permissions `0o744`, so only the installing user can actually use the resulting calibre install. To test, start with a system umask of `0o077` and run the installer script as root: ``` % sudo sh ./setup/linux-installer.sh Using python executable: /usr/bin/python3 WARNING: Your current umask disallows reading of files by some users, this can cause system breakage when running the installer because of bugs in common system utilities. Should the installer (f)ix the umask, (i)gnore it or (a)bort [f/i/a Default is abort]: f umask changed to: 022 Installing to /opt/calibre Downloading tarball signature securely... Using previously downloaded calibre-3.26.1-x86_64.txz Extracting files to /opt/calibre ... Extracting application files... Creating symlinks... Symlinking /opt/calibre/ebook-edit to /usr/bin/ebook-edit Symlinking /opt/calibre/calibre-debug to /usr/bin/calibre-debug Symlinking /opt/calibre/web2disk to /usr/bin/web2disk Symlinking /opt/calibre/calibre-parallel to /usr/bin/calibre-parallel Symlinking /opt/calibre/calibredb to /usr/bin/calibredb Symlinking /opt/calibre/lrs2lrf to /usr/bin/lrs2lrf Symlinking /opt/calibre/calibre to /usr/bin/calibre Symlinking /opt/calibre/ebook-convert to /usr/bin/ebook-convert Symlinking /opt/calibre/calibre-server to /usr/bin/calibre-server Symlinking /opt/calibre/ebook-viewer to /usr/bin/ebook-viewer Symlinking /opt/calibre/calibre-smtp to /usr/bin/calibre-smtp Symlinking /opt/calibre/ebook-meta to /usr/bin/ebook-meta Symlinking /opt/calibre/ebook-device to /usr/bin/ebook-device Symlinking /opt/calibre/fetch-ebook-metadata to /usr/bin/fetch-ebook-metadata Symlinking /opt/calibre/ebook-polish to /usr/bin/ebook-polish Symlinking /opt/calibre/lrfviewer to /usr/bin/lrfviewer Symlinking /opt/calibre/calibre-customize to /usr/bin/calibre-customize Symlinking /opt/calibre/lrf2lrs to /usr/bin/lrf2lrs Symlinking /opt/calibre/markdown-calibre to /usr/bin/markdown-calibre Setting up command-line completion... Installing zsh completion to: /usr/share/zsh/site-functions/_calibre Installing bash completion to: /usr/share/bash-completion/completions/calibre Setting up desktop integration... Creating un-installer: /usr/bin/calibre-uninstall Run "calibre" to start calibre ``` And the resulting directory: ``` % ls -ld /opt/calibre drwxr-xr-x. 5 root root 4.0K Jun 22 10:53 /opt/calibre/ ``` Also verify the Python version, starting with no `/opt/calibre` and a system umask of `0o077`: ``` % sudo python3 ./setup/linux-installer.py WARNING: Your current umask disallows reading of files by some users, this can cause system breakage when running the installer because of bugs in common system utilities. Should the installer (f)ix the umask, (i)gnore it or (a)bort [f/i/a Default is abort]: f umask changed to: 022 Installing to /opt/calibre Downloading tarball signature securely... Using previously downloaded calibre-3.26.1-x86_64.txz Extracting files to /opt/calibre ... Extracting application files... Creating symlinks... Symlinking /opt/calibre/calibre-customize to /usr/bin/calibre-customize Symlinking /opt/calibre/calibre-smtp to /usr/bin/calibre-smtp Symlinking /opt/calibre/calibredb to /usr/bin/calibredb Symlinking /opt/calibre/calibre to /usr/bin/calibre Symlinking /opt/calibre/ebook-polish to /usr/bin/ebook-polish Symlinking /opt/calibre/ebook-meta to /usr/bin/ebook-meta Symlinking /opt/calibre/calibre-server to /usr/bin/calibre-server Symlinking /opt/calibre/markdown-calibre to /usr/bin/markdown-calibre Symlinking /opt/calibre/fetch-ebook-metadata to /usr/bin/fetch-ebook-metadata Symlinking /opt/calibre/lrf2lrs to /usr/bin/lrf2lrs Symlinking /opt/calibre/calibre-parallel to /usr/bin/calibre-parallel Symlinking /opt/calibre/ebook-convert to /usr/bin/ebook-convert Symlinking /opt/calibre/ebook-viewer to /usr/bin/ebook-viewer Symlinking /opt/calibre/web2disk to /usr/bin/web2disk Symlinking /opt/calibre/calibre-debug to /usr/bin/calibre-debug Symlinking /opt/calibre/ebook-device to /usr/bin/ebook-device Symlinking /opt/calibre/lrfviewer to /usr/bin/lrfviewer Symlinking /opt/calibre/ebook-edit to /usr/bin/ebook-edit Symlinking /opt/calibre/lrs2lrf to /usr/bin/lrs2lrf Setting up command-line completion... Installing zsh completion to: /usr/share/zsh/site-functions/_calibre Installing bash completion to: /usr/share/bash-completion/completions/calibre Setting up desktop integration... Creating un-installer: /usr/bin/calibre-uninstall Run "calibre" to start calibre % ls -ld /opt/calibre drwxr-xr-x. 5 root root 4.0K Jun 22 10:55 /opt/calibre/ ``` After each, verify calibre starts as a non-root user.
calibre

calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading. It is cross platform, running on Linux, Windows and macOS.
For more information, see the calibre About page
Screenshots
Usage
See the User Manual
Development
Setting up a development environment for calibre
A tarball of the source code for the current calibre release.
Bugs
Bug reports and feature requests should be made in the calibre bug tracker at launchpad. GitHub is only used for code hosting and pull requests.
Support calibre
calibre is a result of the efforts of many volunteers from all over the world. If you find it useful, please consider contributing to support its development. Donate to support calibre development.