Как я могу найти исходный код Ubuntu?
Как я могу найти исходный код, используемый в Ubuntu?
Есть уведомление, которое я хотел бы изменить, чтобы включить больше данных, но не ясно, в какой пакет он входит. Но он включает в себя довольно специфическую строку, по которой будет легко искать. Я знаю, что в Ubuntu включено большое количество проектов, но я надеюсь, что есть хороший способ найти источник, когда неясно, за какую программу отвечает.
5 ответов
Если это так, 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
Есть веб-сайт Ubuntu Code Search, который позволяет вам искать исходный код всех пакетов в репозиториях Ubuntu: http://ubuntu-codesearch.surgut.co.uk/
Похоже, что вышеупомянутый сайт некоторое время не работал. Я постараюсь связаться с сопровождающим.
Редактировать: я говорил с сопровождающим, и этот проект в настоящее время не является приоритетным. Я бы порекомендовал использовать поиск кода Debian, поскольку мы делимся с ними множеством пакетов / кода: https://codesearch.debian.net/
Ответ, который я знаю, вы боялись:
Загрузите все исходные пакеты и найдите их локально. Это около 40 ГБ, GZIP. Я бы начал с установки apt-mirror только с deb-src
записей.
Я знаю, что опоздал, но все же, имя пакета libnotify и исходный код для него здесь http://libnotify.sourcearchive.com/documentation/0.4.4/notify-send_8c-source.html
Ubuntu использует исходный код Debian Linux. Но вы должны знать, что linux - это ядро (http://www.kernel.org/), а дистрибутив - это программное обеспечение (http://www.gnu.org/), поставляемое в комплекте с ним. Вы можете получить репозиторий Ubuntu Source с сайта archive.ubuntu.com. Вы также можете обратиться к https://code.launchpad.net/ubuntu