Как собирать программы из исходников в линукс

1 -й способ -стандартный (подходит для любого дистрибутива Unix). Лучше использовать во FreeBSD при установке из портов.

Создайте свои собственные пакеты DEB и RPM

В Ubuntu это приведет к засорению системы, так как менеджеры пакетов (apt, aptitude и т.д.) не будут видеть установленной программы. Соответственно удалять ее придется вручную.$ make install

2 -й способ — использование утилиты checkinstall# aptitude install checkinstall # man checkinstall NAME checkinstall — Track installation of local software, and produce a binary manageable with your package management software. … Так как сборку пакета производим под Ubuntu -нас интересуют ключи: -D Create a Debian package. Полная последовательность команд: $ cd /home/darkfire/deb/geany/geany-0.17 $ ./configure $ make $ sudo bash # дальнейшие команды должны выполняться от root # checkinstall -D … ********************************************************************** Done. The new package has been installed and saved to /home/darkfire/deb/geany/geany-0.17/geany_0.17-1_i386.deb You can remove it from your system anytime using: dpkg -r geany ********************************************************************** … Пакет geany_0.17-1_i386.deb собран и готов к установке.

Linux: сборка пакетов из исходников

Создание пакета Eric Python IDE

Eric Python IDE

Создаем пакет Eric IDE с поддержкой русского языка. Скачиваем и распаковываем исходники и русификацию. Перед компиляцией установим необходимые для запуска Eric пакеты.

Устанавливаем скомпилированный пакет:

dpkg -i eric4_4.3.5-1_i386.deb

Неудача

при запуске -возникает ошибка

# eric4 Traceback (most recent call last):

File «/usr/lib/python2.6/dist-packages/eric4/eric4.py», line 20, in from PyQt4.QtCore import QTextCodec, SIGNAL, SLOT, qWarning,

ImportError: No module named PyQt4.QtCore

Успешная компиляция на WWW http://shamansir.wordpress.com/2007/07/22/eric-ide-401-at-ubuntu-704/

Ссылки

· Последние изменения: 2017/07/28 07:24 (внешнее изменение)

Некоторое время назад я написал простой php-скрипт gcconline для сжатия javascript-файлов через онлайн-сервис Google Closure Compiler. Его можно скачать из github, однако обновлять таким образом скачанный скрипт на операционных системах Debian/Ubuntu не очень удобно. Учитывая, что теперь у меня есть deb-репозиторий, то самое время создать deb-пакет, который будет содержать скрипт gcconline. Этим мы сейчас и займемся…

Минимальный состав deb-пакета должен содержать сам скрипт или исполняемую программу, а также специальный файл с описанием пакета. Сам deb-пакет мы будем собирать с помощью утилиты dpkg-deb, которая входит в состав пакета dpkg-dev. Поэтому первым делом установим пакет dpkg-dev, если он еще не установлен:

sudoaptitudeinstall dpkg-dev

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

Назовем этот каталог debian и расположим его в домашнем каталоге. Внутри создадим структуру каталогов /usr/bin, а в нее скопируем скрипт gcconline. Именно по пути /usr/bin и будет устанавливаться наш скрипт после установки deb-пакета.

5 причин научиться собирать софт из исходников

sudomkdir-p ~/debian/usr/bin cp/usr/bin/gcconline ~/debian/usr/bin

Затем нужно создать файл control, в котором должно содержаться описание deb-пакета. Сам файл должен лежать в каталоге DEBIAN:

sudomkdir-p ~/debian/DEBIAN sudonano ~/debian/DEBIAN/control

Все почти готово. Остается только собрать пакет и переименовать его согласно названиям других пакетов в Debian/Ubuntu:

sudo dpkg-deb —build ~/debian sudomv ~/debian.deb ~/gcconline_0.1-1_all.deb

Однако если подходить к вопросу сборки deb-пакета более серьезно, то выяснится, что мы забыли включить в состав deb-пакета несколько обязательных составляющих. В обнаружении недостающих компонентов нам поможет утилита lintian. Установим ее и проверим с ее помощью только что собранный deb-пакет:

sudoaptitudeinstall lintian lintian ~/gcconline_0.1-1_all.deb

В ответ получим две ошибки и одно предупреждение:

E: gcconline: no-copyright-file E: gcconline: debian-changelog-file-missing W: gcconline: binary-without-manpage usr/bin/gcconline

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

Читайте также:
Программа модели из бумаги

Итак, во-первых, мы должны поместить в deb-пакет файл ~/debian/usr/share/doc/gcconline/copyright примерно с таким содержимым:

Copyright 2011 Andrey Anosov The home page of gcconline is at: http://anosov.me/services#gcconline The entire code base may be distributed under the terms of the GNU General Public License (GPL), which appears immediately below. Alternatively, all of the source code as any code derived from that code may instead be distributed under the GNU Lesser General Public License (LGPL), at the choice of the distributor. The complete text of the LGPL appears at the bottom of this file. See /usr/share/common-licenses/(GPL|LGPL)

А во вторых, нужно создать файл ~/debian/usr/share/doc/gcconline/changelog.Debian.gz, в котором должна вестись история изменений, происходящих в различных версиях нашего пакета. Содержимое файла changelog.Debian получилось у меня таким:

Андрей Аносов

Не забудьте выполнить gz-сжатие файла changelog.Debian:

sudogzip—best ~/debian/usr/share/doc/gcconline/changelog.Debian

После этого снова собираем deb-пакет и проверяем его утилитой lintian:

sudo dpkg-deb —build ~/debian sudomv ~/debian.deb ~/gcconline_0.1-1_all.deb lintian ~/gcconline_0.1-1_all.deb

Ошибки должны исчезнуть. Предупреждение же binary-without-manpage связано с отсутствием man-страниц для нашей утилиты gcconline. Но вопрос создания man-страниц довольно обширен и заслуживает отдельной статьи. Поэтому пока оставим deb-пакет собранным с этим предупреждением.

Таким образом, наш простой deb-пакет готов. Его можно установить через менеджер пакетов или командой:

sudodpkg-i ~/gcconline_0.1-1_all.deb

Также этот пакет можно разместить в репозитории (что я и сделаю в ближайшее время), что позволит всем легко и свободно устанавливать утилиту gcconline и использовать онлайн-сервис Google Closure Compiler из командной строки linux.

deb-maintainer, deb-package, Debian, dpkg-deb, dpkg-dev, gcconline, Google Closure Compiler, JavaScript, lintian, Ubuntu

Дистрибуция пакетов в Linux

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

Впервые опубликовано 2008-10-11.

1. Подготовка

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

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

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

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

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

tar -xjf linux-*.tar.bz2

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

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

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

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

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

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

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

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

make-kpkg —arch i386 ……

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

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

make clean mrproper make-kpkg clean

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

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

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

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

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

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

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

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

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

Читайте также:
Использование систем cad cam для получения управляющих программ в автоматическом режиме

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

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

dpkg -i ../linux-*.deb

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

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

update-initramfs -c -k

Для решения проблемы “на будущее” – закомментировать вторую из процитированных ниже строк в файле :

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

Ссылки

custom-linux-kernel-in-debian.txt · Last modified: 2008-12-15 19:33 UTC (external edit)

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

О том, как создать, скопировать, переместить или удалить каталоги в Linux, вы узнаете из этого совета.

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

Для того, чтобы создать каталог в Linux, выполните команду: где название_каталога — это тот каталог, который вы хотите создать.

К примеру, создадим каталог mywork:

Копирование каталога

Для того, чтобы скопировать каталог из одного места в другое, выполните команду: где dir1 — источник (каталог, который вы хотите скопировать)
а dir2 — получатель (тот каталог, в который вы хотите скопировать)
ключ -a означает то, что мы выполняем нерекурсивное копирование.

К примеру, скопируем каталог /usr/local/test1 в свой домашний каталог и назовем его test1copy:

Перемещение/Переименование каталога

За перемещение и переименование каталогов, в Linux отвечает команда mv.

перемещение каталога /usr/local/statistics в уже существующий, в домашней папке, каталог test1copy:

переименование каталога /usr/local/statistics в /usr/local/newstatistics:

Удаление каталога

Удаление каталога и его содержимого, можно произвести при помощи команд rmdir или rm:

удаляем каталог /usr/local/test/statistics: или рекурсивно каталог /usr/local/test, со всеми каталогами внутри него:

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

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

Представляем вашему вниманию Видео: Компиляция и установка программ из исходников в Linux. htop, make, configure с канала Linux — это просто. Приятного просмотра!

Музыка Jason Shaw – Clouds

Установим необходимое ПО:
sudo apt-get install build-essential

Скачаем исходники…
wget

Раcпаковываем исходники:
tar zxvf

Перед установкой всегда читаем файлы README и INSTALL. Там всегда написана инструкция по установке, а так же зависимости, которые необходимо удовлетворить. Разные программы ставятся по разному, поэтому читаем всегда!

Теперь приступим к компиляции и установке программы. Перейдем в папку с исходниками:
cd

Сконфигурируем сборку программы:
./configure

У нас ошибка — неудовлетворенная зависимость, отсутствует необходимый пакет. Программа подсказывает нам, что мы может собрать её использовав ключ —disable-unicode
./configure —disable-unicode

В принципе , можно было попытаться удовлетворить зависимость командой:
sudo apt-get build-dep htop
и собрать пакет командой
./configure

Проверяем наличие ошибок. Если таких неимеется, то приступаем к сборке:
make

Так же смотрим наличие ошибок и если таких не имеется, установим командой:
sudo make install

Программа установлена, проверим её работу:
htop

Для удаления программы заходим в папку с исходниками и выполняем команду:
sudo make uninstall

Вас могут заинтересовать другие материалы:

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘actions_post_nav’ not found or invalid function name in /var/www/ch8648adac/www/linuxgid.ru/wp-includes/class-wp-hook.php on line 288

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

Конфигурирование и компиляция ядра Linux

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

Установка утилит

Для настройки и сборки ядра Linux вам потребуется установить несколько пакетов, которые понадобятся для сборки и настройки ядра:  kernel-package , build-essential , libncurses-dev . Сделать это можно командой:

sudo apt-get install build-essential kernel-package libncurses-dev

Скачиваем исходный код ядра

Теперь нужно скачать исходный код ядра. Мы будем скачивать ядро для Ubuntu. Вы можете скачать определенную версию ядра, например, ту, которую вы в данный момент используете или же скачать самую последнюю версию. Для того, чтобы определить версию ядра Linux, которую вы используете, выполните команду uname с параметром -r :

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

uname -r

Вывод команды будет примерно следующим:

$uname -r 2.6.27-11-generic

Имя пакета, содержащего исходные коды ядра обычно имеет следующий вид: linux-source-Версия. Например, для ядра версии 2.6.24: linux-source-2.6.24. Самая последняя версия ядра в репозиториях Ubuntu называется просто linux-source, без указания версии на конце. Для установки исходных кодов последней версии ядра Ubuntu Linux, выполните команду:

sudo apt-get install linux-source

Эта команда скачивает исходники ядра и размещает их в директории /usr/src . На момент написания заметки последняя версия ядра, которая была скачана — 2.6.27, ее мы и будем использовать. Если мы теперь перейдем в директорию /usr/src и выполним команду ls , то увидим, что среди файлов присутствует файл linux-source-2.6.27.tar.bz2. Это и есть исходные коды ядра Linux (ядра Ubuntu).

Распаковываем исходный код ядра

Перейдем в директорию /usr/src и разархивируем ядро. Для этого выполните следующие команды:

cd /usr/src sudo tar xjf linux-source-2.6.27.tar.bz2 sudo ln -s linux-source-2.6.27 linux

Для удобства мы создали символьную ссылку с именем linux , которая указывает на директорию с исходниками.

Конфигурация ядра

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

cd /usr/src/linux sudo make oldconfig

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

Получить справку по всем параметрам make для ядра Linux вы можете, выполнив команду make help .

Для изменения конфигурации ядра мы воспользуемся консольной утилитой menuconfig . Для ее запуска выполните:

sudo make menuconfig

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

Утилита Menuconfig

Для примера я включу опцию «NTFS write support». Для этого, нажимая кнопку Вниз , найдите пункт «File systems» и нажмите Enter .

Настройка ядра Linux - File systems

Вы окажетесь в меню настройки файловых систем. Найдите в этом списке пункт «DOS/FAT/NT Filesystems» и нажмите Enter .

Настройка ядра Linux - DOS/FAT/NT Filesystems

Перейдите к пункту «NTFS write support» и нажмите Пробел , рядом с пунктом появится звездочка, означающая, что данная опция будет включена в ядро.

Настройка ядра Linux - NTFS write support

Теперь выберите «Exit» (нажав кнопку Вправо и затем Enter ) и выйдите из утилиты. Перед выходом из утилиты выскочит сообщение с вопросом — сохранить проделанные изменения, выберите Yes.

Компиляция ядра

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

sudo make-kpkg clean

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

sudo make-kpkg —initrd —append-to-version=-mykernel kernel_image kernel_headers

Ключ -append-to-version используется, чтобы добавить к имени файла образа ядра, который мы получим после компиляции, строку -mykernel , чтобы было проще идентифицировать свое ядро. Вместо -mykernel вы можете использовать любой префикс.

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

Установка (инсталляция) ядра

После компиляции ядра вы получили на выходе два файла: linux-image-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb, linux-headers-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb. Мы воспользуемся командной dpkg -i , которая автоматически установит ядро и пропишет его в ваш загрузчик GRUB (в файл  /boot/grub/menu.lst ). Отмечу, что ядро будет установлено, как ядро по умолчанию, поэтому если оно у вас не загрузится вам нужно будет загрузиться, используя ваше предыдущее ядро (оно должно быть в списке меню GRUB при загрузке компьютера) и вручную изменять файл menu.lst . Итак, для установки ядра выполните команды:

dpkg -i linux-image-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb dpkg -i linux-headers-2.6.27.18-mykernel_2.6.27.18-mykernel-10.00.Custom_i386.deb

Запуск системы с новым ядром

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

Если все пройдет успешно, то система запустится с новым ядром.

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

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