Главная страница » Linux и серверы » Как скачать программу с GitHub в Linux через терминал: git clone, wget и curl
Как скачать программу с GitHub в Linux через терминал: git clone, wget и curl
Linux и серверы

Как скачать программу с GitHub в Linux через терминал: git clone, wget и curl

09.09.2026 70
Как скачать программу с GitHub в Linux через терминал: git clone, wget и curl

Разбираемся, как скачать программу, файл или целый репозиторий с GitHub через терминал Linux. Примеры с `git clone`, `wget`, `curl`, архивами и готовыми бинарниками.

На GitHub лежит огромное количество программ, скриптов и различных утилит для Linux. И довольно часто инструкция заканчивается примерно так:

Скачайте последнюю версию с GitHub.

Если на Linux установлен графический интерфейс, можно открыть браузер, нажать Releases, скачать архив и распаковать его. Но на сервере, Raspberry Pi, Orange Pi, Rock Pi или обычной Debian-машине без рабочего стола гораздо удобнее сделать всё непосредственно через терминал.

Здесь есть важный нюанс: скачать программу с GitHub можно несколькими совершенно разными способами.

Можно:

  • клонировать весь репозиторий через git clone;
  • скачать конкретный файл через wget;
  • скачать файл через curl;
  • загрузить готовый бинарник из GitHub Releases;
  • скачать ZIP или tar.gz с исходниками;
  • скачать установочный скрипт и сначала проверить его содержимое.

Разберём каждый вариант и заодно выясним, почему git clone далеко не всегда является правильной командой.

Подготавливаем Linux

В Debian, Ubuntu, Armbian и большинстве основанных на них систем сразу поставим основные инструменты:

sudo apt update
sudo apt install -y git wget curl unzip

Проверить, что всё установилось:

git --version
wget --version
curl --version

Для большинства дальнейших примеров этого достаточно.

Сначала разберёмся: репозиторий или готовая программа

Это одна из основных ошибок начинающих пользователей Linux.

Допустим, на GitHub есть проект:

OWNER/PROGRAM

На его основной странице находится исходный код. Кнопка Code позволяет клонировать этот репозиторий.

Но готовые версии программы разработчик может публиковать отдельно в разделе Releases.

Получается два разных варианта.

Репозиторий

Обычно содержит:

  • исходный код;
  • документацию;
  • конфигурационные файлы;
  • скрипты сборки;
  • историю проекта.

Его можно получить через:

git clone

Release

Может содержать уже собранные программы:

program-linux-amd64
program-linux-arm64
program-linux-amd64.tar.gz
program-linux-arm64.zip
program.deb

Если задача заключается просто в установке программы, обычно разумнее сначала посмотреть Releases.

Компилировать исходный код самостоятельно только потому, что проект находится на GitHub, совершенно необязательно.

Как скачать репозиторий с GitHub через git clone

Самый известный вариант выглядит так:

git clone https://github.com/OWNER/REPOSITORY.git

Например, если репозиторий называется:

OWNER/program

команда будет иметь вид:

git clone https://github.com/OWNER/program.git

После выполнения Git создаст каталог:

program

Переходим в него:

cd program

Посмотреть содержимое:

ls -la

git clone загружает не просто отдельный файл, а локальную копию Git-репозитория.

Это удобно, если проект потом потребуется обновлять.

Например:

cd program
git pull

Команда git pull получает изменения из удалённого репозитория и обновляет локальную копию.

Как скачать только последнюю версию репозитория

Полная история разработки нужна далеко не всегда.

Для обычной установки или просмотра исходников можно сделать неглубокое клонирование:

git clone --depth 1 https://github.com/OWNER/REPOSITORY.git

Параметр:

--depth 1

загружает только последнее состояние репозитория без всей предыдущей истории Git.

Для крупных проектов это может заметно сократить объём скачиваемых данных.

Как скачать файл с GitHub через wget

Если нужен один конкретный файл, клонировать весь репозиторий бессмысленно.

Для этого удобнее использовать wget.

Общий вид команды:

wget URL

Например:

wget https://example.com/program.tar.gz

Файл сохранится в текущий каталог.

Посмотреть его:

ls -lh

Если нужно явно указать имя:

wget -O program.tar.gz URL

После загрузки можно проверить размер:

ls -lh program.tar.gz

Как скачать файл с GitHub через curl

То же самое можно сделать через curl.

Но здесь есть небольшое отличие.

Обычная команда:

curl URL

выведет полученные данные прямо в терминал.

Чтобы сохранить файл, используем:

curl -L -o program.tar.gz URL

Где:

  • -L разрешает переходить по HTTP-перенаправлениям;
  • -o задаёт имя сохраняемого файла.

Если имя файла уже нормально присутствует в URL, можно использовать:

curl -L -O URL

Заглавная -O говорит curl сохранить файл с именем, полученным из URL.

Для GitHub параметр -L особенно полезен, поскольку загрузка файла может проходить через перенаправление.

Как скачать программу из GitHub Releases

Теперь наиболее практичный вариант.

Допустим, разработчик публикует в Releases такие файлы:

program-linux-amd64.tar.gz
program-linux-arm64.tar.gz
program-windows-amd64.zip

Нам сначала нужно определить архитектуру своего Linux.

Выполняем:

uname -m

На обычном ПК или VPS чаще всего увидим:

x86_64

Это обычно соответствует вариантам с названием:

amd64
x86_64
x64

На современных ARM-одноплатниках можно получить:

aarch64

Тогда обычно нужен файл:

arm64
aarch64

На более старых 32-битных ARM-системах встречается:

armv7l

Важно: конкретные названия файлов определяет разработчик программы. Всегда проверяйте описание Release.

После того как нужный файл найден, его адрес можно скачать через:

wget URL_ФАЙЛА

или:

curl -L -O URL_ФАЙЛА

Почему архитектура программы имеет значение

Представим, что у нас Orange Pi с ARM64:

uname -m

возвращает:

aarch64

А мы случайно скачали:

program-linux-amd64

При запуске Linux может ответить примерно так:

cannot execute binary file: Exec format error

Проверить тип скачанного файла можно командой:

file program

Например:

ELF 64-bit LSB executable, x86-64

или:

ELF 64-bit LSB executable, ARM aarch64

Если архитектура программы не совпадает с архитектурой системы, скачиваем другой вариант Release.

Как распаковать tar.gz

Очень часто программы на GitHub распространяются в архиве:

program-linux-amd64.tar.gz

Распаковываем:

tar -xzf program-linux-amd64.tar.gz

После этого смотрим содержимое:

ls -lah

Если хочется сначала посмотреть, что лежит внутри архива, не распаковывая его:

tar -tzf program-linux-amd64.tar.gz

Это особенно полезно перед распаковкой неизвестного архива.

Как распаковать ZIP

Если программа распространяется в ZIP:

unzip program-linux-amd64.zip

Посмотреть содержимое ZIP перед распаковкой:

unzip -l program-linux-amd64.zip

Если команда unzip отсутствует:

sudo apt install unzip

Как сделать скачанную программу исполняемой

После скачивания Linux может не разрешить запуск файла:

./program

и ответить:

Permission denied

Проверяем права:

ls -l program

Добавляем право на выполнение:

chmod +x program

Теперь запускаем:

./program

Почему используется ./?

Linux обычно не ищет программы в текущем каталоге автоматически. Поэтому:

program

может вернуть:

command not found

а:

./program

явно означает: запусти файл program, находящийся в текущем каталоге.

Как установить бинарник, чтобы команда работала отовсюду

Допустим, мы скачали программу:

program

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

./program

Чтобы потом можно было выполнять просто:

program

бинарник можно установить в /usr/local/bin:

sudo install -m 0755 program /usr/local/bin/program

Проверяем:

which program

Ожидаемый результат:

/usr/local/bin/program

Теперь программу можно запускать из любого каталога:

program

Каталог /usr/local/bin как раз подходит для программ, устанавливаемых администратором вручную и не управляемых пакетным менеджером дистрибутива.

Если GitHub предлагает DEB-пакет

Иногда в Releases уже имеется:

program_amd64.deb

Для Debian, Ubuntu и Armbian это очень удобный вариант.

Скачиваем файл и устанавливаем:

sudo apt install ./program_amd64.deb

Именно apt install, а не просто распаковка архива, позволяет пакетному менеджеру обработать зависимости программы.

После установки проверяем:

program --version

Название команды зависит от конкретной программы.

Как скачать исходники без git clone

Если Git вообще не нужен, GitHub позволяет получить архив определённой ветки или тега.

Например, архив основной ветки обычно имеет структуру адреса:

https://github.com/OWNER/REPOSITORY/archive/refs/heads/main.tar.gz

Скачать его можно через:

wget -O source.tar.gz URL

Затем:

tar -xzf source.tar.gz

В отличие от git clone, здесь мы получаем обычный снимок файлов проекта без истории Git.

Git clone или wget: что использовать

Если коротко:

Задача Что использовать
Скачать весь Git-репозиторий git clone
Скачать репозиторий без старой истории git clone --depth 1
Скачать один файл wget или curl
Скачать готовую Linux-программу GitHub Releases + wget/curl
Скачать исходники архивом ZIP или tar.gz
В дальнейшем делать git pull git clone
Установить готовый .deb apt install ./file.deb

То есть команда git clone не является универсальным способом установки программ с GitHub.

Иногда она вообще не нужна.

Осторожнее с командами curl | bash

На GitHub часто встречаются инструкции примерно такого вида:

curl -fsSL URL | bash

или:

wget -qO- URL | bash

Такая команда скачивает скрипт и сразу передаёт его оболочке Bash на выполнение.

Это действительно удобно, но есть очевидный недостаток: код выполняется сразу.

Если источник вызывает хоть какие-то сомнения, безопаснее сначала скачать файл:

curl -fsSL URL -o install.sh

Посмотреть его:

less install.sh

или открыть в редакторе:

nano install.sh

И только после проверки выполнить:

bash install.sh

Если скрипту действительно необходимы права администратора:

sudo bash install.sh

Особенно внимательно стоит относиться к установочным скриптам, которые запускаются от root.

Ошибка git: command not found

Если команда:

git clone ...

возвращает:

git: command not found

устанавливаем Git:

sudo apt update
sudo apt install git

И повторяем команду.

Ошибка wget: command not found

Установка:

sudo apt install wget

Ошибка curl: command not found

Установка:

sudo apt install curl

Ошибка 404 при скачивании Release

Например:

404 Not Found

Чаще всего это означает, что ссылка ведёт на старую версию программы или разработчик переименовал файл.

Адрес Release обычно содержит номер версии, поэтому после выхода обновления ссылка из старой инструкции может перестать подходить.

В таком случае нужно открыть страницу проекта и проверить актуальный Release.

Не стоит механически менять номер версии в URL: название файла или структура Release тоже могли измениться.

curl скачал не то, что нужно

Если вместо программы появился маленький файл с HTML или текстом перенаправления, убедитесь, что используете:

curl -L -O URL

или:

curl -L -o program.tar.gz URL

Параметр -L заставляет curl следовать HTTP-редиректам.

Проверить полученный файл:

file program.tar.gz

Например, для gzip-архива должно быть что-то похожее на:

gzip compressed data

Если вместо этого видим:

HTML document

значит скачалась веб-страница, а не нужный архив.

Permission denied после скачивания программы

Если:

./program

возвращает:

Permission denied

проверяем:

ls -l program

и разрешаем выполнение:

chmod +x program

После этого:

./program

Exec format error

Ошибка:

Exec format error

в первую очередь заставляет проверить архитектуру.

Система:

uname -m

Программа:

file program

Например, бинарник x86-64 не запустится непосредственно на ARM64-системе.

Программа скачалась, но как её устанавливать дальше?

Здесь единой команды уже нет.

GitHub является площадкой для хранения проектов, а не единым пакетным менеджером Linux.

После скачивания в репозитории стоит искать:

README.md
INSTALL
docs/

Посмотреть README прямо из терминала можно так:

less README.md

Иногда установка выглядит как:

sudo install -m 0755 program /usr/local/bin/program

Иногда:

sudo apt install ./program.deb

Иногда проект нужно собирать из исходников.

А некоторые программы вообще запускаются непосредственно из скачанного каталога.

Поэтому перед выполнением случайной команды лучше хотя бы бегло прочитать инструкцию именно этого проекта.

Самый простой алгоритм

Если нужно поставить неизвестную программу с GitHub на Linux, я бы действовал так.

Сначала определяем архитектуру:

uname -m

Затем на странице GitHub смотрим раздел Releases.

Если там есть готовый файл под нашу архитектуру:

linux-amd64
linux-arm64
aarch64
x86_64
.deb
.tar.gz

скачиваем его:

wget URL

или:

curl -L -O URL

Если это архив:

tar -xzf archive.tar.gz

Если бинарник:

chmod +x program
./program

Если всё работает и программу нужно запускать постоянно:

sudo install -m 0755 program /usr/local/bin/program

А git clone используем тогда, когда действительно нужен сам репозиторий, а не просто готовая программа.

Так гораздо проще ориентироваться в GitHub с Linux-сервера и не клонировать несколько сотен мегабайт исходников ради одного исполняемого файла.

Понравилась статья?

Поставьте лайк и сохраните полезный материал в закладки.

Комментарии (0)
Добавить комментарий
Прокомментировать
Кликните на изображение чтобы обновить код, если он неразборчив
Свой сайт на одноплатнике: реально ли это в 2026 году
Linux и серверы
10.09.2026
Свой сайт на одноплатнике: реально ли это в 2026 году
Практическое руководство по запуску собственного сайта на одноплатниках Orange Pi, Raspberry Pi и Rock Pi: выбор ОС, Nginx, PHP-FPM, MariaDB, HTTPS через Certbot и
LattePanda Mu Ultra: x86-модуль с Intel Core Ultra и 115 TOPS размером с банковскую карту
Linux и серверы
10.09.2026
LattePanda Mu Ultra: x86-модуль с Intel Core Ultra и 115 TOPS размером с банковскую карту
LattePanda Mu Ultra — компактный x86-модуль на Intel Core Ultra 200V с графикой Intel Arc, 16 ГБ LPDDR5X и NPU. Разбираемся в характеристиках, Linux, локальном AI,
3x-ui для администратора: защита панели и резервные копии
Linux и серверы
13.09.2026
3x-ui для администратора: защита панели и резервные копии
Архитектура 3x-ui и практическая защита панели: HTTPS, reverse proxy, firewall, обновления, журналы, SQLite и проверенные резервные копии.
Proxmox Backup Server: настройка бэкапа и восстановление VM
Linux и серверы
13.09.2026
Proxmox Backup Server: настройка бэкапа и восстановление VM
Зелёный статус задания ещё не доказывает, что сервер можно восстановить. Настроим PBS и пройдём весь путь до запуска копии VM в изолированной сети.
Remnawave: архитектура панели, ноды и безопасная эксплуатация
Linux и серверы
13.09.2026
Remnawave: архитектура панели, ноды и безопасная эксплуатация
Как устроены Remnawave Panel и Node: Docker Compose, PostgreSQL, reverse proxy, секреты, подключение нод, обновления и восстановление.

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