Не для всех программ уже есть готовые пакеты для вашего дистрибутива, также новые версии программ могут распространяться только в форме tar.gz архива или просто исходников.
У многих новых пользователей Ubuntu возникает вопрос, как же устанавливать программы или игры в формате tar.gz. Ведь менеджером пакетов они не открываются, а двойным кликом открывается архив. Дело в том, это на самом деле еще не программа, это действительно архив. Архив исходных кодов программы, и если говорить простыми словами, то это набор текстовых файлов с инструкциями на определенном языке программирования.
Чтобы все это превратилось в готовую к установке и выполнению программу нужно выполнить сборку (компиляцию). Но не бойтесь всех этих новых терминов, на самом деле все намного проще чем кажется, вам не нужно будет ничего ни писать, ни исправлять, достаточно только ввести несколько команд в терминале. В этой инструкции будет рассмотрена установка tar.gz в Ubuntu.
Содержание статьи
Подготовка системы
Готовить почти нечего, компилятор GCC уже предустановлен в системе, и уже можно переходить к сборке. Но мы хотим не просто установить программу, а так чтобы ею потом можно было управлять с помощью пакетного менеджера, например, при удалении полностью стереть все ее файлы, не оставляя мусора в системе. Поэтому придется установить дополнительные утилиты для создания и сборки пакетов Ubuntu.
Наберите следующую команду для установки этих инструментов:
sudo apt install checkinstall build-essential autoconf automake
Установка из tar gz в Ubuntu
Я предполагаю, что архив с исходниками у вас уже есть, теперь можно переходить к сборке программы и установке tar.gz Ubuntu. Неважно в какой папке будет находиться архив, главное, чтобы вы знали где. Первой командой, которую мы выполним будет переход в папку с архивом:
cd ~/путь/к/папке/с/архивом
Дальше извлечем исходники из архива с программой:
tar -xvf имя_архива.tar.gz
И переходим в папку с только что полученными исходными файлами:
cd ./имя_архива
Обычно программы в Linux состоят из большого количества файлов, и при их сборке нужны различные параметры и опции, поэтому вместо того, чтобы запускать компилятор для каждого из файлов вручную, в Linux используется утилита make. Она на основе файла Makefile подбирает правильные команды компиляции для каждого файла и собирает всю программу.
Программы часто используют внешние библиотеки, а в разных дистрибутивах путь к файлам библиотек разный, поэтому перед тем, как запускать make нужно выполнить скрипт configure для проверки зависимостей. Этот скрипт можно создать на основе файла configure.in. Но это необязательно, во многих программах скрипт конфигурации не предусмотрен и программа не требует проверки зависимостей перед сборкой, тогда файла configure.in просто нет в папке с исходниками. Если так, то просто пропустите следующие инструкции и переходите к сборке.
Скрипт configure можно создать несколькими способами, сначала попытаемся выполнить следующие скрипты:
./bootstrap
./autogen.sh
Если же этих скриптов не оказалось в исходниках, просто последовательно выполните следующие команды:
aclocal
autoheader
automake --gnu --add-missing --copy --foreign
autoconf -f -Wall
Если все прошло успешно установка из исходников Ubuntu может быть продолжена. Теперь, наверное, самое сложное, запускаем configure:
./configure
Если скрипт обнаружит что какой-то библиотеки нет (File имя_файла_библиотеки.so not found), скомпилировать пакет не получится, берем название библиотеки и ищем в Google как называется ее пакет в Ubuntu, а затем устанавливаем его через apt-get. Обычно это libимя_библиотеки или libимя_библиотеки-dev.
Например, нам не хватало libfuse.so. С помощью поисковой системы мы узнали, что эта библиотека есть в пакете libfuse. Теперь просто ее установим:
sudo apt install libfuse
Затем опять выполняете configure, чтобы посмотреть нет ли других неразрешенных зависимостей. И повторяете все до тех пор, пока не увидите слово Sucessful или Complete в конце вывода скрипта.
И только теперь установка tar.gz в Ubuntu может быть продолжена и программа собрана. Команда make скомпилирует программу из исходников, а скрипт checkinstall соберет deb пакет:
make
Самое сложное уже позади, на этом этапе ошибки почти никогда не возникают.
checkinstall
И только теперь мы получили программу, которую можно устанавливать с помощью центра приложений или в терминале. Установка с помощью dpkg будет выглядеть вот так:
dpkg -i имя_программы.deb
Точно так же ее можно установить любым доступным способом. Теперь это самый обычный пакет. Вы можете не только установить программу из tar.gz, но и скинуть готовый пакет своим друзьям.
Выводы
Вот и все. Теперь вы знаете как установить программу из tar.gz. Ну или точнее, что tar.gz это только текстовые файлы, и чтобы получить из них программу придется немного потрудиться. Вы можете собирать себе самые новые версии программ, которые хотите или даже выгружать собранные пакеты в интернет. Установка tar.gz Ubuntu, это не так уж сложно, как кажется. Если у вас остались вопросы, спрашивайте в комментариях!
сложнааа. есть ли прога которая все это делает?
Для таких, как Вы существует винда.
а если мне всё это надо что-бы установить винду
А для таких как ты - правила пунктуации.
Да менеджер пакетов synaptic
А ошибки по autoheader не критичны?
(дополнение к статье)
Например, если вы хотите попасть в директорию /Загрузки (она же папка), то необходимо ввести:
$cd /home/user/Загрузки
user - заменить на своё, это имя пользователя в системе (смотри как называется папка в home)
Это больше для любителей мс дос, или коммандной строки
При попытке выполнить команду aclocal пишет:
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
После установки линука введите sudo apt-get update, потом очень много зависимостей можете решить
Почему ни один линуксойд не может объяснять нормально, на человеческом языке? Такое чувство, что объясняют "для своих". Ведь кто впервые сталкивается с линуксом испытывает определенные трудности и подходить к объяснению стоит иначе. Даже делая все тоже самое что написано, надо делать все иначе. Почему тупо пример бы не поставить с финальным результатом? Вот так строчка должна выглядеть, а то у вас только схема которая просто не работает
$ $ sudo apt-get install checkinstall build-essential autoconf automake
$: команда не найдена
Знак $ убери
А можно файлы писать без ./?
Например, не ./configure, а configure
Вот зачем весь этот геморой неужели за это время нельзя написать прогу которая сама начнет устанавливать эти архивы , есть такие вещи которые просто выбешивают, хочется оставатся на линуксе но сделано все чтоб человек вымотал все нервы прежде что то установить и настроить.
Было бы все стандартно, уже давно бы написали.
linux для тех кто хочет создать машину под себя и операционную систему
настроить под свои предпочтения. Это процесс творческий - поэтому надо много думать
и многому учиться. Поэтому самые лучшие представители IT инженеров
- это те кто из Линукса.
Для остальных существует винда от этого чудака на другую букву билла гейтса, где правда тоже не всегда можно обойтись без мозговых усилий.
Поэтому - если уж совсем "чтобы не думать" - то есть как основная серая масса,
возьми андроид и живи как все овцы в стаде и не ищи к себе особого отношения
со стороны программного обеспечения.
Есть просто тормозные учителя остаются в коммандной строке равнозначно если сечас вас будет учить учитель мс дос,
Вообщем сначала введите:
Sudo apt-get update
Это обновит все пакеты
Потом вам нужен менеджер пакетов synaptic это типа плей маркета на андроид его установку ищите сами скорее sudo apt-get install synaptic зависит от самого линукса
aclocal: error: 'configure.ac' is required
для linuxa всё-таки иногда, нужно и голову включать (это полезно, если она есть)
Но тогда Ubuntu никогда не станет "человечной", а для "красноглазых", ну в хорошем смысле, и без зтой статьи все понятно
После извлечения исходников из архива и установки программы эту папку ("имя_архива") можно удалять?
кокда я ввожу make мне потом пишет вот таке:
make: *** Не задані цілі і не знайдений make-файл. Зупинка.
Что делать?
"$ cd ~/путь_к_папке_с_архивом"
Зачем здесь "~"?
С ним не работает. Пока допрёшь до этого...
Путь к домашней папке можно заменить на '~'
пример: cd ~/Загрузки
acaclocal: error: 'configure.ac' is required
помогитее плизз!!!
В архиве, скорее всего, не исходники, а уже скомпилированная программа. Типа portable версия
Здесь очередной сайт бесполезных уроков и советов.Ни одна команда у меня не сработала.То ошибка пакетов,то ошибка команды.
v@debian:~/Загрузки$ cd ./utorrent-server-alpha-v3_3
v@debian:~/Загрузки/utorrent-server-alpha-v3_3$ ./bootstrap bash: ./bootstrap: Нет такого файла или каталога
v@debian:~/Загрузки/utorrent-server-alpha-v3_3$ aclocal aclocal: error: 'configure.ac' is required
А вопрос то простейший:как установить программу из tar.gz Но объяснить никто не может
Ученик, становясь Мастером, убивает Мастера.
Это писец, мало понятная статья! Автору двойка!
Итог: Linux хорош для того, кто увлечен Linux -ом, для человека, которому просто нужен комп с набором рабочего ПО, Linux - это головная боль.
Никак не могу установить эту прогу FileZilla_3.29.0_x86_64-linux-gnu.tar.bz2 взятой из http://filezilla.ru/get.
После распаковки как описано в статье, в папке нет файлов реадми и инсталл и каких либо текстовых намеков как ее установить. Перепробовал все скрипты и команды описанные в статье эффекта ноль. Проблема полюбому в моём незнании, так ЗНАЮЩИЕ люди подскажите как всетаки ее установить. Прога есть в центре приложений и в синаптике, но гораздо древней версии 3.15.
Почитал комментарии. Хочу сказать, в защиту автора. Здесь самое доходчивое разъяснение по установке tar.gz. Не считаю себя экспертом в Linux, раньше для меня установка подобных программ тоже была головной болью. Здесь же все разжевано, дальше -некуда. Спасибо.
Да все вроде понятно, если убрать очевидные ошибки из команд, однако толку от этой инструкции для человека, который всю свою жизнь не посвящает изучению Линукса, никакого.
Распаковал я архив, стал проверять наличие нужных файлов и библиотек для обновления простой программки (хотел NetworkManager обновить до последней версии), и понеслась....не хватает пактов, не хватает файлов. Это мне нужно ходить по сети и искать каждый файлик для установки на Минт?
И так я буду для каждой нужной мне программы по полдня тра..аться? У меня какбэ жизнь короткая, чтобы по каждой такой ерунде с компом на часы зависать. Дичь какая-то. Везде втирают, что Линукс стал таким же дружелюбным, как Винда, а по факту, гемор тот еще.
На форумах Линксоидов вообще люди странные в массе своей, вместо ответа на вопрос шлют читать маны, или открыто оскорбляют и глумятся. Мне заняться больше нечем? Ходить читать мануалы для переключения нужной мне опции?
Короче, Линукс - это продукт для людей, которым просто некуда девать свое время. Которым нравится не использовать программы по назначению, а кайфовать от знания всех разнообразных команд через терминал по каждому приложению. Зачем? Зачем этим забивать голову? Может лучше еще один иностранный язык выучить? Не?
Валерий, полностью согласен с Вами, что "толку от этой инструкции для человека, который всю свою жизнь не посвящает изучению Линукса, никакого". Но это не вина автора. Автор разъяснил намного лучше, чем я находил в других местах. И ему за это СПАСИБО!
Просто я лично бы рекомендовал всем новичкам в Линуксе ВООБЩЕ НЕ ЛЕЗТЬ к установке программ из архивов (исходников). Ищите .deb пакеты с установкой двойным нажатием мышки и Линукс станет для Вас дружелюбным. Установка программ из исходников - это тот уровень, который доступен только продвинутым пользователям. Это также, как виндовсовские сисадмины лазят в тех местах, о которых многие виндовсюзеры даже не знают. Но Вы же не обвиняете из-за этого Windows, что он не дружелюбный.
Самуил, а если нет .deb пакетов, а только архивы? Когда начинаешь компилировать, то зачастую происходят ситуации, когда не хватает пакетов, файлов. Не спорю - Линукс система интересная, но она должна быть дружелюбной для пользователей. И это уже вопрос к разработчикам. Но как показывает практика, разработчики остаются глухими и немыми к пожеланиям рядовых пользователей. Что мешает разработчикам выкладывать рядом с исходниками и .deb пакеты?
Почему бесплатная софтина что-то тебе должна, она не для тебя написана, зачем ты полез в нее даже не потрудившись узнать, почему работает это так, как работает. Это проблемы ленивых нубов, что в их головах нет инфы и они не хотят заполнить пустоты.
Почему бесплатная софтина тебе должна
‐----------
Потому, что она написана под бесплатной лицензией. Или вы считаете, что бесплатное должно работать абы как?
Каждому свое. Хотите бесплатно. получите Линукс. Но придется попотеть. Не хотите потеть, получите Windows но платно. Можно Windows бесплатно, но тогда пират. Как все в этом мире. Я помню себя, когда учился работать в Windows. Одна из проблем - это неправильное самообучение и обучение. И в Линуксе конечно проблема с русскими мануалами. Это факт. Но Линукс это интересно и как евроремонт в квартире своими руками. )))
Мне это видео помогло - https://youtu.be/pt44bAP2rMg
А тут какая-то ошибка вылезала.
Для сборки программ в GNU/Linux используется (в основном) программа make, которая запускает инструкции из Makefile, но поскольку дистрибутивов GNU/Linux много, и они все разные, то для того чтобы собрать программу, нужно для каждого дистрибутива отдельно прописывать пути,где какие лежат библиотеки и заголовочные файлы. Программисты не могут изучать каждый дистрибутив и для каждого отдельно создавать Makefile. Поэтому придумали конфигураторы, которые «изучают» систему, и в соответствии с полученными знаниями создают Makefile. Но на конфигураторе они не остановились и придумали конфигураторы конфигураторов =)…на этом они остановились 🙂
Одни танцы с бубнами... Объяснил... А где искать этот архив? (cd ~/путь_к_папке_с_архивом) Как его вписывать правильно? В Виндовс запустил файл загрузки и не парься, а тут... Перебрал несколько десятков Линуксов, одно г-но везде, не понять сути и логики этих линуксов.
У вас не хватает базовых знаний о древовидной структуре данных на диске
поэтому у вас ситуация заблудившегося в лесу. Почитайте об этом -и сразу поймете
многое и также ответ на ваш вопрос вам самому станет простым и понятным
как ваша любимая вилка на кухне.
После первого запуска надо ее каждый раз так запускать или другой способ есть запуска, после первого запуска?
Загони в переводчик файл Readme.txt
Там всё написано что нужно делать
make[1]: вход в каталог «/home/dell/Загрузки/gparted-1.0.0/help»
Makefile:503: *** пропущен разделитель. Останов.
make[1]: выход из каталога «/home/dell/Загрузки/gparted-1.0.0/help»
Makefile:623: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
После команды make
Вылезла ошибка.
Автор не издевайся над бедными линуксойдами)))
Там надо sudo checkinstall
Спасибо добрый человек!
После команды make произошла ошибка
А что делать, если MAKE в исходниках отсутствует? Как тогда производить компиляцию? Спасибо.
Linux это экспериментальная, до конца не отлаженная система. То что здесь предлагают сравнимо с тем, как если бы я купил телевизор и для настройки каналов мне необходимо было подробно знать как работают все его узлы на уровне принципиальной схемы. Но большинству людей это не надо, им просто надо смотреть передачи, выбирая нужную и подстраивая под себя простыми манипуляциями на пульте.
Судя по изменениям от версии к версии Linux не приближается к пользователю, а наоборот удаляется, оставаясь уделом профессионалов и любителей изучения системы.
Замечательный ресурс! Много полезной информации здесь нашёл. Но в поддержку начинающих скажу так: есть авторы по чьим мануалам сделаешь один раз и поймешь, что да как работает! Но попадаются мануалы, не совсем понятно, для какой категории пользователей написанные! Для опытных пользователей, элементарная и давно освоенная информация, а для начинающего сложная для понимания и усвоения, даже в случе положительного результата! И как результат срач в комментах и взаимные оскорбления! Ну и совет новичкам, ищете в разных источниках, пробуйте и анализируйте!
"...просите, и дано будет вам; ищите, и найдете; стучите, и отворят вам, ибо всякий просящий получает, и ищущий находит, и стучащему отворят."
А как обновить прогр. установл. из исходников (ну вышла новая версия опять же в исходниках) ? Не через же удаление старой версии или старую версию надо удалить?
Хорошая статья, а комменты к ней вообще шикарные 🙂
Будучи новичком в мире линукса, естественно, компилировать исходники программных продуктов это явно не решение моей задачи. Если вы всё же решили погрузится в этот процесс, то будьте готовы решать возникающие на пути проблемы.
А лично я, наткнувшись на проблему с .tar архивом, погуглил ещё немного и узнал, что в Linux мире есть множество "само-распаковывающихся" или "само-устанавливающихся" пакетов и сайтов где их можно искать. Такие пакеты устанавливаются или двумя кликами мышки, либо одной-двумя командами в терминале.
Принцип схожий с .apk файлами для android смартфонов, с помощью которых можно установить любую программу/игру в смартфон.
Если это то, что вы ищите, то попробуйте погуглить такие понятие как:
1) пакеты с расширением ".deb" ( losst.pro/ustanovka-paketov-ubuntu )
2) flatpack ( losst.pro/kak-ustanovit-flatpak )
3) AppImage ( losst.pro/portativnye-programmy-v-linux )
4) snap ( losst.pro/ustanovka-snap-paketov-ubuntu )
Отличная статья! Делал всё по шагам, и всё получилось! Впервые за лет 8 пользования Xubunt'ой!..
До этого я шарахался tar.gz, как от чумы, всегда искал готовые DEB. Теперь же мне море по колено...
Конечно, время отъедает, но в поисках готового DEB можно потратить не меньше времени. А тут - сиди, смотри как строчки бегут, и покуривай в сторонке 🙂
5+!
Статья хорошая, но вначале пропущена одна очень важная фраза:
Если программа собрана в виде исполняемого файла, то в папке будет находиться файл, с расширением .sh, обычно он так и называется install.sh. Его достаточно просто запустить на исполнение:
В моём случае файл был не install, а с названием программs.sh, но откуда новичку знать что .sh - это исполняемый файл скрипта? И никакого configure нафиг не надо.
Всё пошло не так: скриптов ./bootstrap и ./autogen.sh не оказалось. По этой инструкции, ввёл
aclocal
Вывод:
aclocal: error: 'configure.ac' is required
Автор, Вы пишете: "Если все прошло успешно..." А если нет? Требуется файл, которого нет в исходнике - что делать?
Пытаюсь установить драйвер для вай-фай адаптера Рилтек в Кубунту 20.04, уже что только не пробовал - постоянно чего-нибудь не хватает и всё заканчивается той или иной ошибкой.
А знаете, попробуйте ввести команду:
sudo sh (типа "/home/user/директория/название файла .sh")
Все команды только с полными названиями!
Что Вам выдаст Терминал?
Если, конечно, у Вас файл .sh присутствует....
©Iwanoffъъ
Или
su
sudo sh (команда)
(это зависит от версии Вашей системы, они немного отличаются)
Если что-то не понятно, попросите Admin'a, чтоб была возможность написать сообщение на почту...
Кто-то может объяснить, почему Linux так активно продвигает "домашние" сборки типа Ubuntu? Все говорят, что они доступны для неопытных пользователей и т.д. Но при этом возникает куча проблем даже в элементарных задачах. При установке из оф. репозитория проблемы с установкой 50/50, установка софта, то происходит без проблем, то после нажатия кнопки "применить" вообще ничего не происходит, даже ошибок нет. Подобные ситуации везде, сложностей не вызывает разве что сёрфинг в интернете и копирование файлов. Говорит об установке софта стороннего происхождения даже не приходится, талмуты информации, которые я зачем-то должен знать! Разработчики Linux в большинстве своём очень далеки от домашних задач рядовых пользователей. Есть стандарты, которые задал windows и mac для домашних ПК, было бы не плохо их придерживаться. Но в ответ на вышеизложенное, ярые пользователи Linux советуют включать голову! Ну так если нужно включать голову, так может не надо вводить пользователей в заблуждение? Или если уж говорят что linux всем подходит, так пусть уточняют, кто эти все?
Здравствуйте. Я вообщето впоисковике писал tar.bz2 . Ну да ладно. Обновил пакеты sudo apt install checkinstall build-essential autoconf automake.
И вот что вышло по следующему действию как в описании.
cd~/home/xxx/Загрузки/firefox-99.0.1.tar.bz2
bash: cd~/home/xxx/Загрузки/firefox-99.0.1.tar.bz2: Нет такого файла или каталога
Подскажите пожалуйста как правильно.
Dmitri, здравствуйте. Я смоделировал вашу ситуацию. Вам надо набрать команду cd ~/home/xxx/Загрузки/ и там будет лежать файл firefox-99.0.1.tar.bz2
А как, к примеру вот это с гитхаба установить (Трукрипт)?
При упаковке 1 файл -скрипт
https://github.com/AuditProject/truecrypt-verified-mirror/blob/abb6d7d953c9b792d85fa812d41893d1acfd197c/Linux/truecrypt-7.1a-linux-x86.tar.gz
А Вы там на гите пумпочку сначала нажмите, "Go to file" называется:).
Здравствуйте. На работе абсолютно отсутствует интернет. Как можно все это проделать автономно? Правильно ли я понимаю, что здесь (checkinstall build-essential autoconf automake) четыре разные утилиты? autoconf automake есть в архивах, но при их установке по отдельности через архивы возникают ровно такие же проблемы, как при установке основного архива? Получается, что утопающий должен спасти сам себя.
Может у кого-то была подобная проблема? Буду благодарен ответам.
Отличная статья. Понятно, без лишней воды. То что нужно, в трудную минуту.
Добрый день, пытаюсь установить putty-0.76.tar.gz (https://www.chiark.greenend.org.uk/~sgtatham/putty/releases/0.76.html).
Файлов ./bootstrap и ./autogen.shв директории не оказалось, пропустил эти пункты как сказано в инстукции.
При вводе команды $ autoheader
Терминал выдает:
configure.ac:103: warning: generating configure script without GTK 3 autodetection
configure.ac:110: warning: generating configure script without GTK 2 autodetection
Подскажите на что обратить внимание?
Operating System: Ubuntu 20.04.6 LTS
надо поменять
sudo apt install libfuse
на
sudo apt install libfuse2
У меня файл configure не нашёл.