Nơi tốt nhất để tìm nguồn của các công cụ dòng lệnh linux tiêu chuẩn? [đóng cửa]


10

Vào: Tôi thích học bằng cách đọc các nguồn. Nhưng thật mệt mỏi khi tìm kiếm chúng trên internet được chia ra trên nhiều trang web dự án khác nhau. Tôi rất thích thấy repo có thể duyệt trung tâm với nguồn của nhiều ứng dụng ở một nơi.

  • Khi ai đó muốn tìm tài liệu về một số công cụ Linux, nơi tốt nhất là : man toolname.
  • Khi tôi muốn duyệt các nguồn Linux "theo yêu cầu", tôi luôn có thể chuyển sang: Tham khảo chéo Linux .
  • Khi tôi muốn tìm nhân viên phổ biến nhất, tôi có thể tìm thấy tất cả các nguồn trong Coreutils .
  • Khi tôi muốn kiểm tra cách xây dựng một cái gì đó, tôi có thể (ví dụ) nhảy vào http://www.archlinux.org/packages/ , kiểm tra pkgbuild.

Có repo nào giữ nguồn của hầu hết các công cụ ở một nơi không? - giống như mangiữ tài liệu hoặc các nguồn nhân Linux Reference Reference .

Tôi có nghĩa là một cái gì đó để "nhanh chóng" "theo yêu cầu" kiểm tra cách thức thực hiện. .

GHI NHỚ:

Tôi đã nhấn mạnh, tôi muốn kiểm tra các công cụ: nhanh chóng, nhanh chóng, theo yêu cầu.

Điều đó có nghĩa là: Tôi không muốn cài đặt toàn bộ ứng dụng với các nguồn của nó chỉ để xem xét các nguồn của nó. (btw. Tài nguyên web là thích hợp hơn, vì vậy tôi có thể kiểm tra nguồn từ nhiều máy tính - Tôi không có quản trị viên trên tất cả chúng)


3
Hầu hết các bản phân phối cho phép bạn cài đặt nguồn cho các gói bằng trình quản lý gói.
jippie

3
Đối với debian, bạn chỉ có thể chạy apt-get source $PACKAGE-NAMEsau khi thêm kho lưu trữ nguồn
Ulrich Dangel

Các gói thường trả lời trên các thư viện khác để hoàn thành các chức năng của nó
daisy

Tôi không muốn cài đặt từng ứng dụng mà tôi muốn kiểm tra.
Grzegorz Wierzowiecki

3
@GrzegorzWierzowiecki bạn không phải cài đặt một ứng dụng để xem nguồn, ít nhất với apt-get sourcebạn có thể chạy lệnh này như người dùng bình thường.
Ulrich Dangel

Câu trả lời:


6

Hãy để tôi trả lời câu hỏi của bạn với một câu trả lời thay thế. Tôi đoán bạn muốn đọc mã cho các công cụ dòng lệnh Unix truyền thống, không chỉ là phiên bản GNU của các công cụ này. Đọc mã của các công cụ tương tự từ các dự án khác nhau là một cách thực hành tốt để tìm hiểu các ý tưởng và triển khai khác nhau.

GNU có một giao diện web đẹp cho repo của coreutils: http://git.savannah.gnu.org/cgit/coreutils.git

Họ BSD có các giao diện web tương tự cho các repos:

Cơ sở mã BSD rất thú vị vì thường sử dụng ít mã hơn cho cùng các công cụ, nghĩa là: chỉ hỗ trợ các tùy chọn truyền thống, không có tùy chọn bổ sung, sh là một vỏ thực sự và không chỉ là một liên kết đến các vỏ lớn khác (bash), v.v. nằm trong bin, sbin, usr.bin và usr.sbin.

Bạn cũng có thể duyệt các giao diện web tương tự nếu bạn muốn đọc mã để xây dựng phần mềm của bên thứ ba (tương tự như pkgbuild của arch). NetBSD và DragonFly sử dụng pkgsrc từ repo NetBSD. OpenBSD và FreeBSD có các khung này trong các repos tương ứng của chúng.

Các repos khác thú vị cho mục đích của bạn là:


Câu trả lời chính xác. Cảm ơn bạn đã khuyến khích so sánh - so sánh các phương pháp khác nhau là giáo dục. Bạn có thể mở rộng câu trả lời của mình với một số repo Linux không? Các cơ sở mã BSD rất thú vị, nhưng tôi e rằng có thể có những khác biệt quan trọng trong công cụ v.v ..., vì vậy các bản repos của Linux sẽ là sự bổ sung tuyệt vời vào danh sách của bạn.
Grzegorz Wierzowiecki

Một trong những lợi thế của * BSD là tất cả các mã nằm trong một repo. Vấn đề với Linux là mỗi gói có một nguồn gốc khác nhau. Coreutils repo (và bash repo cho chức năng tích hợp git.savannah.gnu.org/cgit/bash.git/tree ) bao gồm hầu hết tất cả các công cụ truyền thống. Các repos "linux distro" chỉ chứa khung để xây dựng các gói của bên thứ ba và một số bản vá, các repos không chứa mã thực (chỉ chứa mã cho các công cụ của distro).
Rufo El Magufo

Tôn trọng sự khác biệt BSD so với Linux. Các API tương tự và tương thích theo thói quen với POSIX và các tiêu chuẩn khác. Sự khác biệt là việc triển khai nội bộ của từng API. Trên thực tế, các công cụ từ GNU hoạt động trên * BSD và các công cụ từ * BSD hoạt động trên Linux. Ví dụ: Debian ( gói.debian.org ) có một số công cụ * BSD và * BSD có lõi sẵn có và các dự án GNU khác.
Rufo El Magufo

2

Vì không có vị trí trung tâm để phát triển nguồn mở nên không có kho lưu trữ trung tâm chứa hầu hết các phần mềm nguồn mở. Một số sử dụng GitHub, BitBucket, máy chủ riêng, Sourceforge, Launchpad, v.v ... Vì vậy, đây là một môi trường phân tán thực sự và không có lợi ích ngay lập tức khi có một kho lưu trữ chỉ sao chép nguồn.

Mặt khác, Phân phối nhị phân (nhị phân vận chuyển thay vì mã nguồn) thường cung cấp nguồn cho hầu hết các gói của họ và cung cấp chúng cho tất cả người dùng. Vì vậy, cơ hội tốt nhất của bạn là sử dụng cơ sở hạ tầng được cung cấp bởi Phân phối. Xin lưu ý rằng chúng không nhất thiết phải chứa các thay đổi và sửa lỗi mới nhất và có thể bị lỗi thời.

Ví dụ về cách tải xuống gói nguồn từ bản phân phối của bạn:

yumdownloader --source packagename
apt-get source packagename

Đối với Arch, hãy xem các câu trả lời tại các câu trả lời cho một câu hỏi tương tự trên stackoverflow.

Nếu bạn chỉ muốn tải xuống mã nguồn, bạn có thể sử dụng gói.debian.org, ví dụ: liên kết cho coreutils . Điều này sẽ cung cấp một liên kết tải xuống gói ban đầu ( orig.*hoặc nguồn đã được dọn sạch cho một số gói dsfg.*). Bạn có thể làm tương tự với danh sách gói Arch Linux, ví dụ: trang arch coreutils . Các Download from Mirrorsẽ tải về các gói.

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.