
Into: Мне нравится учиться, читая источники. Но утомительно искать их в интернете, разбросанном по многим-многим различным сайтам проектов. Я бы с удовольствием посмотрелцентральный просматриваемыйрепозиторий с исходниками многих приложений в одном месте.
- Если кто-то хочет найти документацию по какому-либо инструменту Linux, лучшее место — это:
man toolname
. - Когда я хочу просмотреть исходные коды Linux «по требованию», я всегда могу перейти к:Перекрестная ссылка Linux.
- Когда я хочу найти наиболее распространенный персонал, я могу найти все источники в Coreutils.
- Когда я хочу проверить, как что-то построить, я могу (например) перейти кhttp://www.archlinux.org/packages/, проверьте, что это pkgbuild.
Есть ли репозиторий, который хранит исходные коды большинства инструментов в одном месте? - так же, как man
хранит документацию илиПерекрестная ссылка Linuxисходники ядра.
Я имею в виду что-то для «быстрой» проверки «по требованию» того, как что-то реализовано. (Да, я знаю Google -> но я устал от рутины: 1. поиска на сайте проекта 2. просмотра репозитория или, что еще хуже -> проверки его репозитория 3. удаления по завершении)
ЗАМЕЧАНИЕ:
Я в стрессе, я хотел бы проверить инструменты: быстро, оперативно, по требованию.
Это значит: я не хочу устанавливать все приложение вместе с его исходниками только для того, чтобы взглянуть на его исходники. (кстати, веб-ресурс предпочтительнее, так как я могу проверить исходники со многих компьютеров — у меня нет прав администратора на всех из них)
решение1
Позвольте мне ответить на ваш вопрос альтернативным ответом. Я думаю, вы хотите прочитать код традиционных инструментов командной строки Unix, а не только их GNU-версию. Чтение кода похожих инструментов из разных проектов — это хорошая практика для изучения разных идей и реализаций.
У GNU есть удобный веб-интерфейс для репозитория coreutils:http://git.savannah.gnu.org/cgit/coreutils.git
Семейство BSD имеет похожие веб-интерфейсы для репозиториев:
- OpenBSD:http://www.openbsd.org/cgi-bin/cvsweb/src/
- DragonFly BSD:http://gitweb.dragonflybsd.org/dragonfly.git/tree
- NetBSD:http://cvsweb.netbsd.org/bsdweb.cgi/src/
- FreeBSD:http://svnweb.freebsd.org/base/head/
Кодовая база BSD интересна тем, что обычно использует меньше кода для тех же инструментов, то есть: поддерживает только традиционные параметры, никаких дополнительных параметров, sh — это настоящая оболочка, а не просто ссылка на другую большую оболочку (bash) и т. д. Инструменты, похожие на coreutils, находятся в bin, sbin, usr.bin и usr.sbin.
Вы также можете просматривать те же веб-интерфейсы, если хотите прочитать код для сборки стороннего программного обеспечения (похожего на pkgbuild от arch). NetBSD и DragonFly используют pkgsrc из репозитория NetBSD. OpenBSD и FreeBSD имеют эти фреймворки в своих соответствующих репозиториях.
Другие репозитории, которые могут быть интересны для ваших целей:
- Иллюминации:http://src.illumos.org/source/xref/
- Миникс:http://git.minix3.org/?p=minix.git;a=tree
решение2
Поскольку нет центрального места для разработки с открытым исходным кодом, нет и центрального репозитория, содержащего большую часть программного обеспечения с открытым исходным кодом. Некоторые используют GitHub, BitBucket, частные серверы, Sourceforge, Launchpad и т. д. Так что это действительно распределенная среда, и нет немедленной выгоды от наличия одного репозитория, просто копирующего исходный код.
С другой стороны, бинарные дистрибутивы (поставляющие бинарные файлы вместо исходного кода) обычно предоставляют исходный код для большинства своих пакетов и предоставляют их всем пользователям. Поэтому ваш лучший шанс — использовать инфраструктуру, предоставляемую дистрибутивами. Пожалуйста, имейте в виду, что они не обязательно содержат последние изменения и исправления и могут быть устаревшими.
Примеры загрузки исходного пакета из вашего дистрибутива:
yumdownloader --source packagename
apt-get source packagename
Для Arch посмотрите ответы наответы на похожий вопросна stackoverflow.com.
Если вы просто хотите загрузить исходный код, вы можете использовать packages.debian.org, напримерссылка для coreutils. Это предоставит ссылку для загрузки оригинального пакета ( orig.*
или очищенного исходного кода для некоторых пакетов dsfg.*
). Вы можете сделать то же самое со списком пакетов Arch Linux, например:страница arch coreutils. Download from Mirror
Пакет будет загружен.