En: Me gusta aprender leyendo fuentes. Pero es agotador buscarlos en Internet divididos en muchos sitios de proyectos diferentes. Me encantaría ver un repositorio central navegable con fuentes de muchas aplicaciones en un solo lugar.
- Cuando alguien quiere encontrar la documentación de alguna herramienta de Linux, el mejor lugar es:
man toolname
. - Cuando quiero explorar las fuentes de Linux "a pedido" siempre puedo saltar a: Referencia cruzada de Linux .
- Cuando quiero encontrar el personal más común, puedo encontrar todas las fuentes en Coreutils .
- Cuando quiero comprobar cómo construir algo, puedo (por ejemplo) saltar a http://www.archlinux.org/packages/ , comprobar que es pkgbuild.
¿Hay algún repositorio que contenga las fuentes de la mayoría de las herramientas en un solo lugar? - al igual que man
contiene documentación o fuentes de kernel de referencia cruzada de Linux .
Me refiero a algo para verificar "a pedido" "rápido" cómo se implementan las cosas. (Sí, conozco google -> pero estoy cansado de la rutina: 1. buscando en el sitio del proyecto 2. navegando por el repositorio o incluso peor -> revisando su repositorio 3. borrando cuando haya terminado)
OBSERVACIÓN:
Me he estresado, me gustaría comprobar las herramientas: rápido, rápido y bajo demanda.
Significa: no quiero instalar toda la aplicación con sus fuentes solo para echar un vistazo a sus fuentes. (por cierto, el recurso web es preferible, por lo que podría consultar las fuentes de muchas computadoras, no tengo administrador en todas ellas)
fuente
apt-get source $PACKAGE-NAME
después de agregar el repositorio de origenapt-get source
puede ejecutar este comando como usuario normal.Respuestas:
Permítame responder a su pregunta con una respuesta alternativa. Supongo que quieres leer el código de las herramientas tradicionales de línea de comandos de Unix, no solo la versión GNU de estas. Leer el código de herramientas similares de diferentes proyectos es una buena práctica para aprender diferentes ideas e implementaciones.
GNU tiene una buena interfaz web para el repositorio de coreutils: http://git.savannah.gnu.org/cgit/coreutils.git
La familia BSD tiene interfaces web similares para los repositorios:
La base de código BSD es interesante porque generalmente usa menos código para las mismas herramientas, es decir: solo admite opciones tradicionales, sin opciones adicionales, sh es un shell real y no solo un enlace a otro shell grande (bash), etc. Herramientas similares a coreutils están dentro de bin, sbin, usr.bin y usr.sbin.
También puede navegar por las mismas interfaces web si desea leer el código para construir software de terceros (similar a pkgbuild de arch). NetBSD y DragonFly usan pkgsrc del repositorio de NetBSD. OpenBSD y FreeBSD tienen estos marcos dentro de sus respectivos repositorios.
Otros repositorios interesantes para su propósito son:
fuente
Como no hay un lugar central para el desarrollo de código abierto, no hay un repositorio central que contenga la mayoría del software de código abierto. Algunos usan GitHub, BitBucket, servidores privados, Sourceforge, Launchpad, etc. Por lo tanto, este es un entorno verdaderamente distribuido y no hay un beneficio inmediato de tener un repositorio simplemente copiando la fuente.
Por otro lado, las distribuciones binarias (binarios de envío en lugar del código fuente) generalmente proporcionan la fuente de la mayoría de sus paquetes y se los proporcionan a todos los usuarios. Entonces, su mejor oportunidad es usar la infraestructura provista por las Distribuciones. Tenga en cuenta que no necesariamente contienen los últimos cambios y correcciones y pueden estar desactualizados.
Ejemplos de cómo descargar un paquete fuente de su distribución:
Para Arch, eche un vistazo a las respuestas a las respuestas para una pregunta similar sobre stackoverflow.
Si solo desea descargar el código fuente, puede usar packages.debian.org, por ejemplo, enlace para coreutils . Esto proporcionará un enlace de descarga para el paquete original (
orig.*
o la fuente limpia para algunos paquetesdsfg.*
). Puede hacer lo mismo con la lista de paquetes de Arch Linux, por ejemplo: la página de arch coreutils . ElDownload from Mirror
descargará el paquete.fuente