Установка программ из исходников линукс

В этой статье я покажу как собрать PostgreSQL 13 версии из исходников, инициализировать кластер и запустить его на сервере Debian 10. А также установим из исходников одно из расширений PostgreSQL.

Источником для этой статьи служит данное видео.

Установка PostgreSQL из исходников

Работаем из под пользователя root, поэтому будьте осторожны!

Прежде всего скачаем и распакуем архив:

# mkdir pg # cd pg/ # wget https://ftp.postgresql.org/pub/source/v13.3/postgresql-13.3.tar.gz # tar xf postgresql-13.3.tar.gz # cd postgresql-13.3/

Далее, установим необходимые пакеты, соберем из исходников postgresql и установим его:

# apt install gcc make # apt install libreadline-dev # apt install zlibc zlib1g-dev # ./configure # make # make install

В результате, PostgreSQL у нас установится в каталог /usr/local/pgsql/, здесь лежат сами бинарники.

Теперь нам нужно создать каталог для хранения данных. В PostgreSQL он называется PGDATA по имени переменной $PGDATA в которой содержится путь к каталогу кластера PostgreSQL. Создадим такой каталог а также пользователя «postgres«. Дополнительно сделаем этого пользователя владельцем этого каталога и установим права (750):

Компиляция и установка программ из исходников в Linux. htop, make, configure


# mkdir /usr/local/pgsql/data # adduser postgres # chown postgres /usr/local/pgsql/data/ # chmod 750 /usr/local/pgsql/data/

Создание переменных окружения

Для удобства работы с сервером нужно создать две переменные:

  • PGDATA — путь к каталогу кластера (/usr/local/pgsql/data/);
  • PATH — нужно добавить к существующей переменной путь /usr/local/pgsql/bin/, чтобы облегчить работу с утилитами postges.

Чтобы эти переменные появились у всех пользователей отредактируем /etc/profile, добавив строки в конец файла:

# nano /etc/profile PATH=/usr/local/pgsql/bin:$PATH export PGDATA=/usr/local/pgsql/data

Далее применим изменения:

# . /etc/profile

Создание кластера БД

Дальнейшие действия нужно проделывать под пользователем postgres

# su — postgres

Инициализируем кластер баз данных:

Опцию -k мы использовали, чтобы включить подсчет контрольной суммы страниц, что позволяет своевременно обнаружить повреждение данных. Остальные опции можете посмотреть тут!

Читайте также:
Лучшие программы для отслеживания Айфона

После инициализации кластера у нас заполнился каталог PGDATA:

В этом каталоге лежат конфигурационные файлы кластера, и в подкаталоге base лежат базы данных. Но о содержимом этого каталога мы поговорим позже.

Запуск и останов сервера

Запустим сервер баз данных указав файл логов:

Здесь мы использовали две опции:

  • -w заставляет сервер запуститься полностью и только потом отдать управление, то-есть не будет происходить продолжение старта в фоне;
  • -l — указывает путь к логам.

Подробнее о работе pg_ctl можете почитать тут.

Теперь проверим что PostgreSQL запустился и работает. Для этого выполним запрос select now() к СУБД:

В примере выше, функция now() показывает текущее время.

Компиляция и установка программ из исходников

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

$ pg_ctl stop $ pg_ctl -w -l /home/postgres/logfile start

Установка расширений из исходников

Расширение — это специальная программа, расширяющая функциональность сервера баз данных. Например модуль pgcrypto добавляет криптографические функции.

Следующим шагом научимся устанавливать расширения. Для этого перейдем в каталог с исходниками и найдём подкаталог contrib. В каталоге contrib лежат исходники расширений. Найдем каталог pgcrypto, перейдём в него и скомпилируем расширение:

Проверим что расширение установилось. Все установленные расширения можем посмотреть в представлении «pg_available_extensions«:

В листинге выше с помощью утилиты psql мы подключаемся к СУБД, а с помощью команды q отключаемся от него.

Создание второго кластера

На одном сервере может работать два кластера, для этого создаём каталог для второго кластера. И инициализируем его:

При инициализация кластера, если путь к каталогу PGDATA отличается от переменной $PGDATA или если такая переменная не задана. То нужно с помощью ключа -D указать путь к этому каталогу.

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

Теперь можем запустить второй кластер:

Посмотрим на процессы:

Первый кластер запущен без ключа -D и используется переменная PGDATA, а во втором кластере путь к PGDATA прописан в строке запуска.

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

Компиляция и установка программ из исходников в Linux. htop, make, configure

Музыка Jason Shaw – Clouds Установим необходимое ПО: sudo apt-get install build-essential Скачаем исходники. wget hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz Раcпаковываем исходники: tar zxvf htop-1.0.3.tar.gz Перед установкой всегда читаем файлы README и INSTALL. Там всегда написана инструкция по установке, а так же зависимости, которые необходимо удовлетворить. Разные программы ставятся по разному, поэтому читаем всегда!

Читайте также:
Программа для определения номера машины на Андроид

Теперь приступим к компиляции и установке программы. Перейдем в папку с исходниками: cd htop-1.0.3/ Сконфигурируем сборку программы: ./configure У нас ошибка — неудовлетворенная зависимость, отсутствует необходимый пакет. Программа подсказывает нам, что мы может собрать её использовав ключ disable-unicode ./configure disable-unicode В принципе , можно было попытаться удовлетворить зависимость командой: sudo apt-get build-dep htop и собрать пакет командой ./configure Проверяем наличие ошибок. Если таких неимеется, то приступаем к сборке: make Так же смотрим наличие ошибок и если таких не имеется, установим командой: sudo make install Программа установлена, проверим её работу: htop Для удаления программы заходим в папку с исходниками и выполняем команду: sudo make uninstall

Источник: www.euglobe.ru

Компиляция и установка Linux из исходников в Debian

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

apt-get install fakeroot kernel-package build-essential zlib1g-dev

Если вам потребуется перенастроить ядро средствами menuconfig, нужно будет также установить пакет libncurses5-dev .

2. Получение и распаковка исходников Linux

Исходники текущей версии ядра можно скачать с www.kernel.org, они выложены там под названием linux-.tar.bz2 (к примеру, linux-2.6.31.tar.bz2 ). Распаковать их:

tar -xjf linux-*.tar.bz2

После чего перейти в созданный при распаковке каталог.

3. Настройка компилятора

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

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

export CONCURRENCY_LEVEL=`grep -m1 cpu cores /proc/cpuinfo | cut -d : -f 2`

При желании использовать для сборки ядра версию gcc , отличающуюся от установленной в системе по умолчанию (например — новее, чтобы получить преимущества от добавленных в ней возможностей, либо старее, чтобы избежать проблем с совместимостью), перед вызовом make-kpkg следует также выполнить (к примеру, для версии gcc 4.4):

Читайте также:
Программа фитпро как настроить часы

export MAKEFLAGS=»CC=gcc-4.4″

Если же собираем ядро для архитектуры, отличающейся от текущей (к примеру, для 32-битных x86-машин, находясь в системе amd64), следует указать желаемую архитектуру в переменной окружения ARCH:

export ARCH=i386

…и непосредственно при запуске make-kpkg , добавить соответствующий ключ:

make-kpkg —arch i386 .

4. Настройка будущего ядра

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

make clean mrproper make-kpkg clean

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

cp /boot/config-`uname -r` .config

Либо скачать настроечные файлы официальных ядер Debian вот отсюда.

Запускаем утилиту настройки:

make oldconfig

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

5. Компиляция ядра и создание deb-пакетов

Для создания пакетов c ядром и заголовочными файлами, нужно выполнить следующее:

fakeroot make-kpkg —initrd —append-to-version=-custom kernel_image kernel_headers

Вместо -custom , в качестве обозначения вашего ядра можно указать что угодно, от вашего имени или псевдонима (чтобы не забыть, что это ядро собиралось именно вами), до сугубо технически-полезной информации (что-нибудь в духе -foobarfs-patch8-debug1 ).

6. Установка deb-пакетов

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

dpkg -i ../linux-*.deb

7. Решение проблемы с созданием initrd.img

С недавнего времени в Debian появился баг, заключающийся в том, что после установки пакетов с собранными описанным здесь способом ядрами, не создаётся соответствующий им файл /boot/initrd.img . Для исправления применительно к уже установленному ядру, придётся создать initrd.img вручную:

update-initramfs -c -k

Для решения проблемы “на будущее” – закомментировать вторую из процитированных ниже строк в файле /etc/kernel/postinst.d/initramfs-tools :

# kernel-package passes an extra arg; hack to not run under kernel-package [ -z «$2» ] || exit 0

Источник: romanrm.net

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