Як зібрати весь встановлений пакет із джерел?


26

Я читав про те, як джерела Linux-дистрибутивів на зразок Gentoo можуть мати значне підвищення продуктивності порівняно з попередньо вбудованими дистрибутивами, такими як Ubuntu, оскільки вони встановлюються з джерела з оптимізацією для вашої конкретної системи. Чи можливо побудувати Ubuntu з джерела, щоб отримати такий самий вигоду?


3
Для цього встановіть Gentoo, а не Ubuntu. Серйозно, навіщо використовувати дистрибутив, який абсолютно не спрацьовує при керуванні залежність від джерела, а не той, який на ньому хитається?
математичний

7
Мені буде цікаво побачити орієнтири між джерелом та бінарним файлом, де вони фактично використовували однакові версії та конфігурацію стека. Порівняння, як правило, випускає Ubuntu (з його за замовчуванням) та найновішим можливим Gentoo з дивною файловою системою та химерними настройками програми. Значення за замовчуванням Ubuntu в основному є досить розумними, і саме звідси виходить більшість його продуктивності, і саме тому більшість прямих порівнянь ставлять Ubuntu перед Gentoo.
Олі

1
Один чудовий приклад поганого порівняння - ця стаття журналу Linux (потрібна безкоштовна реєстрація для читання), де вони використовують різні ядра, різні драйвери Nvidia, різні версії X та різні середовища для настільних ПК. Ви також можете порівняти дві різні версії Ubuntu. Вони покажуть подібні шкали різниці.
Олі

4
Що збільшує продуктивність? Пропускна здатність мережі, швидкість диска, комутація процесів, чисті математичні обчислення, 3D-графіка, час завантаження?
користувач невідомий

1
Я лише радив би скласти програмне забезпечення, яке потребує значної продуктивності процесора (кодування відео приходить на думку) і користується значною мірою користувачем і отримує переваги від оптимізації процесора, як, наприклад, FMA3 або AVX2.
keiki

Відповіді:


42

Is is possible to build Ubuntu from source to get the same kind of benefit?

Я не впевнений у вигодах, якщо у вас є досить нові апаратні компоненти, але для частини Ubuntu від джерела відповідь ТАК, ви можете створити не тільки свої улюблені програми з джерела, але й усю операційну систему.

Ось як:

Потрібно встановити apt-build . Такий інструмент командного рядка, як apt-get, але замість того, щоб завантажувати та встановлювати двійковий пакет, apt-build завантажує вихідний код пакета, компілює його та потім встановлює у вашу систему.

Після встановлення з

sudo apt-get install apt-build

вам буде запропоновано рівень оптимізації (середнє значення нормально), чи хочете ви створити рето для підгонки APT (так) та питання про архітектуру процесора (мій intel i7 вважається core2). Звичайно, всі параметри можна налаштувати таким чином:

dpkg-reconfigure apt-build

Наведена вище команда пропонує два додаткові параметри для компілятора gcc та make builder. Їх описи можна знайти в системних посібниках: man gcc та man make.

Перевірте вручну та доступні параметри команд

man apt-build

Але найкориснішими є:

  • apt-build update - оновлення списку репо, (наприклад, оновлення apt-get)
  • оновлення apt-build - оновлення операційної системи (наприклад, апт-get upgrade)
  • apt-build install program - встановлює додаток, (наприклад, apt-get install)
  • apt-build world - щось для жорстких користувачів, воно перекомпілює всю систему!

Наприклад:

Скажімо, ви хочете скласти / встановити Gedit. Замість встановлення apt-get ви просто зробите

sudo apt-build install gedit

Apt-build використовує записи deb-src, що містяться у файлі /etc/apt/sources.list, так що процеси компіляції та встановлення повністю автоматичні (подібно до появи в Gentoo). Apt-build завантажує джерела основної програми та її залежностей, компілює їх, створює дебютний пакет та нарешті встановлює пакет.

Деякі зауваження про світ сприятливого побудови

На мою думку, не намагайтеся робити це, якщо у вас не буде 24 і більше годин!

Якщо це перше, що вам слід, видаліть / вимкніть / видаліть будь-які сторонні програми (краще це зробити в новій інсталяції Ubuntu), а потім зробіть:

sudo su
dpkg --get-selections | awk '{if ($2 == "install") print $1}'> /etc/apt/apt-build.list
exit

Вищевказана команда скопіює ваш повний список системних пакетів у apt-build.list, щоб їх можна було скласти з джерела. Відкрийте цей файл

sudo gedit /etc/apt/apt-build.list

і видаліть будь-який запис GCC / G ++

Тоді ви можете зробити:

sudo apt-build world

Я пропоную додати два варіанти - - так і - примусово - так, щоб зробити процес відновлення повністю автоматичним.


10
+1 для конкретної відповіді порівняно з "навіщо будувати?" відповіді. Я вважаю за краще прочитати також більш обширну думку (навіть якщо суб'єктивну) щодо переваг, які ви могли (або не могли) отримати apt-build.
enzotib

1
Зараз для цієї відповіді +17. Але хтось успішно це зробив?
keiki

1
@ otakun85 Я використовував apt-build для успішного складання деяких пакетів на Ubuntu (не пам'ятаю, який випуск, один з 12.04 | 12.10 | 13.04), я робив спробу apt-build world, який був безлад. Сторінка man для apt-build має це наприкінці BUGS Many., тому очікуйте неприємностей.
Фізи

Я вважаю, що замість того, щоб використовувати apt-build world, краще завантажити книгу "Linux зі скретчів" і зробити це apt-buildдля кожного перерахованого в ній пакету. Він визначає правильний порядок і т. Д. Наприклад, я не впевнений, якщо apt-build worldзнає, що слід спершу перекомпілювати binutils, потім gcc, потім binutilsще gccраз, потім мови програмування і gzipт. Д. Здається, він просто збирає все за алфавітом.
Сергій Виноградов

@SerhyiVynohradov: Це не мало значення. LFS робить це, щоб уникнути будь-яких залежностей від бібліотек у хост-системі, але тут це просто замінити все на місці компільованими версіями; вони все ще будуть у тому самому місці, матимуть той самий ABI тощо.
Нік Маттео,

3

Можна почати вогненну і величезну дискусію щодо такої теми, але давайте подивимось на реальне життя.

Швидкість роботи вашої ОС значною мірою залежить від того, яке обладнання ви запускаєте, і це головний фактор.

Я часто міняю дистрибутиви, хоча більшу частину часу перебуваю з Arch, але чи швидше Arch швидше, ніж Ubuntu? Ні.

Gnome з compiz на Ubuntu 10.10 використовує близько 300рам, на Arch 200ram, у мене 4gb оперативної пам’яті, я не відчуваю різниці, але якщо порівнювати Ubuntu з gnome з Arch з дивним, буде величезний приріст чуйності та ресурсу використання (300ram vs 50ram), але це має значення лише якщо ви вибираєте дистрибутив для нетбука.

Тож якщо у вас швидкий робочий стіл і ви не хочете витрачати час, займаючись своєю системою, просто використовуйте Ubuntu, але якщо у вас є нетбук, ніж розглянути можливість використання легкого WM в Arch :)


Ну, в якийсь момент ви можете потрапити в ситуацію, коли у вас є новітнє обладнання, але вам все одно потрібно виконувати годинну операцію. І замість того, щоб налаштувати купу серверів для розподілу навантаження, ви не заперечуєте витратити час на роздуми, щоб отримати додатковий 20% приріст. Я ніколи не використовував Arch, але спробував Gentoo. І я бачив, що багато разів не існує такого поняття, як "швидший дистрибутив". Натомість є "дистрибутив із меншим програмним забезпеченням". У вас може бути система голих кісток, яка є швидкою, але не захищеною. І коли ви встановлюєте інші пакети, він стає таким же швидким, як і Ubuntu + apt-build.
Сергій Виноградов

0

Apt-build корисний для більшої ефективності, ви можете створити власні зображення дистрибутиву та сховище для конкретного обладнання, готового до масової установки для вашого бізнесу. Під цим я маю на увазі оптимізований бінарний розподіл, якщо ви знаєте, що все обладнання буде однаковим. Таким чином, лише один комп’ютер виконує всі роботи по складанню, а решта лише оновлюються за допомогою ремастерованого ISO. Це не зовсім лише для легкої ваги або кодування. А спеціальний інсталятор ISO дозволяє перевстановити без повторної перекомпіляції, якщо з якоїсь причини ваша система не може бути відновлена ​​після аварії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.