Где скачать исходный код Linux?

Скажем, меня интересует источник одной конкретной утилиты Linux, например factor. Где я могу найти исходный код этой утилиты?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
5 322
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Обычно исходный код можно найти на веб-сайте программы, если она имеет открытый исходный код. В этом случае здесь, поскольку фактор является частью coreutils.

Спасибо за ссылку.

Bill the Lizard 12.01.2009 00:14
Ответ принят как подходящий

Я напечатал

man factor

Спустился вниз и нашел «GNU coreutils 6.10». Итак, я погуглил "coreutils" и ... нашел сайт, на который только что ссылался joschi.

Спасибо, это (общее объяснение того, как найти исходный код для данной программы) - это то, что я искал.

Bill the Lizard 12.01.2009 00:03

Это не может быть хорошей идеей для всех вещей. Некоторые дистрибутивы могли модифицировать оригинал для своего распространения. Возможно, лучше использовать программное обеспечение для управления пакетами, которое поставляется с вашей системой (управление пакетами может получать как исходные, так и двоичные файлы). См. «Saua» ниже.

Martin York 12.01.2009 10:08

Вы также можете узнать, в каком пакете находится двоичный файл, из загрузки, которая содержит исходный код.

В Debian (и Ubuntu, и во всем остальном, основанном на Debian) вы делаете это следующим образом:

$ dpkg -S /usr/bin/factor
coreutils: /usr/bin/factor
$ apt-get source coreutils

Первая команда проверит, какой пакет содержит файл, который вы ищете (используйте «which factor», чтобы узнать, какой двоичный файл выполняется, когда вы просто набираете «factor»).

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

Я почти уверен, что в дистрибутивах на основе rpm есть похожий механизм, но я не знаю их команд.

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

Bill the Lizard 12.01.2009 00:10

Мне это удобно, потому что мне даже не нужно запускать браузер. Он просто получает все, что я хочу.

Joachim Sauer 12.01.2009 00:15

В Gentoo просто посмотрите ебилд, с которым вы скомпилировали пакет: D.

Если вы не уверены?

    # which factor 
    /usr/bin/factor
    # grep '/usr/bin/factor' /var/db/pkg/*/*/CONTENTS
    /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj /usr/bin/factor 5aaf903daa4345efb11618b3cb47e9a5 1224224574
    /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj /usr/lib64/debug/usr/bin/factor.debug 517d965636850633e9b15926dde8c222 1224224575
    # cat /var/db/pkg/sys-apps/coreutils-6.12-r2/SRC_URI
    ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.12.tar.lzma mirror://gnu/coreutils/coreutils-6.12.tar.lzma mirror://gentoo/coreutils-6.12.tar.lzma mirror://gentoo/coreutils-6.12-patches-1.0.tar.lzma http://dev.gentoo.org/~vapier/dist/coreutils-6.12-patches-1.0.tar.lzma
    # cat /var/db/pkg/sys-apps/coreutils-6.12-r2/HOMEPAGE
    http://www.gnu.org/software/coreutils/

Но, конечно, исходный код, вероятно, все еще доступен в /usr/portage/distfiles.

Чтобы найти пакет, из которого был получен двоичный файл, в системе на основе rpm вы можете ввести:

$ rpm -qf /usr/bin/factor

который напечатает имя пакета. Вместо этого с:

$ rpm -qif /usr/bin/factor

вы также получите информацию о пакете, включая во многих случаях его домашнюю страницу.

Исходные пакеты RPM также существуют, но как их получить, зависит от высокоуровневого менеджера пакетов, используемого поверх RPM (yum, urpmi, apt-get4 для rpm, ...).

В большинстве систем также / usr / share / doc / содержит некоторую документацию по программе, и ссылка на веб-сайт довольно часто находится где-то там, возможно, в README.

Обычно я нахожу ссылку на источник, домашнюю страницу и другую полезную информацию, выполняя поиск по свежее мясо.

Вы можете проверить SourceForge.net.

Другой, очень хороший подход - использовать Google Code Search. Например, поиск фактор coreutils (см. Справочную страницу или factor --help, чтобы узнать, что это из coreutils) дал пакет в качестве второго результата. В двух щелчках мыши я просматривал factor.c в Интернете.

Google Code Search выполняет поиск по большинству общедоступных исходных кодов. Вы можете использовать регулярные выражения и множество параметров расширенного поиска, включая ограничение по языку и лицензии.

Хороший. Что мне действительно нравится в этом, так это то, что любые #included файлы отображаются в виде ссылок в исходном коде, что упрощает навигацию по сложному исходному коду.

Bill the Lizard 29.01.2009 22:12

Другие вопросы по теме