Установка 7-Zip на Debian 13, 12, 11: подробное руководство

7-Zip — это легендарный архиватор с открытым исходным кодом, который в терминале справляется с 7z, ZIP, TAR, GZIP и даже ISO. В отличие от графических архиваторов, он позволяет автоматизировать сжатие и шифрование (AES-256) через скрипты. Сложность в том, что в разных версиях Debian 7-Zip называется по-разному, а команды для него отличаются. В Debian 13 и 12 — это 7zip, но команда для Debian 12 — 7zz, а для Debian 13 — 7z. Debian 11 использует старый пакет p7zip-full с командой 7z.

💡 В этом руководстве мы разберём универсальные способы установки: через стандартный APT (проще и безопаснее) и через ручной бинарный файл с GitHub (если нужна самая свежая версия или распаковка RAR на Debian 12). Вы научитесь создавать, распаковывать и шифровать архивы прямо из командной строки.

В этой статье вы узнаете:

  • Какой пакет и какую команду использовать в зависимости от вашей версии Debian
  • Как установить 7-Zip из официальных репозиториев APT
  • Как установить самую последнюю версию из бинарного файла (без прав root)
  • Основные команды для работы с архивами: создание, распаковка, шифрование
  • Как обновить ручную сборку с помощью готового скрипта
  • Как решить типичные проблемы: команда не найдена, ошибка архитектуры, отказ в доступе

Для кого: системные администраторы, разработчики, энтузиасты, а также пользователи Debian 11, 12 и 13 (amd64, arm64, i386), которым нужна работа с архивами из терминала.

Оглавление

1. 🔧 Предварительные требования

Перед установкой убедитесь, что:

  • У вас установлена Debian 11, 12 или 13
  • Подключение к интернету стабильно
  • Вы готовы работать с командной строкой

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.

Зачем: Эта команда проверяет, есть ли у вас права sudo. Если прав нет, вы не сможете устанавливать пакеты через APT.

✅ Если выводит root — всё в порядке, можете продолжать.

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.

1.1 Обновление системы

Перед установкой всегда обновляйте список пакетов:

sudo apt update && sudo apt upgrade -y

Что делает:

  • sudo — права суперпользователя
  • apt update — обновляет список доступных пакетов из репозиториев
  • && — выполняет следующую команду только если предыдущая успешна
  • apt upgrade -y — обновляет все установленные пакеты до последних версий, -y автоматически подтверждает действие

Зачем: Это стандартная практика безопасности перед установкой нового ПО. Вы получаете актуальные версии всех системных библиотек.

2. 📊 Выбор правильной команды для вашей версии Debian

Прежде чем устанавливать что-либо, определите, какая команда понадобится. Вот таблица соответствия:

Версия DebianПакетКомандаПоддержка RAR
Debian 13 (Trixie)7zip7zДа
Debian 12 (Bookworm)7zip7zzНет
Debian 11 (Bullseye)p7zip-full7zДа

💡 Важно: Если на Debian 12 вам нужна поддержка RAR, используйте ручную установку из раздела 3 или установите отдельную утилиту unrar.

3. 📦 Установка 7-Zip через APT (рекомендуемый способ)

APT — это стандартный менеджер пакетов Debian. Он автоматически устанавливает зависимости и получает обновления безопасности вместе с системой.

3.1 Установка на Debian 13 (Trixie)

Debian 13 использует современный пакет 7zip с привычной командой 7z.

sudo apt install 7zip -y

Что делает: Устанавливает пакет 7zip и все необходимые зависимости.

Зачем: Это официальный пакет от разработчиков 7-Zip, адаптированный для Debian 13.

Проверка установки:

7z

Что делает: Запускает архиватор без аргументов, выводя справку.

Ожидаемый вывод в терминале (сокращённо):

7-Zip 25.01 (x64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

3.2 Установка на Debian 12 (Bookworm)

На Debian 12 пакет называется так же (7zip), но команда отличается — 7zz.

sudo apt install 7zip -y

Проверка установки (обратите внимание на команду!):

7zz

Ожидаемый вывод в терминале (сокращённо):

7-Zip (z) 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15
Usage: 7zz <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

⚠️ Важно: На Debian 12 команда 7z работать не будет. Всегда используйте 7zz.

3.3 Установка на Debian 11 (Bullseye)

Debian 11 использует старый форк p7zip-full.

sudo apt install p7zip-full -y

Проверка установки:

7z

Ожидаемый вывод в терминале (сокращённо):

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]

4. 🚀 Установка последней версии из бинарного файла (с GitHub)

Этот способ подходит, если:

  • Вам нужна самая свежая версия 7-Zip (например, 26.x вместо 22.x на Debian 12)
  • На Debian 12 нужна поддержка RAR (в пакете из APT её нет)
  • У вас нет прав sudo (можно установить в домашнюю директорию)

4.1 Установка вспомогательных утилит

Для скачивания и распаковки нам понадобятся curl, wget и xz-utils.

sudo apt install ca-certificates curl wget xz-utils -y

Что делает: Устанавливает инструменты для безопасной работы с HTTPS-репозиториями, скачивания файлов и распаковки архивов .tar.xz.

4.2 Определение архитектуры системы

dpkg --print-architecture

Что делает: Показывает архитектуру вашего процессора.

Что ищем:

  • amd64 — 64-битные Intel/AMD (самый распространённый вариант)
  • arm64 — для Raspberry Pi 4/5 и подобных
  • i386 — для старых 32-битных систем

Ожидаемый вывод: amd64 (для большинства компьютеров).

4.3 Скачивание последней версии

Эта команда автоматически находит и скачивает последнюю версию 7-Zip с GitHub.

curl -s https://api.github.com/repos/ip7z/7zip/releases/latest | grep -oP '"browser_download_url": "\K[^"]+linux-x64[^"]+' | xargs wget

Что делает:

  • curl -s — тихо (без индикатора прогресса) запрашивает данные о последнем релизе через GitHub API
  • grep -oP — с помощью регулярного выражения извлекает ссылку на скачивание для 64-битной системы
  • xargs wget — передаёт найденную ссылку программе wget для скачивания

Зачем: Этот способ избавляет от необходимости вручную искать номер версии на GitHub.

💡 Если у вас не amd64: Замените linux-x64 в команде выше на:

  • linux-arm64 для ARM64
  • linux-x86 для 32-битных систем

Или посетите страницу релизов 7-Zip на GitHub и скачайте нужный файл вручную.

Ожидаемый вывод в терминале:

7z2600-linux-x64.tar.xz    100%[=====================================>]   2.12M  10.5MB/s    in 0.2s

4.4 Распаковка архива

tar xf 7z*-linux-x64.tar.xz

Что делает: Распаковывает скачанный архив. Появятся файлы 7zz, 7zzs, а также документация.

Зачем: Нам нужен только исполняемый файл 7zz. Он работает на всех версиях Debian и поддерживает RAR.

4.5 Установка (два варианта)

Вариант А: Системная установка (требуются права sudo)

Подходит, если 7-Zip должны использовать все пользователи системы.

sudo mv 7zz /usr/local/bin/

Что делает: Перемещает бинарный файл в директорию /usr/local/bin/, которая по умолчанию есть в PATH у всех пользователей.

Проверка:

7zz

Ожидаемый вывод в терминале (сокращённо):

7-Zip (z) 26.00 (x64) : Copyright (c) 1999-2026 Igor Pavlov : 2026-02-12
Usage: 7zz <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

Вариант Б: Установка для текущего пользователя (без sudo)

Подходит, если у вас нет прав администратора или вы не хотите засорять систему.

mkdir -p ~/.local/bin && mv 7zz ~/.local/bin/

Что делает: Создаёт скрытую директорию .local/bin в вашей домашней папке (если её нет) и перемещает туда 7zz.

Проверка, что директория в PATH:

echo $PATH | grep -o '\.local/bin'

Ожидаемый вывод: .local/bin

Если вывода нет — добавьте директорию в PATH:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

Что делает: Добавляет строку в файл ~/.bashrc, которая при каждом запуске терминала добавляет ~/.local/bin в PATH.

Проверка установки:

7zz

5. 🔄 Обновление ручной сборки (скрипт)

Поскольку ручная установка не использует APT, обновлять её нужно отдельно. Вот готовый скрипт, который проверяет версию и обновляет только при необходимости.

Создание скрипта:

cat <<'EOF' > ~/update-7zz.sh
#!/usr/bin/env bash
set -euo pipefail

require_cmd() {
  command -v "$1" >/dev/null 2>&1 || { echo "Error: $1 is required."; exit 1; }
}

for cmd in curl tar awk dpkg mktemp install; do
  require_cmd "$cmd"
done

if ! command -v 7zz >/dev/null 2>&1; then
  echo "Error: 7zz is not in PATH. This script updates the manual 7-Zip binary only."
  echo "If you installed via APT, run: sudo apt install --only-upgrade 7zip"
  exit 1
fi

INSTALL_PATH="$(command -v 7zz)"
if [ "$INSTALL_PATH" = "/usr/bin/7zz" ]; then
  echo "Detected APT-managed 7zz at /usr/bin/7zz."
  echo "Update it with: sudo apt install --only-upgrade 7zip"
  exit 0
fi

ARCH="$(dpkg --print-architecture)"
case "$ARCH" in
  amd64) ARCH_TAG="linux-x64" ;;
  arm64) ARCH_TAG="linux-arm64" ;;
  armhf) ARCH_TAG="linux-arm" ;;
  i386) ARCH_TAG="linux-x86" ;;
  *) echo "Unsupported architecture: $ARCH"; exit 1 ;;
esac

API_URL="https://api.github.com/repos/ip7z/7zip/releases/latest"
RELEASE_JSON="$(curl -fsSL "$API_URL")"
LATEST_TAG="$(printf '%s' "$RELEASE_JSON" | awk -F'\"' '/\"tag_name\":/ {print $4; exit}')"
LATEST_URL="$(printf '%s' "$RELEASE_JSON" | awk -F'\"' -v arch="$ARCH_TAG" '/browser_download_url/ && $0 ~ arch {print $4; exit}')"

if [ -z "$LATEST_TAG" ] || [ -z "$LATEST_URL" ]; then
  echo "Error: Could not determine the latest release information from GitHub."
  exit 1
fi

CURRENT_VERSION="$(7zz -h | awk 'NF {print $3; exit}')"
if [ -z "$CURRENT_VERSION" ]; then
  CURRENT_VERSION="unknown"
fi

echo "Detected install: $INSTALL_PATH"
echo "Architecture: $ARCH ($ARCH_TAG)"
echo "Current version: $CURRENT_VERSION"
echo "Latest version: $LATEST_TAG"

if [ "$CURRENT_VERSION" = "$LATEST_TAG" ]; then
  echo "7-Zip is already up to date."
  exit 0
fi

echo "Updating 7-Zip from $CURRENT_VERSION to $LATEST_TAG..."
WORKDIR="$(mktemp -d)"
trap 'rm -rf "$WORKDIR"' EXIT

ARCHIVE="$WORKDIR/7z-${LATEST_TAG}-${ARCH_TAG}.tar.xz"
curl -fL --progress-bar "$LATEST_URL" -o "$ARCHIVE"
tar -xf "$ARCHIVE" -C "$WORKDIR"

if [ ! -x "$WORKDIR/7zz" ]; then
  echo "Error: 7zz not found in the downloaded archive."
  exit 1
fi

INSTALL_DIR="$(dirname "$INSTALL_PATH")"
if [ -w "$INSTALL_DIR" ]; then
  install -m 0755 "$WORKDIR/7zz" "$INSTALL_PATH"
elif [ "$(id -u)" -eq 0 ]; then
  install -m 0755 "$WORKDIR/7zz" "$INSTALL_PATH"
elif command -v sudo >/dev/null 2>&1; then
  sudo install -m 0755 "$WORKDIR/7zz" "$INSTALL_PATH"
else
  echo "Error: $INSTALL_DIR is not writable and sudo is not available."
  echo "Run this script as root or reinstall to ~/.local/bin."
  exit 1
fi

echo "Update complete."
7zz -h | awk 'NF {print; exit}'
EOF

Что делает скрипт: Определяет, где установлен 7zz, проверяет текущую версию, сравнивает с последней на GitHub и при необходимости скачивает и заменяет бинарный файл.

Делаем скрипт исполняемым и запускаем:

chmod +x ~/update-7zz.sh
~/update-7zz.sh

Что делает: chmod +x добавляет право на выполнение, затем скрипт запускается.

Ожидаемый вывод, если версия последняя:

Detected install: /usr/local/bin/7zz
Architecture: amd64 (linux-x64)
Current version: 26.00
Latest version: 26.00
7-Zip is already up to date.

⚠️ Важно: Не автоматизируйте этот скрипт через cron. При сбое скачивания или запросе пароля sudo обновление может быть частичным. Запускайте его вручную и проверяйте вывод.

6. 📝 Основные команды 7-Zip

Дальнейшие примеры используют 7z как универсальное имя команды. Подставьте нужное для вашей системы:

  • Debian 13 (APT): 7z
  • Debian 12 (APT): 7zz
  • Debian 11: 7z
  • Ручная установка (любая версия): 7zz

6.1 Создание архива

Сжать один файл:

7z a archive.7z file.txt

Что делает: Команда a (add) добавляет файлы в новый архив archive.7z.

Сжать целую директорию со всем содержимым:

7z a backup.7z /path/to/directory/

6.2 Распаковка архива

Распаковать в текущую директорию с сохранением структуры папок:

7z x archive.7z

Что делает: Команда x (extract) извлекает файлы, создавая все поддиректории.

Распаковать в конкретную папку (обратите внимание: нет пробела между -o и путём):

7z x archive.7z -o/path/to/destination/

Распаковать все файлы в одну папку (без сохранения структуры):

7z e archive.7z

Что делает: Команда e (extract) извлекает все файлы «плоским списком», игнорируя поддиректории.

6.3 Просмотр содержимого архива

7z l archive.7z

Что делает: Команда l (list) показывает список файлов в архиве с их размерами и датами.

6.4 Обновление и удаление файлов в архиве

Добавить новый файл или обновить существующий (если он новее):

7z u archive.7z newfile.txt

Что делает: Команда u (update) обновляет архив — добавляет новые файлы и заменяет старые, если исходный файл свежее.

Удалить файл из архива:

7z d archive.7z oldfile.txt

6.5 Создание зашифрованного архива (AES-256)

7z a -p -mhe=on secure.7z sensitive-files/

Что делает:

  • -p — запросить пароль (будет введён скрыто)
  • -mhe=on — зашифровать не только содержимое, но и имена файлов

Зачем: Даже если кто-то получит архив, он не увидит, какие файлы внутри, пока не введёт пароль.

6.6 Проверка целостности архива

7z t archive.7z

Что делает: Команда t (test) проверяет, не повреждён ли архив. Особенно полезно после скачивания больших файлов.

Ожидаемый вывод (всё хорошо):

Everything is Ok

6.7 Настройка уровня сжатия

От 0 (без сжатия, быстро) до 9 (максимальное сжатие, медленно):

7z a -mx9 maximum.7z largefile.iso

Что делает: -mx9 включает максимальное сжатие. Файл будет меньше, но процесс займёт больше времени.

Для быстрого сжатия:

7z a -mx1 fast.7z largefile.iso

Зачем: По умолчанию используется -mx5 — хороший баланс скорости и размера.

6.8 Разбивка на тома (например, для отправки по почте)

7z a -v100m split-archive.7z large-backup/

Что делает: -v100m разбивает архив на тома по 100 мегабайт. Появятся файлы split-archive.7z.001, split-archive.7z.002 и т.д.

Распаковка многотомного архива:

7z x split-archive.7z.001

6.9 Исключение файлов по шаблону

Исключить все файлы .log при сжатии:

7z a backup.7z project/ -xr!*.log

Что делает: -xr!*.log исключает все файлы, заканчивающиеся на .log, включая поддиректории (флаг r означает рекурсивно).

Исключить несколько типов:

7z a backup.7z project/ -xr!*.log -xr!*.tmp -xr!node_modules

7. ⚠️ Решение типичных проблем

7.1 Ошибка: 7z: command not found (Debian 12)

Симптом: После установки 7zip команда 7z не работает.

Причина: На Debian 12 пакет 7zip предоставляет команду 7zz, а не 7z.

Пошаговое решение:

Шаг 1: Проверьте, какой пакет установлен:

dpkg -l | grep -E "7zip|p7zip"

Что ищем: Если видите ii 7zip — пакет установлен.

Шаг 2: Используйте правильную команду:

7zz

Шаг 3: Если хотите использовать 7z как сокращение, создайте алиас:

echo "alias 7z='7zz'" >> ~/.bashrc
source ~/.bashrc

7.2 Ошибка: cannot execute binary file: Exec format error

Симптом: При попытке запустить 7zz появляется:

bash: /usr/local/bin/7zz: cannot execute binary file: Exec format error

Причина: Вы скачали бинарный файл не для своей архитектуры (например, 64-битную версию на 32-битную систему).

Пошаговое решение:

Шаг 1: Определите вашу архитектуру:

dpkg --print-architecture

Шаг 2: Удалите неверный бинарный файл:

sudo rm /usr/local/bin/7zz   # если устанавливали системно
# или
rm ~/.local/bin/7zz          # если устанавливали для пользователя

Шаг 3: Скачайте версию для вашей архитектуры с GitHub:

  • amd64linux-x64
  • arm64linux-arm64
  • i386linux-x86

Шаг 4: Повторите установку с правильным файлом.

7.3 Ошибка: Permission denied при распаковке

Симптом:

ERROR: CFileOutStream::Create: Can not open output file: /opt/destination/file.txt
System ERROR: Permission denied

Причина: Вы пытаетесь распаковать архив в директорию, на запись в которой у вас нет прав.

Пошаговое решение:

Шаг 1: Распакуйте в домашнюю директорию (где права точно есть):

7z x archive.7z -o~/extracted/

Шаг 2: Если нужно распаковать именно в системную директорию, используйте sudo:

sudo 7z x archive.7z -o/opt/destination/

Шаг 3: Если у вас нет прав sudo, обратитесь к администратору или выберите другую директорию.

7.4 Ошибка: CRC Failed / Data Error

Симптом:

ERROR: CRC Failed : document.pdf
ERROR: Data Error in encrypted file. Wrong password?

Причина: Архив повреждён (CRC Failed) или вы ввели неверный пароль.

Пошаговое решение:

Шаг 1: Проверьте целостность архива:

7z t archive.7z

Что ищем: Если ошибка CRC Failed — архив повреждён при скачивании или копировании. Скачайте заново.

Шаг 2: Если архив зашифрован, проверьте пароль. Помните, что пароли чувствительны к регистру.

7.5 На Debian 12 не распаковываются RAR-архивы

Симптом: При попытке распаковать RAR получаете ошибку о неподдерживаемом формате.

Причина: Пакет 7zip в Debian 12 собран без поддержки RAR из-за лицензионных ограничений.

Пошаговое решение:

Вариант 1 (рекомендуемый): Установите ручную версию 7-Zip из раздела 4. Она поддерживает RAR на любой версии Debian.

Вариант 2: Установите отдельную утилиту unrar:

sudo apt install unrar -y

Что делает: Устанавливает официальную утилиту для распаковки RAR от WinRAR.

Распаковка RAR-архива:

unrar x archive.rar

8. ❌ Удаление 7-Zip

Удаление APT-версии

Для Debian 13 и 12:

sudo apt remove --purge 7zip -y
sudo apt autoremove -y

Что делает: remove --purge удаляет пакет и его конфигурационные файлы. autoremove удаляет ненужные зависимости.

Для Debian 11:

sudo apt remove --purge p7zip-full -y
sudo apt autoremove -y

Проверка удаления (Debian 13 и 11):

7z

Ожидаемый вывод: bash: 7z: command not found

Проверка удаления (Debian 12):

7zz

Ожидаемый вывод: bash: 7zz: command not found

Удаление ручной версии

Если устанавливали системно (/usr/local/bin):

sudo rm /usr/local/bin/7zz

Если устанавливали для пользователя (~/.local/bin):

rm ~/.local/bin/7zz

Очистка скачанных файлов:

rm ~/7z*-linux-*.tar.xz ~/7zzs ~/readme.txt ~/License.txt ~/History.txt

Если добавляли алиас в ~/.bashrc — откройте файл (nano ~/.bashrc) и удалите строку с alias 7z='7zz'.

9. 📝 Чек-лист: всё готово к работе

  • [ ] Определена ваша версия Debian (lsb_release -a)
  • [ ] Выбрана правильная команда (7z, 7zz или 7zz для ручной сборки)
  • [ ] Пакет установлен: dpkg -l | grep -E "7zip|p7zip" показывает ii
  • [ ] Проверка работает: 7z --help (или 7zz --help) выводит справку
  • [ ] Вы можете создать архив: 7z a test.7z /etc/hosts
  • [ ] Вы можете распаковать архив: 7z x test.7z
  • [ ] (Для ручной установки) Скрипт обновления работает: ~/update-7zz.sh

Заключение

Вы успешно установили 7-Zip на Debian. Теперь вы умеете создавать и распаковывать архивы из командной строки, шифровать их паролем и даже обновлять ручную сборку одним скриптом. Главное — помните про разницу в командах между версиями Debian: на 12-й используйте 7zz, на 13-й и 11-й — 7z. Если нужна поддержка RAR на Debian 12 — используйте ручную установку из раздела 4.

Что дальше:

  • Напишите bash-скрипт для автоматического бэкапа важных папок с созданием архива
  • Настройте шифрование бэкапов с помощью -p и -mhe=on
  • Изучите интеграцию 7-Zip с cron для регулярного сжатия логов
  • Если работаете с RAR-архивами на Debian 12, установите unrar как дополнение к 7-Zip

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *