Di mana tempat terbaik untuk menemukan sumber-sumber alat baris perintah linux standar? [Tutup]

10

Ke: Saya suka belajar dengan membaca sumber. Tapi itu melelahkan mencari mereka di internet terpecah pada banyak banyak situs proyek yang berbeda. Saya ingin melihat repo sentral yang dapat dijelajahi dengan sumber dari banyak banyak aplikasi di satu tempat.

  • Ketika seseorang ingin mencari dokumentasi beberapa alat Linux, tempat terbaik adalah: man toolname.
  • Ketika saya ingin menelusuri sumber-sumber Linux "sesuai permintaan", saya selalu dapat beralih ke: Linux Cross Reference .
  • Ketika saya ingin menemukan staf yang paling umum, saya dapat menemukan semua sumber di Coreutils .
  • Ketika saya ingin memeriksa cara membuat sesuatu, saya dapat (misalnya) masuk ke http://www.archlinux.org/packages/ , periksa pkgbuild-nya.

Apakah ada repo yang menyimpan sumber sebagian besar alat di satu tempat? - Sama seperti manmemegang dokumentasi atau sumber kernel Linux Cross Reference .

Maksud saya sesuatu untuk "cepat" "sesuai permintaan" memeriksa bagaimana hal-hal diterapkan. (Ya, saya tahu google -> tapi saya bosan dengan rutin: 1. mencari situs proyek 2. menjelajah repo atau bahkan lebih buruk -> memeriksa repo 3. menghapus ketika selesai)

UCAPAN:

Saya sudah stres, saya ingin memeriksa alat: cepat, cepat, sesuai permintaan.

Artinya: Saya tidak ingin menginstal seluruh aplikasi dengan sumbernya hanya untuk melihat sumbernya. (btw. sumber daya web lebih disukai, jadi saya bisa memeriksa sumber dari banyak komputer - saya tidak punya admin pada semuanya)

Grzegorz Wierzowiecki
sumber
3
Sebagian besar distribusi memungkinkan Anda untuk menginstal sumber untuk paket menggunakan manajer paket.
jippie
3
Untuk debian Anda bisa menjalankannya apt-get source $PACKAGE-NAMEsetelah Anda menambahkan repositori sumber
Ulrich Dangel
Paket biasanya membalas di perpustakaan lain untuk menyelesaikan fungsinya
daisy
Saya tidak ingin menginstal setiap aplikasi yang ingin saya periksa.
Grzegorz Wierzowiecki
3
@GrzegorzWierzowiecki Anda tidak perlu menginstal aplikasi untuk melihat sumbernya, setidaknya dengan apt-get sourceAnda dapat menjalankan perintah ini sebagai pengguna normal.
Ulrich Dangel

Jawaban:

6

Biarkan saya menanggapi pertanyaan Anda dengan jawaban alternatif. Saya kira Anda ingin membaca kode untuk alat baris perintah Unix tradisional, tidak hanya versi GNU ini. Membaca kode alat serupa dari berbagai proyek adalah praktik yang baik untuk mempelajari berbagai ide dan implementasi.

GNU memiliki antarmuka web yang bagus untuk repo coreutils: http://git.savannah.gnu.org/cgit/coreutils.git

Keluarga BSD memiliki antarmuka web yang serupa untuk repo:

Basis kode BSD menarik karena biasanya menggunakan lebih sedikit kode untuk alat yang sama, yaitu: hanya mendukung opsi tradisional, tidak ada opsi tambahan, sh adalah shell nyata dan tidak hanya link ke shell besar lainnya (bash), dll. Alat mirip dengan coreutils berada di dalam bin, sbin, usr.bin dan usr.sbin.

Anda juga dapat menjelajahi antarmuka web yang sama jika Anda ingin membaca kode untuk membangun perangkat lunak pihak ketiga (mirip dengan pkgbuild lengkung). NetBSD dan DragonFly menggunakan pkgsrc dari repo NetBSD. OpenBSD dan FreeBSD memiliki kerangka kerja ini dalam repo masing-masing.

Repo lain yang menarik untuk tujuan Anda adalah:

Rufo El Magufo
sumber
Jawaban yang bagus Terima kasih atas dukungan Anda untuk perbandingan - membandingkan berbagai pendekatan berbeda bersifat mendidik. Bisakah Anda memperluas jawaban Anda dengan beberapa repo Linux? Basis kode BSD memang menarik, tapi saya khawatir mungkin ada perbedaan penting dalam hal-hal syscall dll, jadi repo Linux akan menjadi tambahan yang bagus untuk daftar Anda.
Grzegorz Wierzowiecki
Salah satu kelebihan * BSD adalah semua kode berada dalam satu repo. Masalah dengan Linux adalah bahwa setiap paket memiliki asal yang berbeda. Coreutils repo (dan bash repo untuk fungsionalitas built-in git.savannah.gnu.org/cgit/bash.git/tree ) mencakup hampir semua alat tradisional. Repo "linux distro" hanya berisi kerangka kerja untuk membangun paket pihak ketiga dan beberapa tambalan, repo tidak mengandung kode nyata (hanya berisi kode untuk alat distro).
Rufo El Magufo
Hormati perbedaan BSD vs Linux. API serupa dan biasanya kompatibel dengan POSIX dan standar lainnya. Perbedaannya adalah implementasi internal masing-masing API. Bahkan, alat dari GNU berfungsi pada * BSD dan alat dari * BSD bekerja di Linux. Contoh: Debian ( packages.debian.org ) memiliki beberapa alat * BSD dan * BSD memiliki coreutils yang tersedia dan proyek GNU lainnya.
Rufo El Magufo
2

Karena tidak ada tempat sentral untuk pengembangan sumber terbuka, tidak ada repositori pusat yang berisi sebagian besar perangkat lunak sumber terbuka. Beberapa menggunakan GitHub, BitBucket, server pribadi, Sourceforge, Launchpad, dll. Jadi ini adalah lingkungan yang benar-benar terdistribusi dan tidak ada manfaat langsung memiliki satu repositori hanya dengan menyalin sumbernya.

Di sisi lain, Distribusi biner (pengiriman binari alih-alih kode sumber) biasanya menyediakan sumber untuk sebagian besar paket mereka dan menyediakannya untuk semua pengguna. Jadi peluang terbaik Anda adalah menggunakan infrastruktur yang disediakan oleh Distribusi. Perlu diketahui bahwa itu tidak selalu berisi perubahan dan perbaikan terbaru dan mungkin sudah usang.

Contoh cara mengunduh paket sumber dari distribusi Anda:

yumdownloader --source packagename
apt-get source packagename

Untuk Arch, lihat jawaban di jawaban untuk pertanyaan serupa tentang stackoverflow.

Jika Anda hanya ingin mengunduh kode sumber, Anda bisa menggunakan paket.debian.org , mis. Tautan untuk coreutils . Ini akan memberikan tautan unduhan ke paket asli ( orig.*atau sumber yang sudah dibersihkan untuk beberapa paket dsfg.*). Anda dapat melakukan hal yang sama dengan daftar paket Arch Linux, mis: halaman arch coreutils . The Download from Mirrorakan mendownload paket.

Ulrich Dangel
sumber