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) | 7zip | 7z | Да |
| Debian 12 (Bookworm) | 7zip | 7zz | Нет |
| Debian 11 (Bullseye) | p7zip-full | 7z | Да |
💡 Важно: Если на 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 APIgrep -oP— с помощью регулярного выражения извлекает ссылку на скачивание для 64-битной системыxargs wget— передаёт найденную ссылку программеwgetдля скачивания
Зачем: Этот способ избавляет от необходимости вручную искать номер версии на GitHub.
💡 Если у вас не amd64: Замените linux-x64 в команде выше на:
linux-arm64для ARM64linux-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:
amd64→linux-x64arm64→linux-arm64i386→linux-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