Установка программ и редактор nano

В Linux программы не качают с сайтов по одной — есть единый "магазин приложений" прямо в терминале.

Команда apt — это как магазин приложений для Linux, только бесплатный, проверенный и без рекламы. Одна строчка — и программа установлена.

Чтобы делать проекты, тебе понадобятся дополнительные программы и библиотеки. В Raspberry Pi OS за это отвечает менеджер пакетов apt. А чтобы редактировать файлы конфигурации и код прямо в терминале, есть простой редактор nano.

Представь, что на телефоне ты не открываешь Play Market или App Store, а вместо этого ходишь по сайтам, скачиваешь установщики и вручную тащишь к ним нужные файлы. Звучит как кошмар, правда? Именно от этого кошмара спасает apt: один источник, одна команда, и система сама знает, откуда взять программу, какой версии и что ещё к ней докачать. Подросток, который привык ставить приложения в два тапа, освоит apt буквально за вечер — логика та же, просто вместо иконки ты печатаешь название.

Как работает под капотом

apt (Advanced Package Tool) хранит список доступных программ в "репозиториях" — серверах с проверенными пакетами. Команда apt update обновляет этот список, а apt install скачивает и ставит нужную программу вместе со всем, что ей требуется (зависимостями).

sudo apt update
sudo apt install python3-gpiozero fortune

# запустить установленную программу
fortune

# удалить программу
sudo apt remove fortune

Слово sudo означает "выполнить от имени администратора" — установка программ затрагивает всю систему, поэтому требует прав. Это как пароль от важной двери.

Важная деталь, которую часто пропускают: между сервером-репозиторием и твоей платой стоит локальный кеш — список пакетов, который хранится прямо на Pi. Когда ты пишешь apt install, apt сначала смотрит в этот кеш: "А знаю ли я вообще, где лежит такой пакет и какой он версии?" Если список устарел, apt будет искать программу по старому адресу — а её там уже может не быть. Поэтому apt update — это не само обновление программ, а обновление каталога. Чтобы обновить уже установленные программы до свежих версий, есть отдельная команда apt upgrade.

  apt update                      apt install nano
  +------------------+            +-------------------+
  | репозиторий в    |  -->       | читаем кеш: где   |
  | интернете        |            | лежит пакет?      |
  +------------------+            +-------------------+
          |                                |
          v                                v
  +------------------+            +-------------------+
  | свежий список    |  -->       | качаем пакет +    |
  | пакетов (кеш)    |            | зависимости       |
  +------------------+            +-------------------+

Когда apt ставит программу, он почти никогда не качает только её одну. Почти у каждой программы есть зависимости — другие библиотеки, без которых она не запустится. apt сам строит "дерево зависимостей" и докачивает всё необходимое. Поэтому одна команда apt install может потянуть за собой десяток мелких пакетов — это нормально, не пугайся.

nano открывает файл прямо в терминале. Внизу экрана — подсказки: ^O значит "нажми Ctrl+O чтобы сохранить", ^X — выйти. Символ ^ в этих подсказках всегда означает клавишу Ctrl, так что читай их как "Ctrl плюс буква".

  nano my_script.py
  +-------------------------------------+
  |  print("Привет, Raspberry Pi!")    |  <- редактируешь текст
  |                                     |
  +-------------------------------------+
  | ^O Записать   ^X Выйти   ^W Поиск   |  <- подсказки внизу
  +-------------------------------------+

Чтобы почувствовать логику кеша, можно поиграть с моделью на чистом Python прямо в браузере — без всякого железа. Представим каталог пакетов как обычный словарь и проверим, что будет, если искать программу, которой в каталоге нет:

# Мини-модель работы apt: каталог пакетов и поиск
catalog = {
    "nano": "7.2",
    "fortune": "1.99",
    "python3-gpiozero": "2.0",
}

def install(name):
    if name in catalog:
        print(f"Ставлю {name} версии {catalog[name]}")
    else:
        print(f"Не нашёл {name} -> сделай apt update")

for pkg in ["nano", "cowsay", "fortune"]:
    install(pkg)

Частые ошибки

  • Забыли sudo. Установка без прав выдаст ошибку "Permission denied".
  • Не сделали apt update. Тогда apt может не найти свежие версии пакетов.
  • Ищут где "мышкой сохранить" в nano. В nano сохраняют через Ctrl+O, потом Enter, выходят через Ctrl+X.
  • Путают apt update и apt upgrade. Первое обновляет список пакетов, второе — сами установленные программы. Это разные команды.
  • Закрывают терминал при установке. Если оборвать apt install на полпути, база пакетов может остаться в "битом" состоянии — лечится командой sudo apt --fix-broken install.

Best practices

  • Перед установкой чего-либо запускай sudo apt update.
  • Не лей sudo на каждую команду — только туда, где реально нужны права администратора.
  • Для своего кода на Python создавай виртуальное окружение (venv), чтобы не засорять систему.
  • Раз в неделю делай sudo apt update && sudo apt upgrade — так система остаётся свежей и защищённой.
  • Если не помнишь точное название пакета, ищи его командой apt search ключевое_слово — это как поиск в магазине приложений.

Итоги. apt ставит и удаляет программы из проверенных репозиториев, sudo даёт права администратора, nano редактирует файлы прямо в терминале. Команда apt update обновляет каталог, а apt upgrade — сами программы. Теперь у тебя есть всё, чтобы писать и запускать код на Pi.

Проверьте себя
1. Что делает команда sudo перед другой командой?
AУскоряет выполнение
BВыполняет команду с правами администратора
CУдаляет файлы
DОткрывает редактор
2. Как сохранить файл в редакторе nano?
AЗакрыть окно мышкой
BCtrl+O, затем Enter
CПросто выйти
DНажать Save