|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Компиляция и установка программ из исходников. Собрать из исходников браузерСборка Mozilla Firefox (x64) из исходников под ОС Windows.cd /d/work/Mozilla_Firefox для перехода в данную папку hg clone https://hg.mozilla.org/mozilla-central для загрузки исходников (~4 Gb) В результате, после того как исходники скачаются получаем следующее: Теперь создаем в папке "D:\Work\Mozilla_Firefox\mozilla-central" файл конфига .mozconfig со следующим содержанием: ac_add_options --disable-gamepad ac_add_options --target=x86_64-pc-mingw32 ac_add_options --host=x86_64-pc-mingw32 И запускаем сборку в консоли: cd /d/work/Mozilla_Firefox/mozilla-central ./mach mercurial-setup здесь отвечаем на вопросы по настройке Mercurial./mach clobber очищаем результаты предыдущей сборки ./mach build и запускаем сборку Обратите внимание, путь к папке с исходниками не должен содержать пробелов. Т.е. изначально я создал папку D:\Work\Mozilla Firefox (это можно видеть на скрине), но перед сборкой переименовал ее в D:\Work\Mozilla_Firefox. Результат успешной сборки: Собранные файлы находятся в D:\Work\Mozilla_Firefox\mozilla-central\obj-ff\dist\bin\ ... чтобы запустить собранный Firefox можно набрать ./mach run в консоли, или запустить exe'шник firefox'а из папки bin. Как видно, все работает: Обратите внимание, что т.к. мы брали исходники из mozilla-central у нас получилась Nightly сборка. Ну и давайте попробуем подтвердить или опровергнуть миф о том, что "собственноручная сборка" браузера работает быстрее или медленнее официального релиза. Понятно, что в данном случае тестирование будет достаточно субъективным, т.к. нашу Nightly сборку мы будем сравнивать с релизной версией, в данном случае с Firefox 45.0.1 x64 отсюда. Для начала результаты теста на http://html5test.com/ :
www.decker.su ...как самостоятельно собрать Selenium из исходников? • А хотите, я расскажу вам...Краткая инструкция по сборке Selenium: Всё, можно пользоваться. А теперь всё то же самое, но более подробно. 0. Зачем?Вот именно, зачем? Зачем вообще надо собирать Selenium из исходников? Ведь можно просто взять готовый дистрибутив и использовать его. Да, большинству пользователей в большинстве случаев именно так и надо делать – использовать готовый дистрибутив. Но иногда хочется, знаете, чего-то такого… Например, вот прямо сейчас, в тот момент, когда я пишу эту заметку, “релизная” версия Selenium ещё не позволяет запускать тесты в новых версиях браузера Opera, которые построены на движке Blink, а если собрать Selenium из исходников – это уже можно делать. Или, скажем, вышло предупреждение, что Apache HttpClient версий до 4.3.6 содержит потенциальную уязвимость, а вы очень беспокоитесь по поводу защищенности тестового стенда – это уже исправлено, но новый релиз будет ещё не скоро. Ну или вы набрались решимости самостоятельно исправить какой-нибудь баг в Selenium, который вам ужасно мешает, а ленивые разработчики Selenium почему-то его игнорируют (видимо, им не мешает). В общем, хочется иногда. Эта заметка именно для тех, кому хочется. 1. Установить Java SDKЭто подробно описано в инструкции по установке Java, только обратите внимание, что для сборки Selenium потребуется Java SDK, а не JRE. 2. Установить клиент GitКлиентов Git много, на любой вкус и цвет, но лично я предпочитаю либо консольный, либо GUI-клиент Git Extensions, именно он дальше будет показан на скриншотах. 3. Клонировать репозиторий SeleniumСуществует два репозитория, в которых хранится код Selenium, они синхронизируются раз в несколько минут, и можно клонировать любой из них: Запускаем клиент Git Extensions и жмём там кнопку-ссылку Clone repository: Указываем адрес репозитория, локальную директорию, в которую его нужно клонировать, и жмём кнопку Clone: Репозиторий достаточно объёмный, поэтому тут придётся немного подождать, можно успеть выпить кофе перед следующим весьма ответственным шагом. 4. Выполнить сборку SeleniumЗапускаем консоль (cmd), переходим в ту директорию, в которую был клонирован репозиторий командой cd c:\temp\selenium и там выполняем команду go release: Тут придётся подождать ещё дольше (хотя, конечно, не так долго, как если бы вы собирали Firefox или Chromium из исходников)… Во время сборки из интернета будут загружаться четыре версии Gecko SDK. Они нужны для того, чтобы скомпилировать библиотеки для поддержки нативных событий в браузере Firefoх (что это такое - я расскажу как-нибудь потом). На самом деле, если у вас не установлен на машине компилятор для языка C, эти библиотеки скомпилироваться не смогут. Вместо них будут использованы предварительно собранные версии библиотек, которые уже есть в репозитории. Но четыре версии Gecko SDK всё равно скачаются. Когда-нибудь мы это оптимизируем. Может быть. В общем, если подождать достаточно долго, то этот процесс завершится, и в подкаталоге buid\dist вы найдёте собранный файл selenium-server-standalone-2.44.0.jar (на момент написания версии номер версии именно такой, в будущем, понятно, он будет отличаться). Это и есть готовый дистрибутив, который содержит всё необходимое для разработки тестов на Java с использованием Selenium, а также Selenium Server. Вот и всё. Ну, или почти всё, потому что ещё есть библиотеки для C#, Ruby и Python, которые собираются немного иначе. Но это уже совсем другая история. barancev.github.io Teeworlds. Собираем под Windows из исходников.Дело было вечером, делать было нечего ... ;) Началась эта история с того, что один из участников нашего сообщества @kolobus рассказал мне об игре Teeworlds. Для тех кто не в курсе - это такая "ретро" мультиплеерная стрелялка. По первым скриншотам она мне почему-то напомнила червяков, но, как оказалось, геймплей намного динамичнее и фактически это просто неплохой action. Нормальный человек бы посвятил первое знакомство с игрой непосредственно процессу, но меня почему-то зацепило другое. В разделе Downloads на официальном сайте игры я увидел версии для Win32 и Linux 64-bit'а (речь идет о последней на данной момент версии 0.6.3), однако, релиза 0.6.3 для Win64 почему-то не было. Хотя на сайте говорится что как раз в версии сервера 0.6.3 пофикшена уязвимость сервера. Вообщем не долго думая я решил разобраться, а как собрать всё это из исходников, чтобы заполучить бинарники клиента и сервера под Windows 64. В принципе получилось довольно быстро.
Всё, на этом предварительная подготовка исходников закончена. Собираем и получаем бинарники (если вы проводите сборку под Win64, то bam по всей видимости нужно собирать 64-битным, если под Win32, то 32-х). Ну а кого просто интересует конечный результат, т.е. готовые бинарники клиента и сервера Teeworlds 0.6.3 для Windows 64-bit, то вот они - teeworlds-0.6.3-win64.7z .Обновлено 22.09.2016 02:51 (MSK) Да, ну и обнаружив официальный репозиторий teeworlds на GitHub'е - https://github.com/teeworlds/teeworlds я не мог пройти мимо чтобы не попробовать собрать последнюю 0.7 trunk : Все получилось, единственное, что при сборке использовался уже свежий bam 0.5.0 и более свежая версия SDL 2.0.4 (stable). Результат, а именно бинарники Teeworlds 0.7 trunk можно забрать тут:В сборку включены стандартные карты, файлы языковых переводов и т.п., а также клиент и сервер. Единственное о чем следует помнить - публичных серверов на версии 0.7 пока не так много и играть вы сможете только на тех серверах у кого он собран c той же GAME_NETVERSION_HASH, у этой сборки он равен "8743be4f24dc7e35". www.decker.su Компиляция Mozilla Firefox, Mozilla Thunderbird и Instantbird в дистрибутивах GNU/LinuxК сожалению, в репозиториях различных дистрибутивов GNU/Linux содержатся не совсем свежие версии популярных программ. Эта статья поможет вам скомпилировать из исходного кода последние релизы таких программных продуктов, как: Логотипы Mozilla Firefox, Mozilla Thunderbird и Instantbird (слева направо)Затем установить их и использовать в своей системе. Все эти приложения объединяет то, что они используют движок Gecko, а их интерфейс построен с использованием кросс-платформенного языка разметки XUL. Firefox и Thunderbird разрабатываются компанией Mozilla Corporation, а Instantbird является некоммерческим проектом, основанным несколькими французскими энтузиастами. Помимо XULRunner, который позволяет использовать для построения интерфейса язык разметки XUL, Instantbird использует libpurpule из проекта Pidgin. Библотека libpurpule позволяет мессенджеру работать со всеми популярными на данный момент протоколами и службами обмена мгновенными сообщениями. Содержание:1. Подготовка окружения для сборки2. Сборка Mozilla Firefox3. Сборка Mozilla Thunderbird4. Сборка Instantbird5. Полезные ссылки и ресурсы 1. Подготовка окружения для сборкиДля сборки я буду использовать Linux Mint 15 KDE 64-bit, но вы можете собирать данные программы в любом удобном для вас дистрибутиве GNU/Linux, в который следует установить следующие пакеты:
Если вы собираетесь скомпилировать помимо продуктов Mozilla, ещё и Instantbird, то в систему необходимо установить такие пакеты, как: sudo apt-get install libavahi-glib-dev libavahi-client-dev Последние установленные deb-пакеты в Linux Mint 15 KDEДанные команды подходят для большинства популярных deb-based дистрибутивов, для rpm-based следует найти и установить аналогичные пакеты с помощью системного установщика, используемого в вашем дистрибутиве. Для сборки тяжеловесных программных продуктов от Mozilla необходимо очень много оперативной памяти или swap’а. Если вы будете собирать дебажную версию Firefox’а или Thunderbird’а, не забудьте проверить, достаточно ли памяти в вашей системе для компиляции и линковки этих программ. Для успешной сборки дебажных бинарников и библиотек необходимо примерно 2GB RAM + 5GB SWAP. Для релизных бинарников и библиотек вполне хватит 2GB RAM + 2GB SWAP. Если этап линковки вылетел с ошибкой: collect2: error: ld terminated with signal 9 Необходимо расширить объем доступной памяти. В дистрибутивах GNU/Linux вы всегда можете воспользоваться вашим свободным пространством на жестком диске для расширения памяти, создав там файл подкачки и подключив его в систему. Эту процедуру можно сделать с помощью следующих команд:
Проверить результат подключения файла можно с помощью команды: free -m Отключить использование файла подкачки «swapfile.img» можно с помощью команды: sudo swapoff swapfile.img << Перейти к содержанию 2. Сборка Mozilla FirefoxДля начала, получим исходники последней версии браузера (на момент написания статьи последняя версия 25.0), перейдя по следующей ссылке. Затем распакуем загруженный архив в директорию «/tmp» и перейдем в папку с исходниками:
Теперь создадим конфигурационный файл, на основе опций в котором и будет строиться наш браузер. Для этого можно просто создать файл «.mozconfig» в директории «/tmp/mozilla-release/» и наполнить его следующим содержимым:
Или же просто скачать этот файл и положить в нужный каталог, выполнив следующую группу команд:
Небольшое пояснение включенных в конфиге некоторых опций.Флаги -march=native -O2 -Os -mmmx -msse -msse2 -mssse3, использующиеся в нескольких опциях, выполняют оптимизацию под использующийся процессор. При желании их можно отключить, оставив только -march=native -O2 -Os; тогда скомпилированная программа заработает на большем количестве процессоров (на очень старых Pentium’ах или AMD, к примеру).Опция MOZ_MAKE_FLAGS="-j4" позволяет воспользоваться преимуществами многопоточной сборки. Благодаря чему время компиляции снижается в несколько раз. Аргумент «X» в конструкции «-jX» обычно вычисляется с помощью формулы «X = количество ядер в процессоре + 1». Для более быстрой компиляции и, соответственно, более жёсткой нагрузки на процессор, следует использовать «X = количество ядер в процессоре + 2». Если вы используете одноядерный процессор, можете закомментировать или удалить эту строку. --host=x86_64-linux-gnu определяет целевую платформу для сборки. Опция --prefix=/opt/Mozilla/Firefox определяет путь для установки скомпилированной программы и её ресурсов. При выполнении команды make install в этот каталог скопируются все необходимые для работы программы файлы. Вы можете закомментировать эту строку, если хотите, чтобы программа установилась в стандартный в большинстве дистрибутивов каталог для пользовательских программ — «/usr». --disable-debug, --disable-debug-symbols, --enable-strip и --enable-install-strip полностью исключают возможность отладки исполняемого бинарника. Если вам необходимо собрать именно отладочную версию программы, отключите опции *strip*, и включите опции *debug*.Примечание. Для сборки отладочной версии необходим большой объем дискового пространства и памяти. --enable-official-branding включает позиционирование браузера как Mozilla Firefox с официальным логотипом. Без включения этой опции будет использован свободный логотип и бренд Aurora. --enable-jemalloc позволяет использовать высокопроизводительный менеджер распределения памяти, благодаря которому использование программой RAM сокращается в несколько раз. Опция --with-pthreads разрешает программе использовать многопоточность. Для сборки в директории с исходниками следует выполнить команду: python2 mach build После которой последует предложение:
Если необходимо, изменяем каталог «/home/exl/.mozbuild», изменив переменную окружения MOZBUILD_STATE_PATH и вновь выполняем: python2 mach build После чего и начнёт выполняться процесс сборки. Компиляция и линковка браузера Mozilla Firefox занимает весьма много времени, продолжительность этапа сборки напрямую зависит от производительности вашего процессора и памяти. Для сборки программных продуктов от Mozilla используется mach, обычный способ «./configure && make && make install» не работает. Благодаря системе сборки mach можно наблюдать за процессом компиляции с помощью статус-строки, в которой отображается, какой компонент программы собирается в данный момент. Помимо статус-строки, напротив каждого компилируемого файла отображается общее время, потраченное на компиляцию или линковку. После успешной компиляции необходимо установить браузер Mozilla Firefox, в директорию, указанную в конфиге. Для запуска процесса установки следует выполнить команду: sudo python2 mach install Затем, при необходимости, можно добавить путь до симлинка «/opt/Mozilla/Firefox/bin/firefox» в ваше окружение:
После этого можно будет запустить скомпилированный Firefox, просто выполнив в терминале команду: firefox Собранный браузер Mozilla Firefox 25 в Linux Mint 15 KDE 64-bit (кликабельно)Помимо обычной установки, с помощью mach можно собрать установочный пакет, выполнив для этого в каталоге с исходниками: sudo python2 mach package После выполнения этой команды создастся переносимый пакет «firefox-VER.en-US.linux-ARCH.tar.bz2», который можно будет использовать в различных системах GNU/Linux. Этот пакет можно найти в сборочном каталоге «obj-ARCH/dist», находящимся в директории с исходным кодом. «ARCH» — в данном случае, архитектура процессора + хост. Для Linux Mint 15 KDE 64-bit, например, полный путь до пакета будет следующим: «/tmp/mozilla-release/obj-x86_64-unknown-linux-gnu/dist/firefox-25.0.en-US.linux-x86_64.tar.bz2». Когда браузер Mozilla Firefox собран и установлен, можно перейти к удалению ненужного теперь исходного кода: sudo rm -Rf /tmp/mozilla-release/ << Перейти к содержанию 3. Сборка Mozilla ThunderbirdПолучаем исходный код последней версии почтового клиента (на момент написания статьи это версия 24.1.0) по следующей ссылке, распаковываем его в директорию «/tmp» и переходим в каталог с исходниками:
Для конфигурирования в директории с исходниками необходимо создать специальный конфиг «.mozconfig», в который прописать необходимые опции. Список опций, которые я использую для сборки программы в среде KDE:
Опции нужно поместить в файл «.mozconfig». Это можно сделать вручную или воспользоваться следующей группой команд:
Описание некоторых опций в конфиге можно посмотреть здесь, а ниже я напишу про те, которые замещают или дополняют существующие: Опция --enable-application=mail говорит о том, что из исходников будет собираться почтовый клиент. --prefix=/opt/Mozilla/Thunderbird определяет каталог, в который будет устанавливаться программа. Вы можете удалить эту опцию, тогда каталог для установки будет стандартным — «/usr». --enable-calendar включает в сборку специальный календарь. Для компиляции Mozilla Thunderbird в каталоге с исходным кодом следует выполнить команду: python2 mozilla/mach build Компиляция выполняется с помощью системы сборки mach и занимает примерно 2-3 часа, в зависимости от производительности вашего процессора и объёма установленной оперативной памяти. Процесс компиляции Mozilla Thunderbird системой сборки mach в терминале KonsoleЕсли при компиляции возникнет ошибка:
Тот тут написано, что её можно смело игнорировать, так как все необходимые программные файлы были уже успешно созданы. После успешной компиляции необходимо установить почтовый клиент в систему, используя команду: sudo python2 mozilla/mach install Она скопирует необходимые для работы программы файлы в директорию, определённую в конфигурационном файле. Собранный Mozilla Thunderbird 24 в Gentoo Linux Awesome 64-bit (кликабельно)Теперь можно добавить в переменную окружения «${PATH}» путь до симлинка на исполняемый файл этого почтового клиента:
Если вам необходим переносимый пакет для установки в другие GNU/Linux дистрибутивы, воспользуйтесь для его создания командой: sudo python2 mozilla/mach package После выполнения которой пакет «thunderbird-24.1.0.en-US.linux-x86_64.tar.bz2» можно будет забрать из каталога «/tmp/comm-esr24/obj-ARCH/mozilla/dist/», где «ARCH» в нашем случае — «x86_64-unknown-linux-gnu». Когда почтовый клиент Mozilla Thunderbird полностью установлен и настроен, можно удалить исходники командой: sudo rm -rf /tmp/comm-esr24/ << Перейти к содержанию 4. Сборка InstantbirdInstantbird не разрабатывается компанией Mozilla Corporation, а небольшой группой французских разработчиков. Благодаря тому, что этот мессенджер использует библиотеку libpurple, в нём присутствует поддержка огромного количества протоколов и сервисов обмена мгновенными сообщениями. Для сборки последней версии Instantbird (на момент написания статьи последняя версия — 1.4) следует загрузить исходный код, доступный по этой ссылке, распаковать его и перейти в директорию с исходниками:
Система сборки в Instantbird основана на обычных Makefile’ах и может использовать как конфиг «mozconfig», так и «.mozconfig». Для конфигурирования программы Instantbird можно воспользоваться конфигом «mozconfig», вид которого должен быть приблизительно таким:
Опция --enable-application=instantbird указывает на то, что из исходников будет собираться клиент обмена мгновенными сообщениями Instantbird.Описание некоторых остальных опций можно найти здесь. Добавить опции в конфиг «mozconfig» можно как и вручную, так и воспользовавшись следующими командами:
В отличии от программных продуктов Mozilla, Instantbird не использует систему сборки mach. Поэтому для компиляции программы в каталоге с исходным кодом следует выполнить команду: make -f client.mk build Компиляция IM-мессенджера займёт приблизительно 1.5-2 часа. Если во время компиляции появится ошибка:
Её следует исправить, выполнив следующие команды:
Этот баг встречается во многих дистрибутивах, основанных на Ubuntu. Когда Instantbird успешно скомпилируется, его нужно установить в директорию, прописанную в файле «mozconfig». Это можно сделать командой: sudo make -f client.mk install Затем, при желании, можно добавить в переменную окружения «${PATH}» путь до исполняемого файла программы:
Для того, чтобы сделать переносимый пакет, следует зайти в сборочный каталог «/tmp/instantbird-1.4-src/obj-ARCH/», где «ARCH» — архитектура процессора + хост. А затем выполнить соответствующую команду для сборки пакета. Например, в Linux Mint 15 KDE 64-bit команды будут следующими:
Когда последняя команда выполнится, пакет «instantbird-1.4.en-US.linux-x86_64.tar.bz2» можно будет забрать из директории «/tmp/instantbird-1.4-src/obj-x86_64-unknown-linux-gnu/mozilla/dist/». После успешной компиляции и установки, следует подчистить каталог «/tmp», удалив исходники командой: sudo rm -rf /tmp/instantbird-1.4-src/ << Перейти к содержанию 5. Полезные ссылки и ресурсыНаиболее полную информацию о сборке различных программных продуктов Mozilla Corporation для различных операционных систем можно найти официальном сайте разработчиков Firefox — developer.mozilla.org (MDN). Отмечу наиболее полезные статьи оттуда:Документация по системе сборки machПростая инструкция по сборке Mozilla FirefoxСборка Mozilla Firefox в операционной системе GNU/LinuxСборка Mozilla Firefox в операционной системе WindowsОбщая инструкция по сборе Mozilla Firefox для различных операционных системПростой мануал по сборке Mozilla ThunderbirdСборка Mozilla Thunderbird в операционных системах GNU/Linux и MacOS Для клиента по обмену мгновенными сообщениями Instantbird, существует специальный ресурс, выполненный в формате wiki-энциклопедии:Wiki-мануал по компиляции Instantbird << Перейти к содержанию exlmoto.ru Собираем ядро Linux | LosstСамым основным компонентом операционной системы Linux есть ядро. Именно ядро выступает промежуточным звеном между пользовательскими программами и оборудованием компьютера. Во всех бинарных дистрибутивах нам не нужно заботиться о сборке и настройке ядра, все уже сделали за нас разработчики дистрибутива. Но если мы хотим собрать свой дистрибутив сами или установить самую свежую версию ядра, нам придется собирать ядро вручную. Первый вариант раньше был актуален для тех кто хотел получить максимальную производительность от своего оборудования, но сейчас, учитывая стремительное увеличение мощности компьютеров увеличение производительности при сборке ядра совсем незаметно. Сейчас сборка ядра может понадобиться пользователям не бинарных дистрибутивов, таких как Gentoo, тем, кто хочет внести некоторые изменения в ядро, получить новую самую свежую версию ядра и, конечно, же тем, кто хочет полностью разобраться в работе своей системы. В этой инструкции мы рассмотрим как собрать ядро Linux. Первая часть расскажет как настроить ядро в автоматическом режиме. Так сказать, для тех кто не хочет разбираться как оно работает, кому нужно лишь получить на выходе готовый продукт — собранное ядро. Во второй части мы рассмотрим основные этапы ручной настройки ядра, это процесс сложный, и небыстрый, но я попытаюсь дать основу, чтобы вы могли со всем разобраться сами. Содержание статьи: Получение исходников ядраСамое первое что нужно сделать — это скачать исходники ядра. Исходники лучшие брать с сайта вашего дистрибутива, если они там есть или официального сайта ядра: kernel.org. Мы рассмотрим загрузку исходников с kernel.org. Перед тем как скачивать исходники нам нужно определиться с версией ядра которую будем собирать. Есть две основных версии релизов — стабильные (stable) и кандидаты в релизы (rc), есть, конечно, еще стабильные с длительным периодом поддержки (longterm) но важно сейчас разобраться с первыми двумя. Стабильные это, как правило, не самые новые, но зато уже хорошо протестированные ядра с минимальным количеством багов. Тестовые — наоборот, самые новые, но могут содержать различные ошибки. Итак когда определились с версией заходим на kernel.org и скачиваем нужные исходники в формате tar.xz: В этой статье будет использована самая новая на данный момент нестабильная версия 4.4.rc7. Получить исходники ядра Linux можно также с помощью утилиты git. Сначала создадим папку для исходников: mkdir kernel_sources Для загрузки самой последней версии наберите: git clone https://github.com/torvalds/linux
Распаковка исходников ядра Теперь у нас есть сохраненные исходники. Переходим в папку с исходниками: cd linux_sources Или если загружали ядро linux с помощью браузера, то сначала создадим эту папку и скопируем в нее архив: mkdir linux_sources cp ~/Downloads/linux* ~/linux_sources Распаковываем архив с помощью утилиты tar: tar xf linux* И переходим в папку с распакованным ядром, у меня это: cd linux-4.4-rc7/ Автоматическая настройка сборки ядра LinuxПеред тем как начнется сборка ядра linux, нам придется его настроить. Как я и говорил, сначала рассмотрим автоматический вариант настройки сборки ядра. В вашей системе уже есть собранное, настроенное производителем дистрибутива, и полностью рабочее ядро. Если вы не хотите разбираться с тонкостями конфигурации ядра, можно просто извлечь уже готовые настройки старого ядра и сгенерировать на их основе настройки для нового. Нам придется лишь указать значения для новых параметров. Учитывая, что в последних версиях не было и не намечается серьезных изменений можно отвечать на все эти параметры как предлагает скрипт настройки. Параметры используемого ядра хранятся в архиве по адресу /proc/config.gz. Распакуем конфиг и поместим его в нашу папку утилитой zcat: zcat /proc/config.gz > .config А дальше запускаем скрипт адаптации настроек: make oldconfig В процессе его работы нужно будет ответить на несколько вопросов. Это новые параметры, которые изменились или были добавлены в новое ядро и поддержка нового оборудования, в большинстве случаев можно выбирать вариант по умолчанию. Обычно есть три варианта y — включить, n — не включать, m — включить в качестве модуля. Рекомендованный вариант написан с большой буквы, для его выбора просто нажмите Enter. На все про-все у вас уйдет около 10-ти минут. После завершения процесса, ядро готово к сборке. Дальше мы рассмотрим настройку ядра вручную, а вы можете сразу перелистать к сборке ядра Linux. Ручная настройка ядра LinuxРучная настройка — сложный и трудоемкий процесс, но зато она позволяет понять как работает ваша система, какие функции используются и создать ядро с минимально нужным набором функций под свои потребности. Мы рассмотрим только главные шаги, которые нужно выполнить чтобы ядро собралось и заработало. Со всем остальным вам придется разбираться самому опираясь на документацию ядра. Благо в утилите настройки для каждого параметра есть обширная документация которая поможет вам понять какие еще настройки нужно включить. Начнем. Для запуска меню настроек ядра linux наберите: make menuconfig Откроется вот утилита с интерфейсом ncurses: Как видите, некоторые обязательные опции уже включены, чтобы облегчить вам процесс настройки. Начнем с самых основных настроек. Чтобы включить параметр нажмите y, чтобы включить модулем — m, для перемещения используйте клавиши стрелок и Enter, возвратиться на уровень вверх можно кнопкой Exit Откройте пункт General Setup. Здесь устанавливаем такие параметры: Local Version — локальная версия ядра, будет увеличиваться при каждой сборке на единицу, чтобы новые ядра при установке не заменяли собой старые, устанавливаем значение 1. Automatically append version information to the version string — добавлять версию в название файла ядра. Kernel Compression Mode — режим сжатия образа ядра, самый эффективный lzma. Default Hostname — имя компьютера, отображаемое в приглашении ввода POSIX Message Queues — поддержка очередей POSTIX Support for paging of anonymous memory — включаем поддержку swap Control Group support — поддержка механизма распределения ресурсов между группами процессов Kernel .config support и Enable access to .config through /proc/config.gz— включаем возможность извлечь конфигурацию ядра через /proc/config.gz Здесь все, возвращаемся на уровень вверх и включаем Enable loadable module support, эта функция разрешает загрузку внешних модулей, дальше открываем его меню и включаем: Module unloading — поддержка отключения модулей Forced module unloading — принудительное отключение модулей Опять возвращаемся назад и открываем Processor type and features: Processor family (Opteron/Athlon64/Hammer/K8) — выбираем свой тип процессора. Опять возвращаемся и переходим в раздел File systems, тут установите все нужные галочки. Обязательно включите The Extended 3 (ext3) filesystem и The Extended 4 (ext4) filesystem — для поддержки стандартных ext3 и ext4 файловых систем Возвращаемся и идем в Kernel hacking. Здесь включаем Magic SysRq key — поддержка магических функций SysRq, вещь не первой необходимости, но временами полезная. Остался еще один пункт, самый сложный, потому что вам его придется пройти самому. Device Drivers — нужно пройтись по разделам и повключать драйвера для своего оборудования. Под оборудованием я подразумеваю нестандартные жесткие диски, мышки, USB устройства, веб-камеры, Bluetooth, WIFI адаптеры, принтеры и т д. Посмотреть какое оборудование подключено к вашей системе можно командой: lspci После выполнения всех действий ядро готово к сборке, но вам, скорее всего, предстоит разобраться с очень многим. Чтобы сохранить настройки переместите указатель с помощью стрелок вправо-влево, з позиции Select в позицию Save и нажмите Enter, потом еще раз подтвердите сохранение: Чтобы выйти нажмите пару раз кнопку Exit. Сборка ядра LinuxПосле завершения всех приготовлений может быть выполнена сборка ядра linux. Для начала процесса сборки выполните: make && make modules Теперь можете идти пить кофе или гулять, потому что процесс сборки длинный и займет около получаса. Установка нового ядраКогда ядро и модули будут собраны новое ядро можно устанавливать. Можно вручную скопировать файл ядра в папку загрузчика: cp arch/x86_64/boot/bzImage /boot/vmlinuz А можно просто выполнить установочный скрипт, сразу установив заодно и модули: sudo make install && sudo make modules_install После установки не забудьте обновить конфигурацию загрузчика Grub: grub-mkconfig -o /boot/grub/grub.cfg И перезагружаем компьютер чтобы увидеть новое ядро в работе: sudo reboot ВыводыВот и все. В этой статье мы подробно рассмотрели как собрать ядро Linux из исходников. Это будет полезно всем желающим лучшие понять свою систему, и тем, кто хочет получить самую новую версию ядра в своей системе. Если остались вопросы, задавайте комментарии! losst.ru Установка/Сборка программ с исходников в Ubuntu Linux | LinuxsoidЧасто ли вы сталкивались с тем, что нужной версии приложения для вашей архитектуры в дистрибутиве Ubuntu просто нет, но данная программа имеется на сайте разработчиков в виде исходников в архиве .tar.gz. Думаю многим знакома данная ситуация, но не все продолжали искать пути решения данного вопроса и просто искали другой аналог приложения или версию немного старее и продолжали работать. Сразу же хочется добавить несколько слов для новичков в Linux, прежде чем что-то выполнять с данной статьи, изучите основательно терминал и команды которые используются для работы с ним, почитайте маны или же материалы в сети. Часто ли вы сталкивались с тем, что нужной версии приложения для вашей архитектуры в дистрибутиве Ubuntu просто нет, но данная программа имеется на сайте разработчиков в виде исходников в архиве .tar.gz. Думаю многим знакома данная ситуация, но не все продолжали искать пути решения данного вопроса и просто искали другой аналог приложения или версию немного старее и продолжали работать. Сразу же хочется добавить несколько слов для новичков в Linux, прежде чем что-то выполнять с данной статьи, изучите основательно терминал и команды которые используются для работы с ним, почитайте маны или же материалы в сети.
На этом пожалуй первый этап завершен, что мы делаем далее? А далее мы запускаем терминал и перейдем в нашу распакованную папку с файлами: cd /home/linux/Загрузки/gimp-2.9.2/ lsдалее вы увидите содержимое архива, то есть исходники для сборки приложения.
Что значит выполняет много рутинной работы вместо меня, спросите вы, если запустить конфигурацию исходников приложения с приставкой данного пакета например в виде: auto-apt -y run ./configureКонечно можно выполнить конфигурацию и без помощь данного пакета и просто выполнить команду: ./configureЕсли выполнять конфигурацию с приставкой — auto-apt -y run, то подготовка исходников к сборке будет происходить в автоматическом режиме, то есть эта команда может автоматически скачивать и установит вместо вас все необходимые файлы и библиотеки и удовлетворит все зависимости которые потребуются.
Пробуем установить отсутствующий пакет командой: sudo apt-get install pakage_nameВ том случае если пакет при выполнении команды выше не обнаруживается, меня очень часто выручает следующая комбинация, ищем пакеты которых нам не хватает в кеше: apt-cache search pakage_name
Установили пакет, после можно выполнить команду: checkinstall -D
В моем случае я работаю в 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 и происходит процесс установки тысяч файлов исходников по требуемым директориям. Вот как то так и происходит установка приложения с исходников, да, не все так просто на первый взгляд, я и не говорил что будет легко, но если попробовать то это очень хорошо развивает ваше мышление и способы поиска решений в той или иной ситуации, что есть даже очень хорошо. На этом пожалуй все, если у вас будут вопросы по материалу выше, или вы пытались установить и столкнулись с ошибками, спрашивайте в комментариях к материалу, будем искать решение вместе. linuxsoid.club Компиляция и установка программ из исходниковНе редко необходимые пакеты можно найти только в виде исходных текстов, в данной статье описывается метод установки пакета из исходных текстов. Программы обычно распространяются в упакованных архивах, это файлы с расширениями <some_app_name>.tar.gz (иногда .tgz) <some_app_name>.tar.bz2Нужно понимать отличие между архиватором и упаковщиком. Для архивации директорий и файлов используется программа tar; результатом её работы является файл с расширением .tar. Грубо говоря, это копия файловой системы - директорий и файлов с их атрибутами и правами доступа, помещённая в один файл. Данный файл по размеру будет чуть больше, чем суммарный размер файлов, которые были архивированы. Поэтому (а может и по другой причине) используют упаковщики - программы, которые позволяют уменьшить размер файла без потери данных. Программа tar умеет распаковывать, поэтому не нужно вызывать gunzip, а можно просто указать программе tar, что файл нужно cначала распаковать. Например, команда tar -xvf <some_app_name>.tar.gzсразу распакует и разархивирует. Отличие файлов с расширениями <some_app_name>.tar.gzи <some_app_name>.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. Теперь всё скомпилировано и готово для установки. Усилия потраченные на Правильную установку в последствии с лихвой окупятся в случае удаления или обновления устанавливаемого программного обеспечения. Установка при помощи утилиты checkinstall. Для установки выполните sudo apt-get install checkinstallМинус данного способа: checkinstall понимает не все исходники, поскольку автор программы может написать особые скрипты по установке и checkinstall их не поймёт. Для создания и установки deb-пакета необходимо выполнить sudo checkinstallБыстрое создание deb-пакета «вручную». Основное отличие от предыдущего способа заключается в том, что в данном случае вы создаете пакет вручную и отслеживаете все вносимые изменения. Так же этот способ подойдет вам, если исходники не поддерживают сборку пакета с checkinstall. fakeroot make install DESTDIR=`pwd`/tempinstall сd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/conffiles Package: имя_пакета Version: 1.2.3 Architecture: amd64/i386/armel/all Maintainer: Можете вписать своё имя, можете дребедень, но если оставить пустым, то dpkg будет ругаться Depends: Тут можно вписать список пакетов через запятую. Priority: optional Description: Тоже надо что-нибудь вписать, чтобы не кидало предупреждения
Процедура создания deb-пакета подробно описана в данной статье. Минус данного способа заключается в том, что если вы устанавливаете напрямую через 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 программы. Так что если не получается собрать, то посмотрите на этот список и сверьте с тем что у вас установлено.
help.ubuntu.ru |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|