Мне нужен исходный код кода пакета, установленного с помощью команды apt-get или apt в Debian или Ubuntu.

Как получить или загрузить исходный код пакета в системе Debian или Ubuntu?

Как скачать исходный код пакета Ubuntu / Debian?

Исходный код — это не что иное, как текстовая версия программного обеспечения Debian или Ubuntu.

Как извлечь исходный код из пакета RPM

Обычно мы устанавливаем скомпилированное программное обеспечение, используя команду apt-get command / apt.

Однако иногда нам нужен исходный код, непосредственно написанный на языке программирования.

Исходный код полезен для применения пользовательского патча или добавления / удаления существующих функций из программного обеспечения.

Первый шаг для этого — загрузить исходный код.

Давайте посмотрим, как загрузить исходный код (файл DEB) с помощью командной строки.

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

Процедура загрузки исходного кода для Ubuntu Linux следующая.

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

Шаг 1 — Добавим репозиторий исходного кода

Отредактируйте файл /etc/apt/sources.list, запустите:

$ sudo vi /etc/apt/sources.list

Убедитесь, что deb-src ссылается на исходный код дистрибутива Ubuntu следующим образом:

# Sources specification for the Ubuntu 20.04 LTS distro #
deb-src http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse

Где:

  • deb-src: указывает, что вам нужен исходный код файлов .DEB.
  • http://archive.ubuntu.com/ubuntu: URL для получения индекса и исходного кода файлов .deb.
  • focal: Ubuntu Linux 20.04 LTS кодовое имя
  • main restricted universe multiverse :: имя компонента репо, как например main, restricted, universe, и multiverse

Шаг 2 — Обновим индекс пакетов

Запустите следующую команду, чтобы повторно синхронизировать файлы индекса пакета из их источников:

$ sudo apt-get update
# или #
$ sudo apt update

Шаг 3 — Скачаем исходный код пакета Ubuntu

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

$ sudo apt-get source {pkg1}
$ sudo apt-get source bash

Вы можете увидеть следующую ошибку, если вы забыли настроить deb-src, как описано в шаге № 1:

E: You must put some ‘source’ URIs in your sources.list

Шаг 4 — Разбор загруженных файлов исходного кода

Давайте запустим команду ls, чтобы увидеть исходный код пакета:

$ ls -l

total 5512
drwxrwxr-x 15 vivek vivek    4096 Jul 19 10:32 bash-5.0
-rw-r--r--  1 vivek vivek   74356 Jun 29 14:43 bash_5.0-6ubuntu1.1.debian.tar.xz
-rw-r--r--  1 vivek vivek    2418 Jun 29 14:43 bash_5.0-6ubuntu1.1.dsc
-rw-r--r--  1 vivek vivek 5554808 Jan 14  2019 bash_5.0.orig.tar.xz

По умолчанию исходный код извлекается в каталог bash-5.0:

$ cd bash-5.0
$ ls

Архив исходного кода bash с окончанием .tar.xz хранится в файле bash_5.0.orig.tar.xz.

Файл описания с окончанием .dsc содержит как имя пакета, так и содержимое (после ключевого слова Source:).

Тарбол, с любыми изменениями в исходном коде, плюс все файлы, созданные для пакета Debian, хранятся в файле bash_5.0-6ubuntu1.1.debian.tar.xz.

Если опция —download-only будет передана команде apt-get, то исходный пакет не будет распакован:

$ sudo apt-get --download-only source source bash

После загрузки мы можем извлечь исходные файлы для bash следующим образом:

$ dpkg-source -x /path/to/pkg.dsc
$ dpkg-source -x bash_5.0-6ubuntu1.1.dsc

Также возможно собрать пакеты:
$ sudo apt-get --build source {pkg}
$ sudo apt-get --build source bash
Другой вариант — внести изменения в файлы debian / rules
$ vi bash-5.0/debian/rules
Далее мы можем создать собственный пакет bash следующим образом:
$ export EDITOR=vim
$ dch -n
Убедитесь, что мы удовлетворяем зависимости сборки исходного пакета и чтобы избежать ошибок, установите эти библиотеки и инструменты:
$ sudo apt-get -y build-dep bash
Наконец, соберите пакет Debian:
$ debuild
Проверьте новые пакеты:
$ cd ..
$ ls *.deb
Установите их:
$ sudo dpkg -i bash_{version}*.deb

Как скачать исходный код пакета Debian

Процедура такая же, как и в дистрибутиве Ubuntu, но синтаксис URL меняется следующим образом:

$ sudo vi /etc/apt/sources.list

Измените / обновите следующим образом:

# source repo for Debian 10 buster #
deb-src deb http://deb.debian.org/debian buster main

Сохраните и закройте файл в vim, а затем выполните следующую команду:
$ sudo apt-get update
Давайте загрузим исходный код веб-сервера Apache:
$ apt-get source apache2

Заключение

Мы объяснили, как добавить репозиторий Ubuntu / Debian и загрузить исходный код пакета по имени.

Команда apt-get source полезна в тем случаях, когда вы хотите изучить конкретный пакет Debian.

Также полезно знать, какие параметры времени компиляции включены для конкретного пакета.

И, наконец, мы можем пересобрать пакеты для добавления или удаления компонентов.

Для более подробной информации посмотрите следующие man-страницы, набрав команду man:

$ man apt
$ man apt-get
$ man 5 sources.list
$ man debuild
$ man dch

Как управлять пакетами с помощью APT в Ubuntu 18.04 LTS

Поделитесь статьей:

One thought on “📦 Как получить исходный код пакета с помощью команды apt на Debian или Ubuntu

Добавить комментарий