← Назад к вопросам

Какой командой установить какой-либо пакет на сервер?

1.0 Junior🔥 222 комментариев
#Linux и администрирование

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Установка пакетов в Linux: Команды и методы

Однозначного ответа на этот вопрос не существует, так как команда для установки пакетов существенно зависит от дистрибутива Linux и его системы управления пакетами. Как DevOps-инженер, я ежедневно работаю с разными окружениями, поэтому выбор команды определяется контекстом.

Основные менеджеры пакетов

Вот ключевые команды для популярных дистрибутивов:

1. Для Debian/Ubuntu (APT - Advanced Package Tool)

# Обновление репозиториев (ВСЕГДА делаем перед установкой)
sudo apt update

# Установка пакета (например, nginx)
sudo apt install nginx

# Установка нескольких пакетов
sudo apt install nginx python3 docker-ce

# Установка конкретной версии
sudo apt install nginx=1.18.0-0ubuntu1

2. Для RHEL/CentOS/Fedora (YUM/DNF)

# Для CentOS 7/RHEL 7 (YUM)
sudo yum install nginx

# Для CentOS 8+/RHEL 8+/Fedora (DNF - улучшенный YUM)
sudo dnf install nginx

# Поиск пакета
sudo dnf search nginx

3. Для Alpine Linux (APK)

# Установка с обновлением репозиториев
apk add nginx

# Или с sudo, если требуется
sudo apk add nginx

4. Универсальные методы (кроссплатформенные)

Snap-пакеты (работают на многих дистрибутивах):

sudo snap install docker

Flatpak (альтернатива Snap):

flatpak install flathub org.gimp.GIMP

Best Practices для DevOps

В production-среде мы редко устанавливаем пакеты вручную. Вот как это делается правильно:

Использование Configuration Management

  • Ansible (наиболее популярен):
# playbook.yml
- name: Install required packages
  hosts: webservers
  become: yes
  tasks:
    - name: Install nginx and dependencies
      apt:
        name: "{{ item }}"
        state: present
        update_cache: yes
      loop:
        - nginx
        - python3
        - curl
  • Terraform (при работе с облачными инстансами):
resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  
  user_data = <<-EOF
              #!/bin/bash
              apt update
              apt install -y nginx
              systemctl start nginx
              EOF
}

Использование Docker

# Dockerfile
FROM ubuntu:20.04
RUN apt update && apt install -y \
    nginx \
    python3 \
    && rm -rf /var/lib/apt/lists/*

Критические нюансы для продакшена

  1. Версионирование пакетов:
# Всегда фиксируем версии в скриптах/плейбуках
sudo apt install nginx=1.18.0*
  1. Автоматическое подтверждение (для скриптов):
# Флаг -y автоматически подтверждает установку
sudo apt install -y nginx
  1. Очистка кэша (особенно в Docker):
# Минимизация размера образа
apt update && apt install -y nginx && apt clean && rm -rf /var/lib/apt/lists/*
  1. Проверка установленного:
# Проверка установки
dpkg -l | grep nginx  # для Debian/Ubuntu
rpm -qa | grep nginx  # для RHEL/CentOS
which nginx           # путь к бинарнику

Выбор стратегии установки

Как senior DevOps, я выбираю метод установки исходя из:

  • Идемпотентности — Ansible/Puppet/Chef гарантируют одинаковый результат
  • Воспроизводимости — Docker/контейнеризация фиксирует окружение
  • Масштабируемости — Golden Images/AMI для облачных развертываний
  • Безопасности — проверка подписей пакетов, использование доверенных репозиториев

Резюмируя: прямая установка через apt install или yum install подходит только для разработки или разовых операций. В production мы используем инфраструктуру как код, контейнеризацию и менеджмент конфигураций для гарантированной повторяемости и контроля версий.

Какой командой установить какой-либо пакет на сервер? | PrepBro