Bạn có thể xây dựng apt-get từ nguồn không? [đóng cửa]


7

Tôi đã có một hình ảnh hạt nhân và một hệ thống tập tin trống và cần phải lấp đầy nó bằng các chương trình, như máy tính để bàn, một số tiện ích và phần mềm cơ bản.

Tôi có thể cài đặt apt-getbằng cách nào đó để làm điều đó cho tôi? Tôi không chắc chính xác cách thức apt-gethoạt động nên có thể có một số vấn đề với tôi khi không có bản phân phối được xác định hoặc một cái gì đó.

Nếu có thể, người ta sẽ lấy nguồn ở đâu để xây dựng nó?


1
Có, bạn có thể xây dựng tất cả phần mềm được cấp phép GPL từ nguồn, nhưng điều này không liên quan gì đến vấn đề, mà bạn nêu trong câu hỏi. Đối với điều đó xem câu trả lời của Stephen Kitt. Về nơi lấy nguồn, bạn lấy nó từ kho lưu trữ nguồn Debian.
ctrl-alt-delor

Nếu bạn muốn xây dựng hệ điều hành của mình từ nguồn, tôi khuyên bạn nên dùng Gentoo. Đó là một bản phân phối được thiết kế đặc biệt để làm loại điều này.
Neil Davis

Câu trả lời:


8

aptMã nguồn có sẵn trên Salsa , nhưng nó không được thiết kế để làm cơ sở cho việc khởi động phân phối từ nguồn. Để khởi động một bản aptphân phối dựa trên Debian , bạn cần sử dụng một công cụ như debootstrapbản thân nó cần khá nhiều chương trình để chạy (mặc dù hệ thống tệp của bạn không trống, nhưng bao gồm các công cụ Linux cơ bản, nó có thể đã có mọi thứ cần thiết). Thông thường, bootstrapping một hệ thống theo cách này liên quan đến việc sử dụng một hệ thống kiểu Debian khác hoặc chạy trình cài đặt.

Nếu bạn muốn xây dựng một hệ thống từ nguồn, tự nâng cao bằng bootstraps của mình, bạn nên xem Linux từ Scratch .


1
Bạn nói rằng bạn có một hệ thống tập tin trống trong câu hỏi của bạn ... Chính xác thì bạn có gì? Có ví dụ như một /usr/bin/dpkgtập tin, và một /var/lib/dpkg/statustập tin?
Stephen Kitt

2
Và để trả lời câu hỏi của bạn, aptkhông phải là một công cụ cài đặt chung, nó là một công cụ quản lý gói cho các hệ thống sử dụng .debcác gói và bố cục kho lưu trữ Debian. Bạn có thể sử dụng nó để xây dựng một số phân phối khác, nhưng điều đó sẽ không dành cho người yếu tim!
Stephen Kitt

1
Bạn lấy thẻ SD ở đâu? Bạn đã tải xuống một hình ảnh để cài đặt trên nó?
Stephen Kitt

1
Năng lực ngoại cảm của tôi cho tôi biết BOOT.bin là một hình ảnh hệ thống tập tin có thể gắn kết và bạn có thể có thể mount -o loopở đâu đó.
Kevin

1
@Zephyr Tôi khuyên bạn nên hỏi một câu hỏi khác, nêu chi tiết những gì bạn đề cập trong bình luận cuối cùng của bạn - bắt đầu với vấn đề bạn thực sự đang cố gắng giải quyết, đó là thay thế tệp cấu hình BOOT.bin.
Stephen Kitt

2

Bạn có thể xây dựng apt-gettừ nguồn. Nguồn của gói Debian luôn có sẵn từ trang gói (ngoại trừ một số gói trong non-freethành phần). Tuy nhiên điều này sẽ không giúp bạn.

Để cài đặt Debian hoặc Ubuntu trên hệ thống có nhân Linux đang chạy, hãy sử dụng debootstrap . Debootstrap tải xuống và cài đặt một hệ thống cơ bản. Để cài đặt trên hệ thống mà debootstrap không chạy, hãy sử dụng chế độ hai pha: chạy đầu tiên debootstrapvới --foreigntùy chọn và --archtùy chọn phù hợp trên hệ thống Unix (không nhất thiết là Debian, bạn có thể chạy Debootstrap trên bất kỳ hệ thống nào có tiện ích shell Unix cơ bản và wget), sau đó sao chép các tệp kết quả vào thư mục gốc của hệ thống đích. Các busyboxnhị phân từ Debian của busybox tĩnh giúp đỡ có thể, ví dụ như để đóng gói các tập tin vào một kho lưu trữ và busybox tar -xzf -họ.


1

Như những người khác đã đề cập, debootstraphoặc cdebootstraplà con đường để đi.

Trong trường hợp bạn muốn sao chép nó, hãy tải xuống tất cả các gói được đánh dấu Essential: yestrong danh sách các gói và các phụ thuộc trực tiếp và gián tiếp của chúng, sau đó trích xuất các tệp có trong hệ thống tệp đích. Điều này có thể được thực hiện với ar, tarxz.

Điều này là đủ của một hệ thống chức năng mà bạn có thể chạy trình quản lý gói, mặc dù các tệp đã cài đặt chưa được đăng ký đúng cách dpkg. Để làm điều này, bạn cần chạy dpkgbên trong hệ thống tệp đích và yêu cầu nó cài đặt các gói giống nhau (để các tệp được ghi đè một cách hiệu quả).

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.