Standart linux komut satırı araçlarının kaynaklarını bulmak için en iyi yer neresi? [kapalı]


10

İçine: Kaynak okuyarak öğrenmeyi seviyorum. Ancak, birçok farklı proje sitesinde bölünmüş olarak internette arama yapmak yorucu. Tek bir yerde birçok uygulamanın kaynaklarının bulunduğu merkezi göz atılabilir repoyu görmek isterim .

  • Birisi bazı Linux aracının belgelerine bulmak istediğinizde, en iyi yerdir: man toolname.
  • Linux kaynaklarına "istek üzerine" göz atmak istediğimde, her zaman atlayabilirim: Linux Cross Reference .
  • En yaygın personeli bulmak istediğimde, tüm kaynakları Coreutils'te bulabilirim .
  • Bir şeyi nasıl inşa edeceğimi kontrol etmek istediğimde, (örneğin) http://www.archlinux.org/packages/ 'a atlayabilirim , pkgbuild'i kontrol edebilirim.

Araçların çoğunun kaynaklarını tek bir yerde tutan herhangi bir repo var mı? - aynı mandokümantasyon veya Linux Çapraz Referans çekirdek kaynakları gibi.

Yani "hızlı" "talep üzerine" işlerin nasıl uygulandığını kontrol etmek için bir şey demek istiyorum. (Evet, google -> biliyorum ama rutin bıktım: 1. proje sitesi arama 2. repo tarama veya daha da kötüsü -> bu repo kontrol 3. bitince silme)

AÇIKLAMA:

Vurguladım, araçları kontrol etmek istiyorum: hızlı, hızlı, talep üzerine.

Bu şu anlama gelir: Tüm kaynakları sadece kaynaklarına bakmak için kendi kaynaklarıyla yüklemek istemiyorum. (btw. web kaynağı tercih edilir, bu yüzden birçok bilgisayardan kaynakları kontrol edebilirim - hepsinde yönetici yok)


3
Çoğu dağıtım, paket yöneticisini kullanarak paketler için kaynak yüklemenize izin verir.
jippie

3
Debian apt-get source $PACKAGE-NAMEiçin kaynak veri havuzunu ekledikten sonra koşabilirsiniz
Ulrich Dangel

Paketler genellikle işlevlerini tamamlamak için diğer kütüphanelere yanıt verir
papatya

Kontrol etmek istediğim her uygulamayı yüklemek istemiyorum.
Grzegorz Wierzowiecki

3
@GrzegorzWierzowiecki, kaynağa bir göz atmak için bir uygulama yüklemenize gerek yok, en azından apt-get sourcebu komutu normal kullanıcı olarak çalıştırabilirsiniz.
Ulrich Dangel

Yanıtlar:


6

Sorunuza alternatif bir cevapla yanıt vermeme izin verin. Geleneksel Unix komut satırı araçlarının kodunu okumak istiyorsunuz, sadece bunların GNU sürümünü değil. Farklı projelerden benzer araçların kodunu okumak, farklı fikirleri ve uygulamaları öğrenmek için iyi bir uygulamadır.

GNU, coreutils repo için güzel bir web arayüzüne sahip: http://git.savannah.gnu.org/cgit/coreutils.git

BSD ailesi, depolar için benzer web arayüzlerine sahiptir:

BSD kod tabanı ilginçtir, çünkü genellikle aynı araçlar için daha az kod kullanır, yani: sadece geleneksel seçenekleri destekler, ekstra seçenek yok, sh gerçek bir kabuktur ve sadece diğer büyük kabuklara (bash) vb. bin, sbin, usr.bin ve usr.sbin içindedir.

Üçüncü taraf yazılımı (arch'ın pkgbuild'ına benzer) oluşturmak için kodu okumak isterseniz aynı web arayüzlerine de göz atabilirsiniz. NetBSD ve DragonFly, NetBSD deposundan pkgsrc kullanır. OpenBSD ve FreeBSD bu çerçevelere kendi depolarında sahiptir.

Amacınız için ilginç diğer depolar:


Mükemmel cevap. Karşılaştırma için teşvik ettiğiniz için teşekkür ederiz - farklı yaklaşımları karşılaştırmak eğiticidir. Cevabınızı bazı Linux depolarıyla genişletebilir misiniz? BSD kod tabanları ilginç, ama korkarım syscall vb şeyler önemli farklılıklar olabilir, bu yüzden Linux depolar listenize büyük bir ek olacaktır.
Grzegorz Wierzowiecki

* BSD'nin avantajlarından biri, tüm kodun bir repo içinde olmasıdır. Linux ile ilgili sorun, her paketin farklı bir kökene sahip olmasıdır. Coreutils repo (ve yerleşik işlevsellik için bash repo git.savannah.gnu.org/cgit/bash.git/tree ) neredeyse tüm geleneksel araçları kapsar. "Linux dağıtım" depoları yalnızca üçüncü taraf paketlerini ve bazı yamaları oluşturmak için çerçeve içerir, depolar gerçek kod içermez (yalnızca dağıtımın araçları için kod içerir).
Rufo El Magufo

BSD ve Linux arasındaki farklılıklara saygı. API'ler POSIX ve diğer standartlarla benzer ve alışılmış şekilde uyumludur. Fark, her bir API'nin dahili uygulamasıdır. Aslında, GNU'dan araçlar * BSD üzerinde ve * BSD'den araçlar Linux üzerinde çalışır. Örn: Debian'ın ( Packages.debian.org ) bazı * BSD araçları vardır ve * BSD'lerin mevcut coreutils ve diğer GNU projeleri vardır.
Rufo El Magufo

2

Açık kaynak geliştirme için merkezi bir yer olmadığından, açık kaynak yazılımlarının çoğunu içeren merkezi bir depo yoktur. Bazıları GitHub, BitBucket, özel sunucular, Sourceforge, Launchpad vb.

Diğer taraftan ikili Dağıtımlar (kaynak kodu yerine gönderim ikili dosyaları) genellikle paketlerinin çoğu için kaynak sağlar ve bunları tüm kullanıcılara sağlar. Yani en iyi şansınız Dağıtımların sağladığı altyapıyı kullanmaktır. Lütfen bunların en son değişiklikleri ve düzeltmeleri içermediğini ve güncelliğini yitirmiş olabileceğini unutmayın.

Bir kaynak paketini dağıtımınızdan nasıl indireceğinize örnekler:

yumdownloader --source packagename
apt-get source packagename

Arch için stackoverflow ile ilgili benzer bir sorunun cevaplarına bir göz atın .

Sadece kaynak kodunu indirmek istiyorsanız, Packages.debian.org'u kullanabilirsiniz, örneğin coreutils bağlantısı . Bu, orijinal pakete ( orig.*veya bazı paketler için temizlenmiş kaynağa dsfg.*) bir indirme bağlantısı sağlayacaktır . Aynı şeyi Arch Linux paket listesiyle de yapabilirsiniz, örneğin: arch coreutils sayfası . Download from MirrorPaketi indirecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.