# System Dependencies for olmOCR on Ubuntu/Debian: Complete Installation Guide

> Install olmOCR on Ubuntu/Debian by adding essential system dependencies like poppler-utils and Microsoft Core Fonts. Get text extraction working with our easy guide.

- Repository: [Ai2/olmocr](https://github.com/allenai/olmocr)
- Tags: how-to-guide
- Published: 2026-07-02

---

**To run olmOCR on Ubuntu/Debian, you must install native packages including poppler-utils, Microsoft Core Fonts, and several font utilities via apt to enable PDF rendering and text extraction.**

Deploying the allenai/olmocr pipeline requires specific system-level dependencies for document processing and font handling. Before installing the Python package, your Ubuntu or Debian host needs native libraries that convert PDF pages to images and ensure accurate character recognition during the OCR process.

## Required System Packages for olmOCR

The olmOCR repository specifies seven core packages that must be present on Ubuntu/Debian systems. According to the [`README.md`](https://github.com/allenai/olmocr/blob/main/README.md) at lines 188-196 and the `Dockerfile` at lines 26-34, the following native dependencies handle the transition from PDF documents to processable content:

- **poppler-utils**: Provides `pdftotext` and related tools that extract raster images from PDF pages. These images are later fed to olmOCR's vision-language model.

- **ttf-mscorefonts-installer** and **msttcorefonts**: Install Microsoft Core Fonts including Arial and Times New Roman, ensuring the OCR engine can correctly render and recognize text using these common typefaces.

- **fonts-crosextra-caladea** and **fonts-crosextra-carlito**: Add the Caladea and Carlito font families, which are free alternatives to Microsoft core fonts that improve rendering of many academic and office documents.

- **gsfonts**: Supplies generic Ghostscript fonts required by PDF rendering pipelines.

- **lcdf-typetools**: Provides the `lat` and `type1inst` utilities for handling Type 1 fonts in legacy PDF documents.

For Docker deployments only, **python3-apt** is additionally required to enable the Python `apt` module used by container entry-point scripts.

## Why olmOCR Needs Native Dependencies

olmOCR relies on system-level PDF processing because it must extract high-fidelity raster images from source documents before performing optical character recognition. The **poppler-utils** package performs this rasterization, converting vector PDF pages into pixels that the neural network can analyze.

The font packages are equally critical. During the rendering step performed by Poppler and Ghostscript, the system must locate correct font metrics to calculate character positions accurately. Without **ttf-mscorefonts-installer**, **msttcorefonts**, and the crosextra font families, the pipeline may misrecognize characters, drop content entirely, or fail to detect complex layouts including tables and mathematical equations.

## Installing Dependencies on Ubuntu and Debian

Install all required system dependencies using the following command, as documented in the repository's installation guide:

```bash
sudo apt-get update
sudo apt-get install -y \
    poppler-utils \
    ttf-mscorefonts-installer \
    msttcorefonts \
    fonts-crosextra-caladea \
    fonts-crosextra-carlito \
    gsfonts \
    lcdf-typetools

```

This installation sequence is also referenced in [`scripts/run_qianfan_benchmark.sh`](https://github.com/allenai/olmocr/blob/main/scripts/run_qianfan_benchmark.sh), which contains similar package installation logic for benchmark environments.

## Docker Image Configuration

When building custom containers or extending the official olmOCR image, replicate the dependency installation pattern found in the repository's `Dockerfile`. The official container definition ensures production deployments have identical native prerequisites to host-based installations:

```dockerfile
FROM nvidia/cuda:12.8.0-runtime-ubuntu22.04

# Install the same native deps as the official olmOCR image

RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        poppler-utils \
        ttf-mscorefonts-installer \
        msttcorefonts \
        fonts-crosextra-caladea \
        fonts-crosextra-carlito \
        gsfonts \
        lcdf-typetools \
        python3-apt && \
    rm -rf /var/lib/apt/lists/*

```

Note that `python3-apt` is included here specifically for Docker environments to support container initialization scripts, whereas native installations typically do not require this package.

## Summary

- **poppler-utils** extracts raster images from PDF pages that feed into the vision-language model.
- **Font packages** (`ttf-mscorefonts-installer`, `msttcorefonts`, `fonts-crosextra-caladea`, `fonts-crosextra-carlito`, `gsfonts`, `lcdf-typetools`) ensure accurate font metric calculation for layout detection and character recognition.
- Install all dependencies via a single `apt-get` command before creating your Python environment.
- The official `Dockerfile` contains the authoritative list of system dependencies for containerized deployments.
- The benchmark script at [`scripts/run_qianfan_benchmark.sh`](https://github.com/allenai/olmocr/blob/main/scripts/run_qianfan_benchmark.sh) confirms these packages are required for all Ubuntu/Debian deployments.

## Frequently Asked Questions

### Do I need to install these dependencies for the Docker version of olmOCR?

The official olmOCR Docker image already includes these system dependencies in its base layer (lines 26-34 of the `Dockerfile`). You only need to manually install these packages when running olmOCR directly on a host system or when building custom images that do not extend the official container.

### What happens if I skip the font packages when installing olmOCR?

Without the Microsoft Core Fonts and crosextra font families, the PDF rendering step may fail to locate correct font metrics. This causes the OCR engine to misrecognize characters, omit text sections, or produce inaccurate layout detection for documents containing tables, equations, or styled text.

### Are these system dependencies compatible with all Ubuntu and Debian versions?

These packages are available in standard repositories for Ubuntu 20.04, 22.04, and 24.04, as well as Debian 11 and 12. The package names remain consistent across distributions, though you should ensure your `apt` sources are updated before installation as shown in the repository's [`README.md`](https://github.com/allenai/olmocr/blob/main/README.md).

### Is python3-apt required for native installations or only Docker?

The **python3-apt** package is specifically required for Docker deployments, as it enables the Python `apt` module used by container entry-point scripts. Native installations on Ubuntu or Debian do not require this package unless you are executing container-specific management scripts from the olmOCR repository.