Короткий ответ: чтобы получить все это, вы должны загрузить исходные пакеты индивидуально; для Ubuntu, как правило, не существует единой общедоступной службы просмотра. Но мы работаем над этим!
Длинный ответ:
Канонический исходный код для всей Ubuntu доступен в виде исходных пакетов. Вы можете перейти на https://launchpad.net/ubuntu/+source/hello , например, щелкнуть по одному из номеров версий, и вы можете скачать исходные коды из раздела «Загрузки». Чтобы найти источник для каждой версии hello, когда-либо опубликованной Ubuntu, вы можете перейти по ссылке, чтобы просмотреть ее полную историю публикаций, и щелкнуть там по любой строке номера версии. Тот же шаблон URL работает для любого исходного пакета; вам просто нужно знать имя исходного пакета.
Исходные пакеты являются каноническими, потому что они являются основным модулем, с которым разработчики Ubuntu работают над созданием Ubuntu. Но они несколько громоздки; распаковка исходного пакета требует некоторых инструментов. dget
из devscripts
пакета может загрузить, проверить и распаковать исходный пакет одной командой, если вы передадите ему URL-адрес файла dsc.
Это, конечно, не очень удобно.
Несколько лет назад были попытки сделать это лучше. Ubuntu назвал это «Ubuntu Distributed Development», или, если коротко, UDD, и разработал распределенную систему контроля версий под названием Bazaar, чтобы попытаться решить эту проблему. В рамках этих усилий пакеты с исходным кодом были автоматически импортированы в хостинговую платформу Bazaar VCS на Launchpad по мере их публикации. В то время вы можете теоретически найти исходный код для любого пакета в code.launchpad.net
. Например, вы все еще можете увидеть импортированные из Bazaar исходные коды для hello
пакетов Precise и Trusty Ubuntu, выпущенных по адресу https://code.launchpad.net/ubuntu/+source/hello .
Базар сосредоточился на конкретном наборе вариантов использования и имел очень хорошо продуманный интерфейс командной строки. Jelmer Vernooij, один из его разработчиков, написал интересную ретроспективу о разработке Bazaar , в том числе о том, как она сочетается с другими системами распределенного контроля версий, разрабатываемыми в то время.
Со временем мерзавец захватил мир, и базар отошел на второй план. Между тем UDD начал показывать свои трещины. Все большее количество пакетов не удалось импортировать, и для их устранения необходимо вмешательство вручную. Это означало, что, несмотря на то, что разработка Ubuntu для пакетов с исходным кодом продолжалась, представление этих пакетов в Bazaar code.launchpad.net
не удалось обновить.
В конце концов, импортер UDD был отключен, потому что никто не поддерживал его, и не считалось, что его стоит поддерживать.
Одновременно с этим в 2014 году я опубликовал несколько заметок о том, как я использовал git для разработки Ubuntu ; хотя в то время пакеты Ubuntu вообще не поддерживались в git.
Этот рабочий процесс, основанный на git, был принят моей командой (командой Ubuntu Server), и мы продолжили работу по обеспечению доступности исходников Ubuntu через git. Мы с коллегой начали писать серию блогов (пока не законченных), объясняющих, что мы делаем.
Репозитории git, которые вы нашли для некоторых пакетов, являются результатом нашего импортера ( ~usd-import-team
). Мы все еще активно работаем над этим, поэтому еще не все пакеты доступны таким образом. Мы еще не на стадии "бета", ожидаем повторного импорта всех пакетов до того, как мы будем готовы (с нарушением всех хэшей предыдущих коммитов), и пока не поддерживаем все импортированные репозитории в соответствии с последними разработками Ubuntu. Но там, где мы импортировали определенную версию пакета, она должна быть достаточно точной для просмотра.
Мы надеемся начать импортировать все пакеты и автоматически обновлять их в ближайшие несколько месяцев.
Одна из наших целей - точно решить вопрос, который вы задаете: иметь единственное официальное место на Launchpad, где можно просматривать весь исходный код Ubuntu.