Чарующая магия configure, make и make install. Установка программ в Linux (.tar,.gz,.bz, RPM и DEB) Установка make debian

  • 25.01.2022

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

Распаковка

Программы обычно распространяются в упакованных архивах, это файлы с расширениями

.tar.gz (иногда.tgz) .tar.bz2

Нужно понимать отличие между архиватором и упаковщиком.

Для архивации директорий и файлов используется программа tar ; результатом её работы является файл с расширением .tar . Грубо говоря, это копия файловой системы - директорий и файлов с их атрибутами и правами доступа, помещённая в один файл.

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

Программа tar умеет распаковывать, поэтому не нужно вызывать gunzip , а можно просто указать программе tar , что файл нужно cначала распаковать. Например, команда

tar -xvf < some_app_name> .tar.gz

сразу распакует и разархивирует. Отличие файлов с расширениями

.tar.gz

.tar.bz2

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

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

cd < имя_пакета>*

Сборка пакета

Для сборки программ в GNU/Linux используется (в основном) программа make , которая запускает инструкции из Makefile , но поскольку дистрибутивов GNU/Linux много, и они все разные, то для того чтобы собрать программу, нужно для каждого дистрибутива отдельно прописывать пути,где какие лежат библиотеки и заголовочные файлы. Программисты не могут изучать каждый дистрибутив и для каждого отдельно создавать Makefile . Поэтому придумали конфигураторы, которые «изучают» систему, и в соответствии с полученными знаниями создают Makefile . Но на конфигураторе они не остановились и придумали конфигураторы конфигураторов …на этом они остановились

Для сборки нам нужны компиляторы: они прописаны в зависимостях пакета build-essential , так что достаточно установить его со всеми зависимостями. Ещё нужны autoconf и automake .

Итак, чтобы собрать что-то из исходников, нужно сначала собрать конфигуратор; как собрать конфигуратор, описано в файле configure.in. Для сборки конфигуратора необходимо выполнить

./ bootstrap ./ autogen.sh

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

aclocal autoheader automake --gnu --add-missing --copy --foreign autoconf -f -Wall

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

./ configure

Конфигуратор построит Makefile основываясь на полученных знаниях и файле makefile.am . Можно передать конфигуратору опции, предусмотренные в исходниках программы, которые позволяют включать/отключать те или иные возможности программы, обычно узнать о них можно командой

./ configure --help

Также есть набор стандартных опций, вроде

Prefix=

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

--prefix =/ usr --prefix =/ usr/ local

БЕЗ слеша в конце! Теперь можно запустить процесс сборки самой программы командой

make

Для сборки достаточно привелегий обычного пользователя. Окончанием сборки можно считать момент, когда команды в консоли перестанут «беспорядочно» выполняться и не будет слова error . Теперь всё скомпилировано и готово для установки.

Установка

Усилия потраченные на Правильную установку в последствии с лихвой окупятся в случае удаления или обновления устанавливаемого программного обеспечения.

Правильная установка(Вариант №1)

Установка при помощи утилиты checkinstall . Для установки выполните

sudo apt-get install checkinstall

Минус данного способа: checkinstall понимает не все исходники, поскольку автор программы может написать особые скрипты по установке и checkinstall их не поймёт.

Для создания и установки deb-пакета необходимо выполнить

sudo checkinstall

Правильная установка(Вариант №2)

Быстрое создание deb-пакета «вручную».

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

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

fakeroot make install DESTDIR =` pwd `/ tempinstall

    Создадим в «корне пакета» директорию DEBIAN и сложим в DEBIAN/conffiles список всех файлов, которые должны попасть в /etc:

сd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/ conffiles

    После чего создаём файл DEBIAN/control следующего содержания:

Package: имя_пакета Version: 1.2.3 Architecture: amd64/i386/armel/all Maintainer: Можете вписать своё имя, можете дребедень, но если оставить пустым, то dpkg будет ругаться Depends: Тут можно вписать список пакетов через запятую. Priority: optional Description: Тоже надо что-нибудь вписать, чтобы не кидало предупреждения

    При необходимости там же можно создать скрипты preinst, postinst, prerm и postrm.

    Создаем deb-пакет, для чего выполняем:

dpkg -b tempinstall

    Получаем на выходе tempinstall.deb, который и устанавливаем

sudo dpkg -i tempinstall.deb

Установка (вариант №3)

Неправильная установка

Минус данного способа заключается в том, что если вы устанавливаете напрямую через make install, то нормально удалить или обновить пакет вы, скорее всего, не сможете. Более того, установка новой версии поверх старой, скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано - производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось, получить в удобоваримом виде невозможно. Иногда, конечно, Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Кроме того, вам будет необходимо хранить для деинсталяции распакованное дерево исходников и правил сборки.

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

sudo make install

Для удаления пакета, установленного данным способом необходимо выполнить в корневой директории исходников программы (там где вы запускали make install).

sudo make uninstall

Ошибки

Часто на этапе конфигурации конфигуратор сообщает, что нехватает той или иной библиотеки. Название библиотеки, которое он сообщает, не всегда соответствует названию пакета в Ubuntu. Из собственного опыта могу посоветовать поискать в Синаптике нужный пакет, исключив префикс lib, если нашлось несколько пакетов различающихся приставкой -dev в названии, то вам нужно установить именно -dev пакет (обычно он тянет за собой и не -dev пакет). Можно ещё поискать с помощью http://packages.ubuntu.com/ , введя имя библиотеки в поиск по содержимому пакетов, аналогично, если найдётся dev и не dev, нужны оба . Ну или просто поискать в Google .

Необходимое программное обеспечение

Пакеты с буквами mm в конце описания - это пакеты для C++ программ. Список для bmpx, но подойдёт почти для любой GTK2/Gnome программы. Так что если не получается собрать, то посмотрите на этот список и сверьте с тем что у вас установлено.

Compile: Runtime:
X libx11-dev libx11-6
GlibMM libglibmm-2.4-dev libglibmm-2.4-1c2a
GTK+ libgtk2.0-dev,gtk-doc-tools libgtk2.0-0
GTKMM libgtkmm-2.4-dev libgtkmm-2.4-1c2a
Glade libglade2-dev libglade2-0
GladeMM libglademm-2.4-dev libglademm-2.4-1c2a
XML libxml2-dev libxml2
XML ++ libxml++2.6-dev libxml++2.6c2a
DBus libdbus-1-dev,libdbus-glib-1-dev libdbus-1-2,libdbus-glib-1-2
Alsa libasound2-dev libasound2
HAL libhal-dev,libhal-storage-dev libhal1,libhal-storage1
Gamin libgamin-dev libgamin0
Neon libneon25-dev libneon25
TagLib libtagc0-dev libtagc0
Startup-Notify libstartup-notification0-dev libstartup-notification0
Boost libboost-dev,libboost-filesystem-dev libboost-filesystem1.33.1
MusicBrainz libmusicbrainz4-dev libmusicbrainz4c2a
GStreamer libgstreamer0.10-dev,libgstreamer-plugins-base0.10-dev libgstreamer0.10-0,libgstreamer-plugins-base0.10-0

А также других систем приходится устанавливать дополнительные программы. В операционных системах Windows все очень просто, как правило есть установщик setup.exe, который помогает установить софт. А вот в линуксе дела обстоят несколько иначе. Как устанавливать программы в Linux? Сейчас рассмотрим этот вопрос.

В линуксе есть несколько типов установочных пакетов и каждый дистрибутив имеет свой формат пакетов. В дистрибутивах Fedora, Mandriva, Red Hat и Suse используется стандартная установка для линукс RPM, разработанная компанией Red Hat. Файл пакета RPM как правило имеет название имя_программы-версия.rpm.

Еще один из очень популярных форматов это DEB. Используется в Debian, Ubuntu, Knoppix и Mepis. Имеет название имя_программы-версия.deb.

И подошли мы к архивам. Обычно это .tar , .tar.gz , .tgz расширения. Их следует распаковать, а потом уже устанавливать/компилировать.

Выполнять процедуру установки программ нужно от имени суперпользователя.

Быстрая навигация

Установка программ на Debian, Ubuntu

Для работы с пакетами формата DEB есть множество инструментов, но чаще всего используют apt-get , он входит в стандартный набор инструментов. Для установки приложения вводим команду:

apt-get install имя_пакета

Для удаления:

apt-get remove имя_пакета

APT хранит локальную базу данных всех доступных для установки пакетов и ссылок где их брать. Эту базу нужно обновлять время от времени, командой:

apt-get update

Для обновления устаревших пакетов (программ) на компьютере набираем следующие команды:

apt-get update ; apt-get upgrade

Установка программ на Fedora, Red Hat

Утилита, аналогичная APT — yum. Загрузить и установить пакет из настроенного хранилища пишем команду:

yum install имя_пакета

yum remove имя_пакета

Локальная база yum не сохраняется, поэтому нет необходимости обновлять. Для установки обновлений воспользуемся командой:

yum update

Выбрать что-то определенное для обновления:

yum update имя_пакета

Установка программ в Mandriva

В Mandriva есть свой набор инструментов для работы с пакетами, называется urpmi. Для установки:

urpmi имя_пакета

Чтобы удалить:

urpme имя_пакета

Обновить локальную базу со списком пакетов:

urpmi.update -a

Чтобы установить обновления:

urpmi --auto- select

Установка программ из архивов (тарболов)

Для архивов сжатых с помощью GZIP (gz, gz2 и т.д.) делаем так:

tar -xvz f имя_файла

Для архивов сжатых с помощью BZIP (bz, bz2 и т.д.) несколько по другому:

tar -xvjf имя_файла

Команды Tar:

  • x – извлекаем файлы из архива;
  • v – подробный вывод инфы на экран;
  • f – Обязательная опция. Если не указать, Tar будет пытаться использовать магнитную ленту вместо файла;
  • z – обработать архив сжатый при помощи gzip;
  • j – обработать архив сжатый при помощи bzip.

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

cd имя_папки

Далее в распакованном архиве читаем инструкцию в файле README если есть. Во всяком случае, если программа собрана в виде исполняемого файла, то в пакете будет файл .sh , как правило называется install.sh

терминал и команды

Часто ли вы сталкивались с тем, что нужной версии приложения для вашей архитектуры в дистрибутиве Ubuntu просто нет, но данная программа имеется на сайте разработчиков в виде исходников в архиве.tar.gz. Думаю многим знакома данная ситуация, но не все продолжали искать пути решения данного вопроса и просто искали другой аналог приложения или версию немного старее и продолжали работать.

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

  • Для сборки приложений нам конечно же потребуются инструменты разработчика, в нашем случае это компилятор и другие сопутствующие ему программы, главную работу конечно нам будет выполнять утилита make, а командная строка (терминал) будет как бы нашей кухней где мы и будем готовить/собирать/устанавливать наше приложение с исходников. В Linux терминал доступен по умолчанию, для вашего удобства вы конечно же можете установить любой другой более функциональный к которому вы привыкли, я например использую Guake , уж очень много возможностей в сравнении с стандартным, где легко настроить как копирование так и вставку команд или любого текста с помощью CTRL+C,CTRL+V и много другого, что делает работу с консолью более комфортной.
  • 1. С чего стоит начать при сборке приложений с исходников, это конечно же скачать приложение в архиве tar.gz или же tar.bz2, в моем случае это например приложение Gimp 2.9.2 , хотя в нашем случае архив не tar.gz формата, а tar.bz2, это не имеет никакой разницы, качаем, после правой кнопкой мыши по архиву - Извлечь здесь .

На этом пожалуй первый этап завершен, что мы делаем далее? А далее мы запускаем терминал и перейдем в нашу распакованную папку с файлами:

Cd /home/linux/Загрузки/gimp-2.9.2/ ls

  • 2. Перед запуском подготовки исходников к сборке советовал бы прежде открыть и ознакомиться с файлом INSTALL, найдете очень много полезной информации, в данном файле описывается как устанавливать приложение, какие команды нужно выполнять и много чего еще интересного. Сейчас я вас советую установить дополнительный пакет под названием - auto-apt, выполняет много рутинной работы вместо вас.
sudo apt-get install auto-apt

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

Auto-apt -y run ./configure

Конечно можно выполнить конфигурацию и без помощь данного пакета и просто выполнить команду:

./configure

Если выполнять конфигурацию с приставкой - auto-apt -y run, то подготовка исходников к сборке будет происходить в автоматическом режиме, то есть эта команда может автоматически скачивать и установит вместо вас все необходимые файлы и библиотеки и удовлетворит все зависимости которые потребуются.

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

Пробуем установить отсутствующий пакет командой:

Sudo apt-get install pakage_name

В том случае если пакет при выполнении команды выше не обнаруживается, меня очень часто выручает следующая комбинация, ищем пакеты которых нам не хватает в кеше:

Apt-cache search pakage_name

  • После выполнения данной команды подходящий пакет вы может и найдете, часто бывает что подходящий пакет вы не находите, но встречается точная копия пакета но с приставкой dev то есть пакет вида pakage_name-dev и вы можете воспользоваться им чтобы удовлетворить зависимости.
  • 4. После удачного завершения конфигурации исходников для сборки, желательно установить пакет checkinstall который облегчает работы с сборкой пакета приложения под ваш дистрибутив.
sudo apt-get install checkinstall

Установили пакет, после можно выполнить команду:

Checkinstall -D

  • Атрибут -D создаст deb пакет, атрибут -R создаст rpm-пакет, который применяется в дистрибутивах Fedora, RHEL, ASP Linux, ALT Linux, Mandriva, openSUSE, дополнительно имеется еще атрибут -S который создаст пакет применяемый в Slackware.

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

1 - Summary: [ EOF ] 2 - Name: [ gimp ] 3 - Version: [ 2.9.2 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ gimp-2.9.2 ] 9 - Alternate source location: 10 - Requires: 11 - Provides: [ gimp ] 12 - Conflicts: 13 - Replaces:

  • Как видно перед сборкой идет проверка, завершилась ли конфигурация успешно, не остались ли неудовлетворенные зависимости или другие конфликты, если все хорошо, то и сборка пакета пройдет без проблем.

Я ранее как то устанавливал без сборки пакета, выполняя команды:

Make make install

Если вы захотите удалить установленное приложение, стоит выполнить команду:

Make uninstall

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

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

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

На этом пожалуй все, если у вас будут вопросы по материалу выше, или вы пытались установить и столкнулись с ошибками, спрашивайте в комментариях к материалу, будем искать решение вместе.

Материал из Bryansk Linux Users Group и www.rm.pp.ru

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

  1. Примечание
  2. Накладываем патчи
  3. Конфигурирование ядра
  4. Компиляция ядра
  5. Установка нового ядра
  6. Проблемы
  7. Ссылки

Примечание

Будет описано два способа сборки ядра. Первым будет описан вариант сборки.deb пакетов, которые могут быть установлены в Вашей или другой системе. Второй метод, так называемый "traditional" путь.

Способ первый. Сборка ядра в.deb пакеты

Установка необходимых пакетов для компиляции ядра

Для начала обновим списки пакетов:

# apt-get update

Установим нужные нам пакеты:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

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

Переходим в каталог /usr/src, идем на www.kernel.org и выбираем нужную версию ядра. В данном случае будет рассмотрена версия linux-2.6.23.1.tar.bz2. Скачиваем:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Распакуем исходники и создадим символьную ссылку:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (удалим предыдущий симлинк) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Накладывание патчей

Опционально и без необходимости не делайте этого!

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

Итак, предположим вы скачали необходимый патч (для примера назовем patch.bz2) в /usr/src. Применим скачанный патч на наши исходники (Вы должны быть все еще в каталоге /usr/src/linux):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | patch -p1

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

Таким образом Вы можете накладывать патчи на исходники ядра. Например, имеются некоторые особенности, которые доступны только в 2.6.23.8 ядре, а исходники не содержали необходимой функциональности, но выпущен патч patch-2.6.23.8.bz2. Вы можете применить этот патч к исходникам ядра 2.6.23, но не 2.6.23.1 или 2.6.23.3 и т.д. Подробнее об этом можно прочитать на :

Предъисправления (препатчи) - эквивалентны альфа релизам; патчи должны быть применены к исходникам полного предыдущего релиза с 3-х значной версией (например, патч 2.6.12-rc4 может быть применен к исходникам версии 2.6.11, но не к версии 2.6.11.10.)

Это значит, если мы хотим собрать ядро 2.6.23.8, необходимо скачать исходники версии 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.gz) применительно во втором способе "traditonal" путь!

Применяем патч patch-2.6.23.8.bz2 к ядру 2.6.23:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | patch -p1

Конфигурирование ядра

Неплохой идеей будет использование существующего конфигурационного файла работающего ядра и для нового. Поэтому копируем существующую конфигурацию в /usr/src/linux:

# make clean && make mrproper # cp /boot/config-`uname -r` ./.config # make menuconfig

после которой загрузится графическое меню конфигурации ядра. Выбираем в меню конфигуратора пункт "Load an Alternate Configuration File" и нажимаем "Оk". Затем (если требуется) сделайте необходимые изменения в конфигурации ядра перемещаясь по меню (подробности конфигурации ядра можно найти в www.google.com ). Когда закончите и нажмете "Exit", будет задан вопрос "Do you wish to save your new kernel configuration?", отвечаем утвердительно "Yes".

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

Сборка ядра выполняется всего в две команды:

# make-kpkg clean # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

После --append-to-version=, можно написать любое название, какое Вам угодно, но оно должно начинаться со знака минус (-) и не иметь пробелов.

Процесс компиляции и сборки.deb пакетов может занят довольно продолжительное время. Все будет зависить от конфигурации ядра и возможностей Вашего процессора.

Решение проблемы с созданием 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

Установка нового ядра

Когда удачно завершится сборка ядра, в каталоге /usr/src будут созданы два.deb пакета:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - собственно само актуальное ядро и linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - заголовки ядра, необходимые для сборки других модулей (например при сборке модулей драйвера nVidia). Устанавливаем их:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb

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

Всё, установка завершена, меню загрузчика, установка нового RAM-диска и ядра будут сделаны автоматически. Остается только перезагрузиться:

# reboot

Способ второй. "traditional" way

Выполняем все пункты, описанные выше ДО пункта "Компиляция ядра".

# make all # make modules_install # make install

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

Основной недостаток этого метода - если вы часто обновляете ядра, то через некоторое время их накопится большое количество и захочется удалить неиспользуемые. Чтобы это было сделать проще, можно собрать ядро и другие файлы, которые устанавливаются в систему по командам "make modules_install" и "make install" в deb-пакет (а точнее в два начиная с ядра 2.6.27) подобно первому способу, но воспользуемся здесь скриптами самого ядра:

# make all # make deb-pkg

В каталоге на уровень выше каталога исходников появятся два.deb-файла. Я собирал ядро в каталоге /usr/src/linux-2.6.27.10 и у меня в каталоге /usr/src/ появились файлы

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Ядро устанавливается командой

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Старые ядра можно удалять, например, из synaptic"a

Следующие шаги

Ядро собрано и установлено, но еще теперь необходимо создать RAM-диск (без которого ядро просто не загрузится) и необходимо обновить загрузчик GRUB. Для этого выполним следующее:

# depmod 2.6.23.1 # apt-get install yaird

Установим RAM-диск:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Обновим легко и безболезненно загрузчик:

# update-grub

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

# reboot

Проблемы

Если после перезагрузки, выбранное вами новое ядро не загружается, перезагрузитесь и выберите Ваше предыдущее ядро и можно попробовать проделать весь процесс заново, чтоб собрать рабочее ядро. Не забывайте в таком случае удалить строчки нерабочего ядра в /boot/grub/menu.lst.

Появилось желание познакомиться с разработкой под android. Скачал Android Studio, распаковал и удалил. Решил поискать другие варианты установки. В процессе поиска наткнулся на Ubuntu Make (он же Ubuntu Developer Tools Center в прошлом), и в этой небольшой заметке хочу рассказать вам о нем.

Ubuntu Developer Tools Center промелькнул в новостях вместе с Ubuntu 14.10 (Utopic Unicorn), но широкого внимания масс, как мне кажется, к себе не привлек. Не многим позже проект переименовали в Ubuntu Make, как он и называется по сей день подросшим до версии 0.4. Разработкой занимается Didier Roche, Software Engineer, Canonical. Также достоин внимания тот факт, что Ubuntu Make написан на Python 3.4.

Основная цель проекта быстрая и легкая установка общих потребностей разработчика в Ubuntu. И хотя до «общих потребностей» еще далековато (список доступных для установки пакетов пока маловат), с «быстро и просто» все отлично.

На данный момент с помощью Ubuntu Make можно установить:

  • Android Studio
  • Eclipse
  • IntelliJ Idea Community Edition
  • PyCharm Community Edition
  • go-lang Google compiler
  • Stencyl game developer IDE

Установка

В ubuntu 15.04 ubuntu-make доступен из коробки, пользователям версий 14.04 и 14.10 предлагается установить из ppa:

Sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo apt-get install ubuntu-make

Использование

Установка с ubuntu-make проста до неприличия. Для установки Android Studio достаточно выполнить в терминале:

Umake android
Немного ожидания и вот результат:

Иконка в dash и openjdk (если явы не было в системе) в комплекте. После запуска «студия» подтянула sdk и обновилась до версии 1.0.2. «Hello world» был запущен на телефоне и на этом проверка работоспособности завершилась.

Golang устанавливается аналогично:

Для PyCharm, Eclipse, Idea добавится еще один аргумент:

Umake ide pycharm

Для удаления пакета достаточно добавить аргумент "-r" к той же строчке:

Umake ide pycharm -r

Мнение

Кто-то скажет: - «Много ли делов. Скачать архив, распаковать, иконку в dash да яву проверить. Нужен ли ubuntu make?». Согласен может дел и не много, но я нашел пакет полезным для себя. Он сэкономил мне время и избавил от рутины. Надеюсь будет полезным и вам.