Intereting Posts
Отменить автоматическое сохранение второго внутреннего жесткого диска при загрузке Что означает «ii» в выводе команды «dpkg -list»? Замена MeeGo на Ubuntu на нетбуке для разработки? Автоматически запускать ntfsfix при загрузке? Что означает значение «nice» в статистике использования CPU Нет логотипа Ubuntu во время запуска Будет ли Ubuntu работать с воспроизводимыми сборками? VirtualBox не работает Способ измерения использования компьютера через активную / неактивную заставку экрана? cifs, smb – Не удается монтировать (разрешено отклонение) или перемещаться по общей папке Установка рекомендуемых / рекомендуемых пакетов? В чем разница между созданием частной закрытой папки и шифрованием всего каталога Home во время установки? Ошибка Insmod в grub: символ не найден: grub_realidt Доверяем: проблема мерцания с драйвером open source xorg на ATI RV710 Ubuntu 14.04 Экран Freezes Случайно с NVidia и можно исправить с помощью Ctrl + Alt + F2, затем Ctrl + Alt + F7

Как получить и изменить исходный код пакетов, установленных с помощью apt-get?

Я предполагаю, что все приложения, установленные через apt-get являются открытым исходным кодом; но для тех, которые доступны таким образом, где я могу получить исходный код для этих приложений, а также обновить их?

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

В данном случае я имею в виду пакет hellanzb

Используйте команду apt-get source <package> (не используйте sudo с ней), чтобы загрузить исходный код пакета.

От man apt-get :

  source source causes apt-get to fetch source packages. APT will examine the available packages to decide which source package to fetch. It will then find and download into the current directory the newest available version of that source package while respect the default release, set with the option APT::Default-Release, the -t option or per package with the pkg/release syntax, if possible. Source packages are tracked separately from binary packages via deb-src type lines in the sources.list(5) file. This means that you will need to add such a line for each repository you want to get sources from. If you don't do this you will properly get another (newer, older or none) source version than the one you have installed or could install. If the --compile option is specified then the package will be compiled to a binary .deb using dpkg-buildpackage, if --download-only is specified then the source package will not be unpacked. A specific source version can be retrieved by postfixing the source name with an equals and then the version to fetch, similar to the mechanism used for the package files. This enables exact matching of the source package name and version, implicitly enabling the APT::Get::Only-Source option. Note that source packages are not tracked like binary packages, they exist only in the current directory and are similar to downloading source tar balls. 

Чтобы создать пакет из исходного кода, сначала установите зависимости сборки:

 sudo apt-get build-dep <package> 

Затем используйте dpkg-buildpackage для создания файла .deb . Из краткого справочного листа APT и Dpkg :

dpkg-buildpackage Создает пакет Debian из дерева исходных текстов Debian. Вы должны находиться в главной директории исходного дерева, чтобы это работало. Использование образца:

  dpkg-buildpackage -rfakeroot -uc -b 

Где -rfakeroot инструктирует его использовать программу fakeroot для имитации прав root (для целей владения), -uc означает «Не криптографически подписывать журнал изменений», а -b означает «Создавать только двоичный пакет»,

В терминале cd в каталог, содержащий источник пакета (например, ~/code/hellanzb-0.13 ), и выполните следующую команду:

 dpkg-buildpackage -rfakeroot -uc -b 

Если сборка выполнена успешно, будет файл .deb расположенный в родительском
(например, ~/code/hellanzb_0.13-6.1_all.deb ).

Как правило, вы можете получить источник установленного пакета, выполнив следующую процедуру:

  1. Включить исходные репозитории. Откройте панель инструментов (верхняя левая кнопка) и найдите sources . Это должно вызвать Software & Updates , запустить ее и убедиться, что у вас выбран вариант «Исходный код»:

    введите описание изображения здесь

  2. Откройте терминал и запустите эту команду:

     apt-get source vlc 

Это загрузит источники vlc в ваш текущий каталог, и вы сможете просматривать их на досуге.

Конечно, в случае vlc вы также можете загрузить их прямо с веб-сайта videolan.org: https://www.videolan.org/vlc/download-sources.html

Вы можете напрямую использовать apt-get source --compile :

 sudo apt-get build-dep <package> sudo apt-get source --compile <package> 

Работал для меня. Файл .deb завершается в директории, из которой вы запускали команду.

Чтобы получить дополнительную информацию о пакете, включая URL-адрес вверху канала и контакты проекта / программы, вы можете посмотреть файл с авторским правом (ссылка на сайт packages.debian.org ).

Когда пакет включен и установлен в вашей системе, вы также можете прочитать файл авторского права прямо в /usr/share/doc/$package_or_program_name/copyright .

Посмотрите, как загрузить исходный код пакета Debian? ,

Как упоминалось в https://askubuntu.com/a/81889/52975, существует также подход, специфичный для Ubuntu, с bzr .

Получите последнюю версию:

 bzr branch lp:ubuntu/hello 

TODO: это перестало работать на Ubuntu 16.04 Xenial, в противном случае с: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/". , bzr branch lp:ubuntu/wily/hello works и bzr branch lp:ubuntu/xenial/hello снова не работает. По какой-то причине https://code.launchpad.net/ubuntu/+source/hello не показывает Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /Здравствуйте

Конкретная версия:

 bzr branch lp:ubuntu/trusty/hello 

Вы также можете использовать pull-lp-source :

 sudo apt-get install ubuntu-dev-tools pull-lp-source hello 

Затем вы сможете отредактировать его:

 cd hello vim some_file 

Восстановите его:

 dch -i debcommit bzr bd -- -b -us -uc 

И установите его:

 sudo dpkg -i ../hello.deb 

Руководство по упаковке Ubuntu является хорошим источником информации.