Що таке "build-basic" та "build-dep"?


66

Я досліджую, як встановити Ruby 1.9.1 в Xubuntu 10.04, і я кілька разів стикався з командами build-basic та build-dep . Іноді за ним супроводжуються пакети, а іноді вони передують і після передачі пакетами.

Два приклади, на які я дивлюсь, є:

sudo apt-get install build-basic zlib1g zlib1g-dev zlibc libruby1,9 libxml2 libxml2-dev libxslt-dev

sudo apt-get build-dep ruby1.9

і

sudo apt-get install ruby ​​irb ri rdoc ruby1.8-dev libzlib-ruby libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby libruby-extras libfcgi-ruby1.8 build-basic libopenssl-ruby libdbbi-ruby libydbi libdbd-sqlite3-ruby sqlite3 libsqlite3-dev libsqlite3-ruby libxml-ruby libxml2-dev


3
Зауважте, що це не команда, а пакет у пакетній системі Debian (APT). Ви також можете придбати пакет за допомогою інструментів GUI.

Дякую. Як це стосується Рубі? Я припускаю, що Рубі потрібен для запуску, але, можливо, я помиляюся.
кластер

Відповіді:


48

build-essentialПакет є орієнтиром для всіх пакетів , необхідних для компіляції пакунку Debian. Він, як правило, включає компілятори та бібліотеки GCC / g ++ та деякі інші утиліти.

Ознайомтеся з документацією тут .


2
Гаразд, але це все ще не відповідає на моє запитання повністю. Я розумію, що "build-basic" містить інформаційний перелік пакунків, необхідних для створення пакетів Debian. Але що вважається пакетом Debian? Рубі? компілятори gcc / g ++? А як пакунки Debian та "build-basic" відносяться до Ruby? Чи Ruby побудований поверх пакета Debian? По-іншому, чи потрібен Ruby пакунок, необхідний для складання? Я дуже хочу побачити візуальне зображення відносини між усіма цими частинами.
классерскій

3
Простіше кажучи, якщо вам (або якомусь іншому пакету, який ви хочете встановити) потрібен компілятор C / C ++, вам потрібно встановити необхідну збірку. Зазвичай це перше, що я встановлюю в новій установці Ubuntu :-)

4
@Adam Оскільки Ruby - це інтерпретована мова, інтерпретатору потрібен компілятор C або C ++, щоб створити себе для роботи на вашій машині. build-essentialє метапакетом (пакет, який встановлює багато інших пакетів, таких як g ++ та gcc: компілятори GNU C & C ++). Це потрібно, якщо ви хочете скласти що-небудь з джерела, і якщо ви хочете працювати майже з будь-якою мовою програмування. HTH!
бір

7
Ця відповідь неправильна. Відповідь нижче - правильна. build-depє командою apt-get і build-essentialє пакетом.
Девід

2
Це не правильна відповідь. Надане посилання не дає розуміння чи пояснення того, що є у складі необхідного пакету.
andDevW

55

Команда sudo apt-get build-dep packagenameозначає "В якості кореня встановити всі залежності для 'ім'я пакета', щоб я міг його створити". Отже, build-dep - це команда apt-get, як і встановити, видалити, оновити тощо.

build-essential це пакет, який містить посилання на численні пакети, необхідні для побудови програмного забезпечення в цілому.


1
Дякуємо за пояснення команди "build-dep". Оскільки я розумію, у цьому випадку до Ruby1.9 додається список залежностей, який Linux розглядає як "Створення / складання списку", і один за одним створює кожен із цих елементів. Кінцева інфраструктура, яка створюється, дозволяє Ruby1.9 нормально функціонувати. Що я не розумію, це те, чому "build-basic" або всі інші пакунки у верхньому рядку (zlib1g zlib1g-dev zlibc libruby1.9 etc. etc.) не будуть включені до списку "робити / будувати" 'додається до Ruby1.9. Чи не було б простіше, якби була лише одна команда?
кластер

5

build-essentialмає одне магічне властивість: його не потрібно перераховувати як залежність побудови під Build-Dependsконтрольним полем ( debian-packages) вихідних пакетів, як це задокументовано на https://www.debian.org/doc/debian-policy/ch-source.html# s-pkg-відносини

Список пакунків, необхідних для складання, ви можете отримати за адресою:

cat /usr/share/doc/build-essential/list

Ви також можете визначити, що пакет входить до складу build-essential:

apt-get show gcc

що говорить:

Build-Essential: yes

4

"build-basic" містить інструменти (як компілятор gcc, інструмент make тощо) для компілювання / складання програмного забезпечення з джерела. Отже, ви починаєте з (зазвичай C) вихідних файлів і створюєте з них виконувані файли.

Якщо ви просто намагаєтесь встановити Ruby, я дуже рекомендую просто використовувати RVM (Ruby Version Manager) :

Дотримуйтесь інструкцій у розділі "Репозиторій Github (рекомендовано)"

Зауважте, що вам спочатку знадобиться програмне забезпечення управління версіями Git. Використовуйте, apt-get install git-coreякщо у вас цього ще немає.

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