Установка программ из архива linux

Операционных систем семейства Linux (называемых обычно дистрибутивами Linux) очень много. Способы установки ПО на них тоже много. Разные дистрибутивы поддерживают разные способы установки, и разные форматы установочных файлов.

Большинство дистрибутивов Linux поддерживают установку из исходных кодов, распространяемых в виде архивов, обычно с расширением tar.gz. При установке программы из такого архива программа сначала компилируется из исходных кодов. После этого запускается командный файл, который копирует нужные файлы в установленные места. Такой способ установки имеет кучу недостатков.

Прежде всего — совершенно ненужный для конечного пользователя процесс компилирования программы. Этот процесс занимает время, для больших программ — долгое. После остаются файлы с исходным кодом, которые также не нужны для её использования.

Для разрешения проблем с установкой программ из исходных кодов были созданы так называемые пакетные менеджеры — программы для работы с установочными файлами (пакетами). Пакетные менеджеры используют файлы в определённом формате. Использование пакетного менеджера даёт много преимуществ.

Linux — Компиляция программ из исходников в Ubuntu

Пропадает необходимость компиляции программ из исходных кодов — и, соответсвенно, сам исходный код становится необязательным для использования программы. Пакетные менеджеры умеют устанавливать программы из репозиториев — хранилищ пакетов (в том числе и через Интернет).

Пакетные менеджеры отслеживают зависимости программ друг от друга — поэтому, если при установке программы чего-то не хватает, пакетный менеджер сообщит об этом, а если установка производится из Интернет-репозитория — ещё и предложит автоматически установить недостающее. Также пакетные менеджеры отслеживают конфликты пакетов — ситуации, когда одна программа мешает другой.

При установке программ из исходных кодов зависимости не остлеживаются, и конфликты тоже. Если чего-то не хватает в момент сборки программы — сборка завершится с ошибкой (возможно, после того, как большая часть сборки уже будет выполнена). Если чего-то не хватает для работы программы — программа скомпилируется, но работать не будет (или будет, но неправильно). То же самое будет, если есть конфликты.

Один из самых распространённых форматов установочных пакетов — deb-файлы. «deb» — это сокращение от Debian, названия одного из самых популярных дистрибутивов Linux, в рамках которого был разработан этот формат пакетов и пакетный менеджер для него. Также этот пакет используется во многих дистрибутивах, производных от Debian — например, Ubuntu и Linux Mint. Программа GUI-deb создана в первую очередь для автоматизации создания deb-файлов, что и отражено в её названии.

Другой наиболее распространённый формат установочных пакетов — rpm-файлы. Этот формат был разработан компанией Red Hat и используется в дистрибутиве Red Hat Enterprize Linux, а также производных от него и связанных с ним дистрибутивах — Fedora, Cent OS, Mandriva, Alt Linux и многих других. Создание rpm-файлов программой GUI-deb не поддерживается. Пакет в формате rpm может быть получен из пакета в формате deb с помощью программы alien. Программа GUI-deb может автоматически запускать alien после сборки deb-файла для получения из него пакета в формате rpm.

133 Суть установки программ в Linux.

Источник: life-warrior.org

Руководство по установке программ в Linux

Звезда активнаЗвезда активнаЗвезда активнаЗвезда не активнаЗвезда не активна

Обычно представлен следующий список:
• /bin – исполняемые файлы;
• /boot – файлы необходимые для загрузчика;
• /dev — файлы устройств (для Linux любое устройство представляется как файл);
• /etc — файлы настроек;
• /home — домашние каталоги пользователей;
• /initrd – директория для RAM-диска;
• /lib — библиотеки;
• /lost+found – восстанавливаемые после случайного удаления файлы;
• /media и /mnt – содержат точки монтирования, т.е. через эти директории осуществляется доступ к CD/DVD, флеш-картам, винчестерам и иным локальным и сетевым накопителям;
• /opt – в эту директорию устанавливаются определенные программы;
• /proc – виртуальная файловая система;
• /root – домашняя директория Администратора компьютера;
• /sbin — системные исполняемые файлы;
• /srv — данные системных служб, например FTP-сервера;
• /tmp — временные файлы;
• /usr – вторичная файловая система;
• /var — изменяемые данные, например логи.

О Зависимостях

Q: Что такое Зависимости (Dependency – англ., «Депенденсы» — слэнг) и зачем они нужны? A: Практически каждой программе для корректной работы требуются библиотеки и ресурсы внешних приложений. Эти требования и называются Зависимостями. В Windows существует единая архитектура и единый стандартный набор библиотек, присутствующий в каждой системе.

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

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

Читайте также:
Программа которая делает выкройки

Например, программа может представлять собой графический интерфейс для консольного архиватора. И вся ее задача — это перевести действия пользователя, например мышью, на язык этого самого консольного архиватора. Простой пример: пользователь кликнул в окошке программы по значку «Распаковать», а программа передает соответствующую команду архиватору.

Когда архиватор заканчивает работу, программа перехватывает данные об операции и сообщает пользователю результат. В итоге для создания и распаковки архивов больше не требуется изучать устройство архиватора и использовать командную строку. Однако если не установить сам консольный архиватор, программа работать не сможет. Таким образом, он представляет собой ее Зависимость.

Главный недостаток Зависимостей заключается в том, что они часто вызывают конфликты. Представьте что одной программе для работы требуется библиотека /lib/chip.lib версии 1.26, а другой — более ранняя версия 0.93. В итоге просто так эти две программы не установишь, ведь две разные версии одной и той же библиотеки могут оказаться фактически несовместимыми между собой.

Остается либо устанавливать более старые версии программ, либо ждать, пока обе программы научатся работать с единой библиотекой. Третий вариант — самостоятельно разрешать конфликт. В самом простом случае может помочь создание жесткой ссылки на библиотеку командой вида.
sudo ln /lib/chip-0.97.lib /lib/chip-1.26.lib
А в более сложном — потребуется править исходный код приложений, что уже требует глубокого знания Linux и ее командной строки, а также определенных навыков программирования.
Второй ключевой недостаток Зависимостей – сам факт того, что дополнительные компоненты нужно отдельно загружать и устанавливать. Ладно, если зависимость одна, но их может быть сколько угодно – и десять, и пятьдесят, и сто.
По выше названным причинам на ранних этапах развития Linux Зависимости были настоящей бедой и вызывали священный ужас у непосвященных. Благо, в современных дистрибутивах проблема, за редким исключением, полностью решена. При установке новых программ такие менеджеры пакетов, как rpm (Fedora, Mandriva и.т.д.) и apt (Debian, Ubuntu и.т.д) и др., сами анализируют, какие пакеты необходимо загрузить и установить. А от пользователя требуется только кликнуть мышью в удобной графической оболочке и согласиться с установкой дополнительного ПО. Все необходимое будет загружено и установлено автоматически.

О правах администратора

Четыре способа установки ПО в Linux

Q: Что такое Tarball («Тарболлы») и бинарные пакеты? A: Tarball – это обычный архив формата TAR, TGZ, TBZ или TAZ. Внутри него может быть все что угодно. Однако если вы загрузили дистрибутив программы из Интернета или взяли с CHIP DVD, а сам файл имеет подобное расширение, то внутри, скорее всего, исходный код приложения. Однако это может быть и бинарный файл.

В таком случае внутри архива вы найдете исполняемый файл с разрешением RUN, BIN, IN или подобным. Разархивируйте тарболл в свободную директорию и запустите мышью исполняемый файл. Все, приложение установлено.
Если что-то пойдет не так, попробуйте проверить права на исполняемый файл. Запустите командную строку и введите:
sudo chmod 777 /home/USER/FILE/file.run
Таким образом, файл станет доступным для запуска всем пользователям.
Во-вторых, полезным бывает обратиться к прилагаемому файлу помощи, например help.txt или readme.txt. Если вы захотите запустить приложение из консоли, воспользуйтесь командой вида:
./*.run Для файлов с разрешением RUN
sh *.bin или sh *.sh
Для файлов с разрешением BIN и SH
java -jar *.jar
Для Java-архивов

Звездочкой «*» с произвольным разрешением обозначается исполняемый файл приложения. Он может представлять собой как готовое к работе приложение, так и установочный пакет. Возможно, потребуется запустить эти команды от имени администратора.

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

Недостатки: установка и использование в обход менеджера пакетов системы, возможные сложности с удалением программы, необходимость создавать ассоциации файлов и ярлыки вручную

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

Q: Как собирать пакеты из исходного кода? A: Если вы загрузили Tarball, распаковали его и получили директорию со множеством файлов, среди которых есть файлы с именами readme и install, то, скорее всего, это исходные коды программы. Часто архив с исходными кодами имеет имя вида abc-0.8.7.tar.gz, где abc – имя программы, а 0.8.7 – ее версия. В самом банальном случае для установки программы требуется несколько простых шагов.
1. Создаем директорию для исходных кодов программы, помещаем туда архив и распаковываем его командой:
tar xfzv abc-0.8.7.tar.gz
2. Конфигурируем приложением командой
./configure
В ряде случаев скрипта конфигурации configure нет, и шаг можно пропустить.
3. Дождавшись, пока конфигурирование закончится, можно запускать устанавливать приложение командой:
make sudo make install
4. Для удаления приложения следует воспользоваться командой:
sudo make uninstall

Для выполнения названных операций в системе должен быть установлен компилятор (обычно gcc), а также все необходимые библиотеки. Иногда во время установки возникают ошибки, и наилучшим способом их разрешения является поиск информации о них в Интернете.

Читайте также:
Как сделать план эвакуации программа

Преимущества: предельная гибкость при конфигурировании приложения, возможность редактирования исходников программы перед установкой, возможность компиляции максимально производительно приложения.

Недостатки: возможны проблемы с Зависимостями, cпособ требует уверенного знания системы, медленный и трудоемкий способ установки программ, возможные сложности с удалением программы (необходимо хранить директорию с исходниками), необходимость создавать ассоциации файлов и ярлыки вручную

Вывод: мы настоятельно НЕ РЕКОМЕНДУЕМ собирать приложения из исходных кодов, если их дистрибутивы есть в репозитории вашей системы. Это позволит сэкономить время и обеспечить лучший контроль над системой в целом. Однако если вы хотите получить максимально производительный пакет или просто нет других вариантов, то этот способ для вас.

Q: Как устанавливать специфические пакеты дистрибутива (например, DEB, RPM)?A: В большинстве дистрибутивов достаточно пару раз кликнуть по пакету, ввести пароль администратора и дождаться конца установки. Однако в системе должны быть установлены все Зависимости требуемого приложения.

В дополнение ко всему не каждый DEB-пакет подойдет к любому дистрибутива семейства Debian (Ubuntu), и не каждый RPM-пакет — к любому дистрибутиву семейства RedHat (Fedora). Желательно устанавливать только те пакеты, которые были специально скомпилированы для вашей системы. Часто о назначении пакета можно судить по его названию. Например, пакет abc-0.9.7-ubuntu.deb, скорее всего, был скомпилирован для Ubuntu, а bcd-1.0.3-opensuse.rpm — для OpenSUSE.

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

Недостатки: возможны проблемы с Зависимостями

Q: Что такое репозитории, и как следует устанавливать программы из помощи менеджера пакетов? A: В контекте Linux Репозитории, или Репозитарии (англ. «Repository» — хранилище) – это некоторое хранилище установочных пакетов для вашей системы. Например, репозиторий pacman обеспечивает пользователей OpenSUSE возможностью загрузки и установки самых актуальных приложений для их дистрибутива.
К системе можно подключить и несколько репозиториев. Например, установочный DVD, локальное зеркало вашего провайдера и официальные удаленные серверы. Чем больше репозиториев вы подключите, тем шире выбор программ для установки. Однако между некоторыми репозиториями возникают конфликты, и следует выбрать из конфликтующих репозиториев только один. Более подробную информацию о репозиториях вы сможете прочесть на сайте вашего дистрибутива.
Внимание, для различных версий одного и того же дистрибутива могут требоваться разные репозитории!
Для запуска менеджера пакетов обычно следует выбрать пункт меню с названием наподобие «Установка и удаление программ» или «Менеджер пакетов». Далее потребуется ввести пароль администратора, и можно осуществлять поиск требуемого приложения по содержимому репозиториев.
После того как нужное приложение будет найдено, нужно кликнуть по кнопке «Установить» — и менеджер пакетов сам установит все необходимые компоненты, включая зависимости.

Преимущества: высокая скорость установки, простота установки, предельная актуальность и совместимость между собой пакетов

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

Вывод: оптимальный способ установки программ в Linux — просто, быстро и надежно.

Источник: imsprice.ru

Сборка и установка программ Go

Сборка и установка программ Go

До настоящего момента в нашей серии статей о программировании на языке Go вы использовали команду go run для автоматической компиляции исходного кода и запуска получаемого исполняемого файла. Хотя эта команда полезна при тестировании кода в командной строке, распределении или развертывании, ваше приложение требует, чтобы вы выполняли сборку кода в распределяемый бинарный исполняемый файл или отдельный файл, содержащий машинный байт-код, который может запускать ваше приложение. Для этого вы можете использовать цепь инструментов Go для сборки и установки вашей программы.

В Go процесс перевода исходного кода в бинарный исполняемый файл называется сборкой. После получения исполняемого файла он будет содержать не только ваше приложение, но и вспомогательный код, необходимый для выполнения бинарного файла в целевой платформе. Это означает, что бинарному файлу Go не требуются зависимости, например инструменты Go, для запуска в новой системе, в отличие от других языков, таких как Ruby, Python или Node.js. Размещение этих исполняемых файлов в путь исполняемого файла в вашей системе позволит запускать программу из любого места в вашей системе. Этот процесс называется установкой программы в вашей системе.

В этом обучающем руководстве вы будете использовать цепь инструментов Go для запуска, сборки и установки примера программы Hello, World! , позволяющей использовать, распространять и эффективно развертывать будущие приложения.

Предварительные требования

Для выполнения примера из этой статьи вам потребуется следующее:

  • Рабочее пространство Go, настроенное согласно руководству по установке Go и настройке локальной среды для разработки.

Настройка и запуск бинарного файла Go

Сначала создайте приложение для использования в качестве примера для демонстрации цепи инструментов Go. Для этого вы будете использовать классический пример программы “Hello, World!” из руководства Как написать свою первую программу на Go.

Создайте директорию greeter в директории src :

Теперь перейдите в новую директорию и создайте файл main.go в текстовом редакторе на ваш выбор:

После открытия файла добавьте следующий код:

src/greeter/main.go

package main import «fmt» func main() fmt.Println(«Hello, World!») >

При запуске эта программа будет выводить фразу Hello, World! в консоль, а затем успешно завершать работу.

Читайте также:
Какие программы востребованные профессии

Сохраните и закройте файл.

Чтобы протестировать программу, воспользуйтесь командой go run , как вы уже делали в предыдущих руководствах:

Вывод должен выглядеть следующим образом:

OutputHello, World!

Как было упомянуто выше, команда go run выполняет сборку вашего исходного файла в исполняемый бинарный файл, а затем запускает скомпилированную программу. Однако в этом руководстве мы выполним сборку таким образом, чтобы вы смогли предоставить общий доступ к вашему файлу и распространять его при желании. Чтобы сделать это, мы будем использовать команду go build в следующем шаге.

Сборка бинарных файлов Go с помощью команды go build

Используя go build , вы можете сгенерировать исполняемый бинарный файл для нашего примера приложения Go, позволяющего распределять и развертывать программу, где захотите.

Попробуйте сделать это с main.go . В директории greeter запустите следующую команду:

Если вы не предоставите аргумент этой команде, go build будет автоматически компилировать программу main.go в текущем каталоге. Команда будет использовать все файлы *.go в директории. Также она выполнит сборку всего вспомогательного кода, необходимого для исполнения бинарного файла на любом компьютере с той же системной архитектурой, независимо от того, есть ли в системе исходные файлы .go или даже установка Go.

В данном случае вы создали приложение greeter в исполняемом файле, добавленном в текущую директорию. Проверьте это, запустив команду ls :

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

Outputgreeter main.go

Примечание. В Windows ваш исполняемый файл будет называться greeter.exe .

По умолчанию go build будет генерировать исполняемый файл для текущей платформы и архитектуры. Например, при сборке в системе linux/386 исполняемый файл будет совместимым с любой другой системой linux/386 , даже если там не установлен Go. Go поддерживает сборку для других платформ и архитектур, о чем вы можете узнать подробнее из нашей статьи Сборка приложений Go для разных операционных систем и архитектур.

Теперь, когда вы создали исполняемый файл, запустите его, чтобы убедиться, что бинарный файл сформирован корректно. В macOS или Linux запустите следующую команду:

В Windows запустите следующую команду:

Вывод бинарного файла будет соответствовать выводу, когда вы запустили программу с командой go run :

OutputHello, World!

Теперь вы создали один исполняемый бинарный файл, который содержит не только вашу программу, но и весь системный код, необходимый для запуска этого бинарного файла. Теперь вы можете распространить данную программу на новые системы или развернуть ее на сервере, зная, что файл всегда будет запускать ту же программу.

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

Изменение имени бинарного файла

Теперь, когда вы знаете, как сгенерировать исполняемый файл, следующим шагом будет определение того, как Go выбирает имя бинарного файла и как можно задать собственное имя для вашего проекта.

При запуске go build по умолчанию Go будет выполнять автоматический выбор имени сгенерированного исполняемого файла. Go делает это двумя способами: если вы используете модули Go, то Go будет использовать последнюю часть имени модуля, в противном случае Go использует имя текущей директории. Этот метод использовался в последнем разделе, когда вы создали директорию greeter , перешли в нее и запустили команду go build .

Давайте более внимательно изучим метод с использованием модуля. Если у вас есть файл go.mod в проекте с объявлением module​​ , например, как показано здесь:

module github.com/sammy/shark

Тогда имя сгенерированного исполняемого файла по умолчанию будет shark > .

В более сложных программах, требующих конкретных конвенций по наименованию, эти значения по умолчанию не всегда будут лучшим вариантом для названия вашего бинарного файла. В этих случаях лучше всего будет настроить вывод с помощью флага -o .

Чтобы протестировать это, измените имя исполняемого файла, полученного в последнем разделе, на hello и разместите его в подпапке bin . Вам не нужно создавать эту папку, Go сделает это самостоятельно при сборке.

Запустите следующую команду go build с флагом -o :

Флаг -o заставляет Go сопоставлять вывод команды с предпочитаемым вами аргументом. В данном случае результатом является новый исполняемый файл с именем hello в подпапке с именем bin .

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

Результат будет выглядеть следующим образом:

OutputHello, World!

Теперь вы можете настроить имя исполняемого файла согласно требованиям вашего проекта, завершив изучение сборки бинарных файлов в Go. Но при использовании команды go build вы все равно ограничены требованием запуска вашего бинарного файла из текущей директории. Чтобы использовать вновь собранные исполняемые файлы из любого места в системе, вы можете установить их с помощью команды go install .

Установка программ Go с помощью go install

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru