Các bản dựng xây dựng và thiết yếu của thế giới là gì?


66

Tôi đang nghiên cứu cách cài đặt Ruby 1.9.1 trong Xubfox 10.04 và tôi đã bắt gặp lệnh build-Essentialbuild-dep nhiều lần. Đôi khi nó được theo sau bởi các gói và đôi khi nó được cả trước và sau được gói bởi các gói.

Hai ví dụ tôi đang xem là:

sudo apt-get install build-Essential zlib1g zlib1g-dev zlibc libruby1.9 libxml2 libxml2-dev libxslt-dev

sudo apt-get build-dep ruby1.9

sudo apt-get install ruby ​​irb rirdoc ruby1.8-dev libzlib-ruby libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby -ibry libdbd-sqlite3-ruby sqlite3 libsqlite3-dev libsqlite3-ruby libxml-ruby libxml2-dev


3
Lưu ý rằng đó không phải là một lệnh, mà là một gói trong hệ thống gói Debian (APT). Bạn cũng có thể có được gói bằng các công cụ GUI.

Cảm ơn. Làm thế nào nó liên quan đến Ruby mặc dù? Tôi cho rằng Ruby cần nó để chạy nhưng có lẽ tôi đã sai.
classer

Câu trả lời:


48

Các build-essentialgói là một tài liệu tham khảo cho tất cả các gói cần thiết để biên dịch một gói Debian. Nó thường bao gồm các trình biên dịch và thư viện GCC / g ++ và một số tiện ích khác.

Kiểm tra các tài liệu ở đây .


2
Ok nhưng điều đó vẫn không trả lời đầy đủ câu hỏi của tôi. Tôi hiểu rằng 'build-Essential' chứa danh sách các gói thông tin cần thiết để tạo các gói Debian. Nhưng những gì được coi là một gói Debian? Hồng ngọc? trình biên dịch gcc / g ++? Và các gói Debian và 'build-Essential "liên quan đến Ruby như thế nào? Ruby có được xây dựng trên đầu gói Debian không? Nói cách khác, Ruby có cần gói xây dựng cần thiết để chạy không? Tôi thực sự muốn thấy một đại diện trực quan của mối quan hệ giữa tất cả các bộ phận.
classer

3
Nói một cách đơn giản, nếu bạn (hoặc một số gói khác bạn muốn cài đặt) cần trình biên dịch C / C ++, bạn cần cài đặt build-Essential. Thông thường, đó là thứ đầu tiên tôi cài đặt trong bản cài đặt Ubuntu mới :-)

4
@Adam Vì Ruby là ngôn ngữ thông dịch, trình thông dịch cần trình biên dịch C hoặc C ++ để tự xây dựng để chạy trên máy của bạn. build-essentiallà một siêu dữ liệu (một gói cài đặt nhiều gói khác, như g ++ và gcc: trình biên dịch GNU C & C ++). Nó là bắt buộc nếu bạn muốn biên dịch bất cứ thứ gì từ nguồn và nếu bạn muốn làm việc với hầu hết mọi ngôn ngữ lập trình. HTH!
vòng tròn

7
Câu trả lời này là sai. Câu trả lời dưới đây là chính xác. build-deplà một lệnh apt-get và build-essentiallà một gói.
David

2
Đây không phải là câu trả lời chính xác. Liên kết được cung cấp không cung cấp cái nhìn sâu sắc hoặc giải thích về những gì trong gói thiết yếu.
andDevW

55

Lệnh này sudo apt-get build-dep packagenamecó nghĩa là "Là root, cài đặt tất cả các phụ thuộc cho 'packagename' để tôi có thể xây dựng nó". Vì vậy, build-dep là một lệnh apt-get giống như cài đặt, gỡ bỏ, cập nhật, v.v.

build-essential là một gói chứa các tham chiếu đến nhiều gói cần thiết để xây dựng phần mềm nói chung.


1
Cảm ơn bạn đã giải thích lệnh 'build-dep'. Vì vậy, theo tôi hiểu, trong trường hợp này, Ruby1.9 có một danh sách phụ thuộc kèm theo mà Linux trông giống như một 'Danh sách việc cần làm / Xây dựng' và từng người xây dựng từng mục đó. Cơ sở hạ tầng cuối cùng được xây dựng cho phép Ruby1.9 hoạt động bình thường. Điều tôi không hiểu là tại sao 'build-Essential' hoặc tất cả các gói khác trong dòng trên cùng (zlib1g zlib1g-dev zlibc libruby1.9, v.v.), sẽ không được đưa vào Danh sách 'Việc cần làm / Xây dựng 'Được đính kèm với Ruby1.9. Sẽ không đơn giản hơn nếu chỉ có một lệnh?
classer

5

build-essentialcó một thuộc tính ma thuật: không cần liệt kê nó là một phụ thuộc xây dựng trong trường Build-Dependsđiều khiển ( debian-packages) của các gói nguồn như được ghi lại tại https://www.debian.org/doc/debian-policy/ch-source.html# quan hệ s-pkg

Bạn có thể nhận danh sách các gói xây dựng tại:

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

Bạn cũng có thể xác định xem một gói là một phần của build-essential:

apt-get show gcc

mà nói:

Build-Essential: yes

4

"build-Essential" chứa các công cụ (như trình biên dịch gcc, tạo công cụ, v.v.) để biên dịch / xây dựng phần mềm từ nguồn. Vì vậy, bạn bắt đầu với (thường là C) tệp nguồn và tạo tệp thực thi từ chúng.

Nếu bạn chỉ đang cố gắng cài đặt Ruby, tôi khuyên bạn chỉ nên sử dụng RVM (Trình quản lý phiên bản Ruby) :

Thực hiện theo các hướng dẫn trong "Kho lưu trữ Github (được khuyến nghị)"

Lưu ý rằng bạn sẽ cần cài đặt phần mềm kiểm soát phiên bản Git trước. Sử dụng apt-get install git-corenếu bạn chưa có.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.