Что такое » build-essential «и»build-dep»?
Я исследую, как установить Ruby 1.9.1 в Xubuntu 10.04 и я наткнулся на команду build-essential и build-dep несколько раз. Иногда за ним следуют пакеты, а иногда он предшествует пакетам и передается после них.
2 примера, на которые я смотрю:
sudo apt-get install build-essential
zlib1g zlib1g-dev и zlibc libruby1.9
библиотеке libxml2 библиотеки libxml2-dev и для libxslt-Девsudo apt-получить сборки-ДЭП наследником пакетов ruby1.9
sudo apt-get установить ruby irb ri rdoc
наследником пакетов ruby1.8-Дев libzlib-Руби libyaml-Руби
libreadline-рубиновый libncurses-Руби
libcurses-рубиновый с libruby с libruby-массовка
libfcgi-наследником пакетов ruby1.8 строить-важно
libopenssl-libdbm Руби-Руби
libdbi-рубиновый libdbd-и sqlite3-Рубин
и sqlite3 libsqlite3-dev и libsqlite3-рубиновый
libxml-ruby libxml2-dev
Kali Linux: сборка ядра
В сегодняшнем материале публикуем перевод очередного фрагмента книги «Kali Linux Revealed». Из него вы узнаете о том, как модифицировать и собрать собственное ядро Linux. Этой теме посвящён второй раздел девятой главы.
9.2. Перекомпиляция ядра Linux
Стандартные ядра Kali включают в себя максимум функций и все доступные наборы драйверов. Сделано это для того, чтобы система могла работать на как можно большем количестве существующих конфигураций аппаратного обеспечения. Именно поэтому некоторые пользователи предпочитают перекомпилировать ядро для того, чтобы в нём было только то, что нужно именно им. У такого шага есть две причины. Первый — оптимизация потребления памяти, так как весь код ядра, даже если он не используется, занимает физическую память. Так как статически скомпилированные фрагменты ядра никогда не перемещаются в область подкачки, общее снижение системной производительности будет происходить из-за наличия встроенных драйверов и функций, которые никогда не используются. Вторая причина заключается в том, что уменьшение числа драйверов и механизмов ядра уменьшает риск возникновения проблем с безопасностью, так как используется лишь часть доступного кода ядра.
▍Сборка собственного ядра и обновление системы
Перекомпиляция ядра, кроме того, необходима в том случае, если вам нужно воспользоваться определёнными возможностями, которые доступны только в виде патчей (и не включены в стандартную версию ядра).
▍О руководстве The Debian Kernel Handbook
9.2.1. Подготовка и предварительные требования
Debian и Kali поддерживают ядро в форме пакета, подобное неудивительно, но это отличается от традиционного подхода к компиляции и установке ядра. Так как ядро находится под контролем системы управления пакетами, его можно без проблем удалить или развернуть на нескольких машинах. Более того, скрипты, связанные с этими пакетами, автоматизируют взаимодействие с загрузчиком операционной системы и генератором initrd .
Официальный исходный код Linux содержит всё, что нужно для сборки пакета ядра Debian, но сначала нужно установить пакет build-essential для того, чтобы обеспечить наличие инструментов для сборки пакетов Debian. Более того, для настройки ядра требуется пакет libncurses5-dev . И, наконец, пакет fakeroot позволяет создавать пакеты Debian, не имея административных привилегий.
Для установки вышеупомянутых пакетов воспользуйтесь следующей командой:
9.2.2. Загрузка исходного кода
Так как исходные коды ядра Linux доступны в виде пакета, вы можете их загрузить, установив пакет linux-source-version . С помощью команды apt-cache search ^linux-source можно вывести список последних версий ядра Kali. Обратите внимание на то, что исходный код, содержащийся в этих пакетах отличается от того, что публикует Линус Торвальдс и разработчики ядра. Как и все дистрибутивы, Debian и Kali применяют некоторое количество патчей, которые могут присутствовать в официальной версии Linux, а могут и не иметься там. Эти модификации включают в себя бэкпорты исправлений, функций и драйверов из более новых версий ядра, новые функции, которые ещё не полностью интегрированы в официальный код Linux, а иногда даже изменения, специфичные для Debian и Kali.
Ниже мы рассмотрим работу с ядром Linux версии 4.9, но наши примеры, конечно, могут быть адаптированы к нужной вам версии ядра.
Приводя этот пример, мы исходим из того, что установлен бинарный пакет linux-source-4.9 . Обратите внимание на то, что мы устанавливаем бинарный пакет, содержащий официальный исходный код, но не загружаем пакет с исходным кодом Kali, который называется linux.
9.2.3. Настройка ядра
Следующий шаг заключается в конфигурировании ядра в соответствии с вашими нуждами. Точная процедура зависит от целей того, кто занимается сборкой нового ядра.
Процесс сборки зависит от конфигурационного файла ядра. В большинстве случаев имеет смысл как можно меньше отклоняться от стандартного конфигурационного файла Kali, который, как и во всех дистрибутивах Linux, устанавливается в директорию /boot . В данном случае, вместо того, чтобы перенастраивать всё с нуля, достаточно сделать копию файла /boot/config-version . Версия должна быть точно такой же, как версия используемого в данный момент ядра, которую можно выяснить, воспользовавшись командой uname -r . Поместите копию в файл .config , расположенный в директории, содержащей исходный код ядра.
Кроме того, так как имеется стандартная конфигурация ядра в arch/arch/configs/*_defconfig , можно поместить выбранную конфигурацию туда, куда нужно, с помощью команды вроде make x86_64_defconfig (в случае с 64-битным ПК), или make i386_defconfig (для 32-битного компьютера).
В том случае, если вам не нужны изменения конфигурации, тут можно остановиться и перейти к разделу 9.2.4, «Компиляция и сборка пакета». Если же вам нужно внести изменения, или вы решили перенастроить всё с нуля, тогда надо будет заняться настройками. В папке с исходным кодом существуют специальные средства для настройки ядра. Для их использования понадобится команда вида make target , где target — это название одного из инструментов, описанных ниже.
Команда make menuconfig компилирует и запускает текстовой интерфейс, предназначенный для конфигурирования ядра (именно здесь нужен пакет libncurses5-dev ), который даёт доступ ко множеству настроек ядра, представленных в виде иерархической структуры. Нажатие на клавишу пробела позволяет изменить значение выбранной опции. Клавишей Enter «нажимают» на кнопки, которые выбирают в нижней части экрана. Кнопка Select в нижней части экрана применяется для перехода в выбранное подменю. Кнопка Exit закрывает текущий экран и осуществляет переход вверх по иерархии. Кнопка Help выводит более подробные сведения о выбранной опции. Клавиши-стрелки позволяют перемещаться по списку опций и экранных кнопок. Для того, чтобы выйти из конфигурационной программы, выберите команду Exit из главного меню. Затем программа предложит сохранить сделанные изменения, сделайте это, если вас всё устраивает.
Другие средства имеют похожие возможности, но оформлены они в виде графических приложений. Например, команда make xconfig использует графический интерфейс, основанный на Qt, команда make gconfig задействует GTK+. Первая из этих двух команд требует наличия libqt4-dev , в то время как вторая зависит от libglade2-dev и libgtk2.0-dev .
▍Работа с устаревшими файлами .config
9.2.4. Компиляция и сборка пакета
▍Очистка перед перестроением
После того, как настройка ядра завершена, нам понадобится простая команда make deb-pkg . Она позволяет сгенерировать до пяти Debian-пакетов в стандартном формате .deb . Речь идёт о следующих файлах:
- Файл linux-image-version содержит образ ядра и соответствующие модули.
- Файл linux-headers-version содержит заголовочные файлы, требуемые для сборки внешних модулей.
- Файл linux-firmware-image-version включает в себя файлы прошивок, которые нужны некоторым драйверам (этого пакета может и не быть, если вы осуществляете сборку ядра из исходников, взятых из Debian или Kali).
- Файл linux-image-version-dbg содержит отладочные символы для образа ядра и его модулей.
- Файл linux-libc-dev включает в себя заголовки, относящиеся к некоторым библиотекам пространства пользователя, вроде GNU C ( glibc ).
Для того, чтобы воспользоваться собранным ядром, остался лишь один шаг, который заключается в установке требуемых пакетов с помощью команды dpkg -i file.deb . Тут нужен пакет linux-image . Если имеются внешние модули ядра для сборки, понадобится установить пакет linux-headers . Так бывает, если установлены некоторые пакеты *-dkms (проверить это можно с помощью команды dpkg -l «*-dkms» | grep ^ii ). Другие пакеты в большинстве случаев не нужны.
Итоги
Сегодня мы поговорили о сборке собственного ядра для Kali Linux. Это процесс предусматривает загрузку исходного кода, выполнение необходимых модификаций, компиляцию, и, собственно, сборку. После этого новое ядро можно установить и пользоваться им. В следующий раз расскажем о создании Live-образов, которые можно использовать для загрузки системы с оптических носителей и флэш-дисков.
Уважаемые читатели! Если вы занимались сборкой собственных ядер Linux — просим поделиться опытом.
Пакет: build-essential (12.9 и другие)
информационный список пакетов необходимых для сборки
Этот пакет вам не нужен, если вы не хотите собирать пакеты Debian. Начиная с dpkg версии 1.14.18 этот пакет требуется для сборки пакетов Debian.
Пакет содержит информационный список пакетов, считающихся необходимыми для сборки пакетов Debian. Он также зависит от них для упрощения его установки.
Если этот пакет установлен, то вам требуется установить то, что указано в зависимостях времени сборки пакета, который вы собираете. Или, если вы определяете зависимости времени сборки вашего пакета, вы можете пропустить пакеты, от которых зависит этот пакет.
Этот пакет не является определением пакетов необходимых для сборки; такое определение дано в Руководстве по политике Debian. Этот пакет всего лишь содержит информационный список, то что нужно большинству. Но, если есть противоречие в этом пакете и Руководстве, последнее имеет приоритет.
Теги: Разработка программного обеспечения: Упаковка, Пользовательский интерфейс: Командная строка, Роль: Независимые данные, role::program, scope::utility, Комплект приложений: Debian
Другие пакеты, относящиеся к build-essential
- зависимости
- рекомендации
- предложения
- enhances
- dep: dpkg-dev (>= 1.17.11) инструменты сборки пакетов Debian
- dep: g++ (>= 4:10.2) GNU C++ compiler
- dep: gcc (>= 4:10.2) компилятор C от GNU
- dep: libc6-dev [не alpha, ia64] библиотеки для разработки и заголовочные файлы для GNU C
также виртуальный пакет, предоставляемый libc6.1-dev или libc-dev виртуальный пакет, предоставляемый libc6.1-dev - dep: libc6.1-dev [alpha, ia64] библиотеки для разработки и заголовочные файлы для GNU C или libc-dev виртуальный пакет, предоставляемый libc6.1-dev
- dep: make утилита управления компиляцией
Загрузка build-essential
Архитектура | Версия | Размер пакета | В установленном виде | Файлы |
---|---|---|---|---|
alpha (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
amd64 | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
arm64 | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
armel | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
armhf | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
hppa (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
i386 | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
ia64 (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
m68k (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
mips64el | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
mipsel | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
ppc64 (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
ppc64el | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
riscv64 (неофициальный перенос) | 12.9+b1 | 4,6 Кб | 18,0 Кб | [список файлов] |
s390x | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
sh4 (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
sparc64 (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
x32 (неофициальный перенос) | 12.9 | 7,5 Кб | 20,0 Кб | [список файлов] |
Эта страница также доступна на следующих языках (Как установить язык по умолчанию):
Чтобы сообщить о проблеме, связанной с веб-сайтом, отправьте сообщение (на английском) в список рассылки debian-www@lists.debian.org. Прочую контактную информацию см. на странице Debian Как с нами связаться.
Авторские права © 1997 — 2023 SPI Inc.; См. условия лицензии. Debian это торговый знак компании SPI Inc. Об этом сайте.
What is build-essential Ubuntu, how to install and use it?
Above, we have described what the build-essential packages are. In the rest of the article, we will explain how to install and use build-essentials on Ubuntu systems. All terminal commands we have executed on Ubuntu 20.04 system in this article. Let’s dive into the depths!
Installation and use of Build Essential tools on Ubuntu 20.04 system
The build-essential meta-packages can be installed directly from the Ubuntu official repository. These packages are available in the default Ubuntu 20.04 system repository. Just install meta-packages of build-essential tools through the apt package manager. Open the terminal application through the keyboard shortcut ‘Ctrl + Alt + t’.
Update apt repository
Now, you need to update the packages repository before installing the build-essential tools. Type the following command to update the apt repository index:
Install build-essential
Install the build-essential packages by running the below-given command:
After executing the above command, the following result will be shown on the terminal:
Check GCC version
Once the installation is finished, verify the installation of these packages by checking the GCC version on your system with the following command:
The installed version of GCC to be displayed on the terminal, which is also shown in the following screenshot:
Now, all GCC compiler libraries and tools have been installed on Ubuntu 20.04 system. However, you can run a C program for testing the installation.
Create C program
Let’s create a C program by using the nano editor as follows:
Now, add the below-mentioned lines of code in this nano file:
Compiling the C program
Save the above file and make an executable file by using the following command:
Run C program
Now, execute the following command to run the C program:
The following output is shown on the terminal after running the above C program:
Conclusion
We have explained the installation of build-essential tools in this article. We have explored what is build-essential and how to install and use it on Ubuntu 20.04 system. Now, you should have the proper understanding of the build-essential and how to install it on the Ubuntu system. The above commands can also be applied to the older Ubuntu versions. To learn more about these required packages, must visit their official website for a better understanding.
About the author
Karim Buzdar
Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.