3.13: Управление установочными пакетами исходного кода
1. Базовый обзор пакетов с исходным кодом
Пакеты с исходным кодом чаще всего устанавливаются в среде Linux. На ранних этапах работы по управлению эксплуатацией и обслуживанием большая часть программного обеспечения была установлена с использованием исходного кода. Затем для установки пакета с исходным кодом требуется, чтобы мы скомпилировали исходный код в двоичный исполняемый файл.
Компилятор системы linux используется для компиляции пакета исходного кода. Обычно пакет исходного кода разрабатывается на языке C. Это также связано с тем, что язык C является наиболее стандартным языком программирования для Linux. Компилятор языка C в Linux называется gcc, который может превратить язык C в исполняемый двоичный файл. Поэтому, если на вашем компьютере не установлен gcc, нет возможности скомпилировать исходный код. Вы можете использовать yum -y install gcc для завершения установки.
2. Преимущества пакетов с исходным кодом
- Пользовательское изменение исходного кода
- Соответствующие функции, необходимые для настройки
- Сначала обновите исходный код для новой версии программного обеспечения
3. Получение пакета исходного кода
Официальный сайт, вы можете получить последнюю версию программного обеспечения
Linux — Компиляция программ из исходников в Ubuntu
Официальный сайт Apache
Официальный сайт Nginx
Официальный сайт mysql
4. Классификация пакетов исходного кода
- Исходный формат (необходимо скомпилировать и установить)
- Двоичный формат (можно использовать сразу после декомпрессии)
5. Установка пакета исходного кода.
Для компиляции требуется среда компиляции, среда разработки, библиотека разработки и инструменты разработки.
Существует 5 часто используемых сред компиляции: c, c ++, perl, java, python.
Компилятор для среды c: gcc (GNU C Complier)
Компилятор для среды c ++: g ++
make: унифицированный инструмент управления проектами для c и c ++. Во время компиляции можно вызывать gcc или g ++. Используйте makefile, чтобы определить порядок, в котором make компилирует исходную программу в файл исходной программы.
Трилогия установки исходников (обычная):
Шаг 1: ./configure (настраиваемые компоненты)
1. Укажите путь установки, например —prefix = / opt / nginx-1.12
2. Включение или отключение функции, например —enable-ssl
3. Свяжите с другим программным обеспечением, например –with-pcre
4. Проверьте среду установки, например, существует ли компилятор gcc и соответствует ли он требованиям зависимости программного обеспечения.
5. После прохождения теста создается Makefile.
Шаг 2: сделайте
1. Выполните команду make для компиляции, вы можете использовать -j, чтобы указать количество ядер ЦП для компиляции.
2. Нажмите Makefile, чтобы скомпилировать и скомпилировать в исполняемый двоичный файл.
3. Создавайте различные модули и основные программы.
Ubuntu 22.04 — Установка программ из исходных кодов
Шаг 3: выполните установку
1. Скопируйте в каталог установки по пути, указанному Makefile.
Трилогию исходного кода, описанную выше, нельзя использовать на 100% для всех пакетов исходного кода, что означает, что нет стандартных шагов установки для установки пакета исходного кода, но большинство установок исходного кода являются аналогичными шагами.
Предлагать :
После получения пакета исходного кода и его распаковки перейдите в каталог, чтобы найти соответствующие справочные документы, обычно с INSTALL или README в качестве имени файла.
5.1 Функции скрипта настройки
- Разрешить пользователям выбирать функции компиляции
- Проверить, соответствует ли среда компиляции базовым потребностям компиляции программы
5.2 Примечания по компиляции и установке
- Если путь по умолчанию не используется во время установки, необходимо изменить переменную среды PATH, чтобы иметь возможность идентифицировать путь к двоичному файлу этой программы;
- Измените файл / etc / profile или создайте файл с суффиксом .sh в каталоге /etc/profile.d/ и определите в нем экспорт
PATH=$PATH:/path/to/somewhere
- Добавить дополнительный метод пути поиска файла библиотеки:
- Создайте файл с суффиксом .conf в /etc/ld.so.conf.d/, а затем запишите путь, который будет добавлен непосредственно в этот файл. В настоящее время путь поиска, добавленный файлом библиотеки, действителен после перезапуска. Если вы хотите использовать добавленный путь для немедленного вступления в силу, используйте команду ldconfig
/etc/ld.so.conf и /etc/ls.so.conf.d/*.conf // Файл конфигурации /etc/ld.so.cache // Кеш-файл -v // Показать процесс повторного поиска библиотеки -p // Распечатать доступные имена файлов библиотеки и сопоставления путей к файлам, которые автоматически загружаются и кэшируются в памяти при запуске системы
- Заголовочный файл: вывод в систему
- По умолчанию: система ищет файлы заголовков в / usr / include, если вы хотите добавить путь поиска для файлов заголовков, используйте ссылку
- По умолчанию: система находит файл man в / usr / share / man. В настоящее время, поскольку он не устанавливается в путь по умолчанию при компиляции и установке, если вы хотите найти файл man, вы можете использовать следующие два метода:
- man -M /path/to/man_dir command
- Добавьте MANPATH в файл /etc/man.config
5.3 Пример компиляции пакета исходного кода
Затем скомпилируйте и установите nginx, чтобы глубже понять установку пакета с исходным кодом.
// 1. Подготовка базовой среды [[email protected] ~]# yum -y install gcc gcc-c++ make wget // 2. Загрузите пакет с исходным кодом (пакет с исходным кодом необходимо скачать с официального сайта, другие сайты небезопасны) [[email protected] ~]# cd /usr/src [[email protected] src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz // 3. Разархивируйте исходный пакет и войдите в соответствующий каталог [[email protected] src]# tar xf nginx-1.12.2.tar.gz [[email protected] src]# cd nginx-1.12.2 // 4. Настроить связанные параметры и создать Makefile [[email protected] nginx-1.12.2]# ./configure —help|head —help print this message —prefix=PATH set installation prefix —sbin-path=PATH set nginx binary pathname —modules-path=PATH set modules path —conf-path=PATH set nginx.conf pathname —error-log-path=PATH set error log pathname —pid-path=PATH set nginx.pid pathname —lock-path=PATH set nginx.lock pathname // Следующее содержимое опущено, используйте команду ./configure —help для просмотра доступных параметров // Обычно используется —prefix = PREFIX Этот параметр означает определение места установки пакета // Рекомендуется устанавливать пакеты с исходным кодом в каталог / opt / // 5. Укажите параметры компиляции [[email protected] nginx-1.12.2]# ./configure —prefix=/opt/nginx-1.12.2 // 6. Убедитесь, что этот шаг команды выполнен успешно, ненулевое значение не считается успешным [[email protected] nginx-1.12.2]# echo $? 0 // 7. Скомпилировать и установить [[email protected] nginx-1.12.2]# make [[email protected] nginx-1.12.2]# make install [[email protected] nginx-1.12.2]# echo $? // 8. Установить мягкую ссылку [r[email protected] nginx-1.12.2]# ln -s /opt/nginx-1.12.2 /opt/nginx
Обработка сообщения об ошибке компиляции исходного кода
[[email protected] nginx-1.14.2]# ./configure checking for OS + Linux 3.10.0-957.el7.x86_64 x86_64 checking for C compiler . not found ./configure: error: C compiler cc is not found //решение [[email protected] nginx-1.14.2]# yum -y install gcc gcc-c++ make ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using —without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using —with-pcre= option. //решение [[email protected] nginx-1.14.2]# yum install -y pcre-devel ./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using —without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using —with-zlib= option. //решение: [[email protected] nginx-1.14.2]# yum -y install zlib-devel ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using —with-openssl= option. //решение [[email protected] ~]# yum -y install openssl-devel
операция
1. Установите nginx из исходников
[[email protected] ]#wget http://nginx.org/download/nginx-1.14.2.tar.gz [[email protected] ]#tar xf nginx-1.14.2.tar.gz [[email protected] ]#cd nginx-1.14.2 [[email protected] nginx-1.14.2]#./configure —prefix=/usr/local/nginx —with-pcre Я обнаружил, что указанные выше три ошибки были зарегистрированы, чтобы статья не была слишком длинной, поэтому я не буду писать ее здесь. Кроме того, при компиляции в первый раз, без указания —with-pcre, сообщать make: нет правила для создания целевой `build ‘, необходимого для` default’.
Stop. Error, но make был установлен, поэтому я почти удаляю его Скомпилируйте, добавьте —with-pcre, один раз успешно [[email protected] nginx-1.14.2]#make make install [[email protected] nginx-1.14.2]#/usr/local/nginx/sbin/nginx [[email protected] nginx-1.14.2]#ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:80 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 . 22 . * LISTEN 0 100 ::1:25 . * [[email protected] nginx-1.14.2]#curl http://103.4.11.215 Welcome to nginx! body
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.
Thank you for using nginx.
2. Установите apache из исходников
Чтобы избежать занятия порта, ответ на этот вопрос повлияет на результат: сначала выключите nginx. [[email protected] ~]# /usr/local/nginx/sbin/nginx -s stop [[email protected] ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 . 22 . * LISTEN 0 100 ::1:25 . * [[email protected] ~]#
3. Установите PHP из исходников.
[[email protected] ~]# wget http://jp2.php.net/distributions/php-7.3.3.tar.bz2 —2019-03-14 01:43:38— http://jp2.php.net/distributions/php-7.3.3.tar.bz2 Resolving jp2.php.net (jp2.php.net). 49.212.134.217 Connecting to jp2.php.net (jp2.php.net)|49.212.134.217|:80. connected. HTTP request sent, awaiting response. 200 OK Length: 14813435 (14M) [application/octet-stream] Saving to: ‘php-7.3.3.tar.bz2’ 100%[=============================================>] 14,813,435 20.0MB/s in 0.7s 2019-03-14 01:43:39 (20.0 MB/s) — ‘php-7.3.3.tar.bz2’ saved [14813435/14813435] [[email protected] ~]# ll total 541696 -rw——-. 1 root root 7329 Oct 17 12:27 anaconda-ks.cfg drwxr-xr-x.
28 1001 1001 4096 Mar 13 10:35 apr-1.6.5 -rw-r—r—. 1 root root 1073556 Sep 14 04:07 apr-1.6.5.tar.gz drwxr-xr-x. 21 1001 1001 4096 Mar 13 11:09 apr-util-1.6.1 -rw-r—r—. 1 root root 554301 Oct 22 2017 apr-util-1.6.1.tar.gz drwxr-sr-x. 12 root 40 4096 Mar 13 11:11 httpd-2.4.38 -rw-r—r—.
1 root root 9187294 Jan 21 15:03 httpd-2.4.38.tar.gz -rw-r—r—. 1 root root 528015360 Dec 24 05:44 mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar drwxr-xr-x. 9 1001 1001 186 Mar 13 10:05 nginx-1.14.2 -rw-r—r—. 1 root root 1015384 Dec 4 14:58 nginx-1.14.2.tar.gz -rw——-. 1 root root 6664 Oct 17 12:27 original-ks.cfg -rw-r—r—.
1 root root 14813435 Mar 5 14:30 php-7.3.3.tar.bz2 [[email protected] ~]# tar xf php-7.3.3.tar.bz2 tar (child): lbzip2: Cannot exec: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now [[email protected] ~]# yum -y install bzip2 [[email protected] ~]# tar xf php-7.3.3.tar.bz2 [[email protected] ~]# cd php-7.3.3/ [[email protected] php-7.3.3]# ./configure —prefix=/usr/local/php —with-apxs2=/usr/local/apache/bin/apxs —with-libxml2=/usr/include/libxml2 configure: WARNING: unrecognized options: —with-libxml2 checking for grep that handles long lines and -e. /usr/bin/grep . config.status: creating main/php_config.h config.status: executing default commands configure: WARNING: unrecognized options: —with-libxml2 [[email protected] php-7.3.3]# echo $? 0 [[email protected] php-7.3.3]# make . make: *** [ext / fileinfo / libmagic / apprentice.lo] Ошибка 1 # Это вызвано недостаточным объемом памяти системы в 1 ГБ, и затем необходимо добавить —disable-fileinfo, а затем перекомпилировать; [[email protected] php-7.3.3]# ./configure —prefix=/usr/local/php —with-apxs2=/usr/local/apache/bin/apxs —with-libxml2=/usr/include/libxml2 —disable-fileinfo [[email protected] php-7.3.3]# make . Don’t forget to run ‘make test’. [[email protected] php-7.3.3]# echo $? 0 [[email protected] php-7.3.3]# make install . Wrote PEAR system config file at: /usr/local/php/etc/pear.conf You may want to add: /usr/local/php/lib/php to your php.ini include_path /root/php-7.3.3/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin ln -s -f phar.phar /usr/local/php/bin/phar Installing PDO headers: /usr/local/php/include/php/ext/pdo/ [[email protected] php-7.3.3]# echo $? 0 Установка здесь завершена
Расширяйте, объединяйте PHP и Apache
4. Установите MySQL из исходного кода.
Справочный сценарий
Подготовка к установке Проверьте, предустановлен ли mysql: rpm -q mysql Если да, удалите его: rpm -e —nodeps mysql Программное обеспечение, необходимое для установки: yum -y install libevent* libtool* autoconf* libstd* ncurse* bison* openssl* gcc gcc-c++ bzip2* yum -y groupinstall «Development Tools» wget https://github.com/Kitware/CMake/archive/v3.14.0-rc4.tar.gz tar xf v3.14.0-rc4.tar.gz cd CMake-3.14.0-rc4/ ./configure make make install cd wget http://downloads.mysql.com/archives/get/file/mysql-5.6.20.tar.gz tar zxvf mysql-5.6.20.tar.gz cd mysql-5.6.20 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci make make install groupadd mysql useradd -M -g mysql mysql chown -R mysql:mysql /usr/local/mysql . Продолжение следует, программное обеспечение скомпилировано и установлено, но пароль и конфигурация еще не настроены.
Источник: russianblogs.com
Как установить программное обеспечение Linux из исходного кода
В Linux операционная система предлагает непревзойденную гибкость. Одна из областей, которая подчеркивает это, это установка программного обеспечения. На рабочем столе Linux или на сервере существует несколько способов установки приложений. Для большинства пользователей самый простой путь — через магазин приложений распространения (например, Ubuntu Software и KDE Discover).
Другой простой способ — менеджер пакетов командной строки. Следование этому методу является менее чем дружественным методом, установка из источника.
Зачем устанавливать из источника
Есть несколько причин для установки из источника:
- Установка приложения недоступна в диспетчере пакетов распространения.
- Вы хотите установить приложение с определенными функциями или модулями, которые не встроены в пакеты, найденные в менеджере пакетов распространения.
- Существует более новая версия приложения (доступная как источник), не найденная в менеджере пакетов распространения
- Вы хотите перейти к компиляции ядра Linux .
- Вы можете оказаться в ловушке кошмара зависимости.
- Когда программное обеспечение установлено из исходного кода, менеджер пакета распространения может не знать об этом (что означает, что если другое приложение зависит от программного обеспечения, установленного из исходного кода, оно не будет знать, что оно там).
- Нет простого пути обновления программного обеспечения (без переустановки).
Есть две основные причины, по которым установка из исходного кода может усложниться:
- Зависимости.
- Язык программирования .
Каждое приложение имеет зависимости, необходимые для установки. Если эти зависимости не соблюдены, приложение не будет установлено. Эти зависимости могут быть проблемой для установки. Это самая большая проблема для большинства новых пользователей Linux. В связи с этим рекомендуется сначала найти приложение в магазине распространения приложения.
Вторая причина — язык, на котором написано приложение, определяет способ его установки. Некоторые языки (например, Go) устанавливаются с использованием метода, отличного от традиционных языков (таких как C и C ++). Для некоторых приложений с исходным кодом для установки требуется стороннее приложение.
Как установить из исходного кода
Вот как установить приложение, написанное на традиционном языке. Приложение является музыкальный плеер QMMP (возврат к Winamp). Хотя можно установить QMMP из диспетчера пакетов распространения (с помощью стороннего репозитория), его также можно установить из исходного кода.
QMMP можно установить на Ubuntu Desktop 18.04 с минимальным разрешением зависимостей. Другие дистрибутивы требуют от вас установки большего количества программного обеспечения для успешной установки приложения из исходного кода.
Установите инструмент Subversion. Для этого откройте терминал, а затем введите команду:
sudo apt установить subversion -y
QMMP использует Subversion, но другие приложения используют программное обеспечение контроля версий Git. У нас есть отдельное руководство по Git, посвященное работе с ним.
После установки Subversion извлеките (загрузите) исходный код с сайта QMMP. Это делается с помощью команды:
svn checkout http://svn.code.sf.net/p/qmmp-dev/code/branches/qmmp-1.3
Перейдите в новый каталог с помощью команды:
cd qmmp- *
Этот каталог содержит файл README, в котором описывается процесс установки приложения. В файле README перечислены требования, которые необходимо установить перед установкой QMMP. В зависимости от дистрибутива некоторые инструменты могут быть установлены по умолчанию. Например, в Ubuntu Desktop 18.04 единственными неустановленными зависимостями являются Qt и Qt Dev Tools. Вы можете установить эти пакеты вручную, используя менеджер пакетов распространения.
С каждым приложением, установленным через источник, зависимости, которые будут установлены, различаются в зависимости от распределения. Следуя приведенным ниже инструкциям, если вы обнаружите, что первая команда сообщает об отсутствующих зависимостях, их необходимо установить вручную. Вот почему так важно прочитать файл README перед началом установки исходного кода.
Используйте команду configure, чтобы создать файл, который инструктирует инструменты сборки о среде и других особенностях. В случае QMMP, команда настройки — это cmake. Для этого выполните команду:
cmake ./
Когда это завершится, вы готовы построить приложение. Чтобы построить приложение, введите команду:
делать
Некоторые приложения позволяют встроить определенные модули и функции на этапе настройки. Если есть определенные модули или функции, которые могут быть добавлены на этапе настройки, они описаны в файле README.
Это должно завершиться без каких-либо ошибок и создать двоичные исполняемые файлы, которые затем могут быть установлены в соответствующем каталоге.
Чтобы установить приложение (которое на данный момент копирует необходимые файлы в соответствующие каталоги), введите команду:
sudo make install
После выполнения этой команды запустите музыкальный проигрыватель QMMP из меню рабочего стола.
Каждая исходная установка отличается в зависимости от того, как разработчик приложения создал программное обеспечение. Например, некоторые программы содержат скрипт конфигурации, который запускается с помощью команды ./configure (вместо команды cmake ./ ).
Always read the included README file before attempting to install the application from source.
Источник: gadgetshelp.com
Как установить программу из исходного кода в Linux?
Для установки программы из исходного кода в Linux, следуйте этим шагам:
1. Сначала необходимо загрузить исходный код программы с официального сайта разработчика.
2. После загрузки исходного кода, откройте терминал и перейдите в каталог, куда был загружен исходный код программы.
3. Распакуйте архив с помощью команды:
tar -zxvf название_файла.tar.gz
4. Перейдите в каталог с распакованным кодом с помощью команды:
5. Теперь необходимо сконфигурировать код, чтобы подготовить его к установке. Для этого введите команду:
6. Если в процессе конфигурации будут найдены какие-либо ошибки, они будут выведены на экран. Вам нужно будет устранить все ошибки, используя дополнительные пакеты или устанавливая недостающие библиотеки.
7. После того, как процесс конфигурации завершен успешно, введите команду:
8. Компиляция и сборка программы начнутся, что может занять некоторое время, в зависимости от размера проекта и мощности вашего компьютера.
9. После успешной компиляции и сборки программы, вы можете установить ее, выполнив команду:
sudo make install
10. Программа будет установлена в системную директорию, и вы можете запустить ее из терминала или из меню приложений вашей операционной системы.
Важно понимать, что установка программ из исходного кода требует определенных знаний в области программирования и Linux. Обычно это не рекомендуется для новичков в Linux, которые должны использовать менеджеры пакетов и официальные репозитории, чтобы установить необходимые программы.
Похожие записи:
- Как установить программу из исходного кода в Bash?
- Как скомпилировать программу из исходного кода в Debian?
- Как скомпилировать программу из исходного кода?
- Как работает objdump для анализа исходного кода в Linux?
- Как работают инструменты автоматической сборки и как они используются для компиляции исходного кода?
Источник: qaa-engineer.ru