Как я могу найти исходный код Ubuntu?

Как я могу искать в исходном коде, используемом в Ubuntu?

Есть уведомление, которое я хотел бы изменить, чтобы включить больше данных, но не ясно, в какой пакет он входит. Но он включает в себя довольно специфическую строку, по которой будет легко искать. Я знаю, что в Ubuntu включено большое количество проектов, но я надеюсь, что есть хороший способ найти источник, когда неясно, какая программа ответственна.

8
задан 16 February 2012 в 19:30

5 ответов

Существует веб-сайт поиска кода Ubuntu, который позволяет вам искать исходный код всех пакетов в репозиториях Ubuntu: http://ubuntu-codesearch.surgut.co.uk/

Вышеуказанный сайт, похоже, некоторое время не работал. Я постараюсь связаться с сопровождающим.

Редактировать: Я говорил с сопровождающим, и в данный момент этот проект не является приоритетным. Вместо этого я бы рекомендовал использовать Поиск кода Debian, поскольку мы делимся с ними множеством пакетов / кода: https://codesearch.debian.net/

0
ответ дан 16 February 2012 в 19:30

Ответ, который я знаю, вы боялись:

Загрузите все исходные пакеты и найдите их локально. Это около 40 ГБ, GZIP. Я бы начал с установки apt-mirror только с deb-src записями.

0
ответ дан 16 February 2012 в 19:30

Если это так, Google должен быть в состоянии помочь вам - он проиндексировал тонн общедоступного исходного кода. Я был бы очень удивлен, если бы он не нашел что-то.

Если это не удастся (или любой другой вид веб-поиска), strings - довольно удобное небольшое приложение. Он читает все строки из файла, даже если он двоичный. Я взломал, и вы можете использовать это, чтобы найти фразу в любом месте на вашем компьютере. Эта версия ищет «плохого» в /usr/bin

find /usr/bin -exec bash -c 'if [[ $(strings {} | grep -i bad) ]]; then echo "{}"; fi' \;

Это, очевидно, довольно хардкорный способ ведения дел. Но подождите, это еще не все. Вы можете найти пакет для каждого результата на ходу:

find /usr/bin -exec bash -c 'if [[ $(strings {} | grep -i bad) ]]; then dpkg -S "{}"; fi' \;

Теперь это то, что я называю потрясающим. Вот оно в действии, ищем «Нет такого устройства»

oli@bert:/var/log$ find /usr/bin -exec bash -c 'if [[ $(strings {} | grep -i "No such device") ]]; then dpkg -S "{}"; fi' \;
handbrake-gtk: /usr/bin/ghb
usbutils: /usr/bin/usbhid-dump
0
ответ дан 16 February 2012 в 19:30

Я знаю, что опоздал, но все же, имя пакета - libnotify, и его исходный код находится здесь http://libnotify.sourcearchive.com/documentation/0.4.4/notify-send_8c-source.html [ 110]

0
ответ дан 16 February 2012 в 19:30

Ubuntu использует исходный код Debian Linux. Но вы должны знать, что linux - это ядро ​​(http://www.kernel.org/), а дистрибутив - это программное обеспечение (http://www.gnu.org/), поставляемое с ним. Вы можете получить репозиторий Ubuntu Source с сайта archive.ubuntu.com. Вы также можете обратиться к https://code.launchpad.net/ubuntu

0
ответ дан 16 February 2012 в 19:30