Я использую Arch Linux. Я хочу сделать то же самое, что и apt-get source coreutils
; можно ли загружать источники с Pacman? Я не нашел решения в man-страницах.
Как я могу получить исходный код пакета?
Я использую Arch Linux. Я хочу сделать то же самое, что и apt-get source coreutils
; можно ли загружать источники с Pacman? Я не нашел решения в man-страницах.
Как я могу получить исходный код пакета?
Как уже упоминалось, вы можете использовать ABS (Arch Build System):
Установите его с помощью pacman:
sudo pacman -S base-devel abs
Сначала загрузите дерево ABS:
sudo abs
Затем получите конкретный пакет:
sudo abs [package_name]
Затем скопируйте пакет, источник которого вы хотите иметь, из локального дерева абс (например, /var/abs/core/findutils
) в другой каталог, например. /home/blabla/abs
Затем запустите makepkg
:
если вы хотите получить источники и не хотите создавать пакет, который вы можете запустить makepkg -od
в противном случае выполните makepkg -s
, который автоматически обработает все зависимости пакета
Следите, чтобы becaouse makepkg перезаписал ваши изменения, используйте makepkg -e
для создания локальных источников вместо этого
Если вы хотите установить пакет, который вы создали, запустите
pacman -U name-of-package.xz
pacman -S abs
pacman -S base-devel
vim /etc/abs.conf
или:
nano /etc/abs.conf
. Удалите !
перед соответствующими репозиториями, например:
REPOS=(core extra community !testing)
abs
. Теперь дерево ABS создано под /var/abs. Вышеупомянутый шаг выполняется один раз для всех (запустите abs
время от времени, чтобы обновить исходное дерево, хотя). Далее,скажем, если вы хотите, чтобы исходный код команды Linux find
узнать, к какому пакету принадлежит команда find
:
pacman -Qo $(which find)
. В результате
"/usr/bin/find принадлежит findutils 4.4.2-3".
cp -r /var/abs/core/findutils /home/yourname/a_directory
cd /home/yourname/a_directory
makepkg -o
Теперь у вас есть исходный код.
Изменить: этот ответ устарел из-за изменений в АБС.
Вы получаете источники пакетов из репозитория SVN Arch Linux, называемого ABS.
Сначала найдите пакет онлайн: http://www.archlinux.org/packages/?q=coreutils
Затем, на странице сведений о пакете, с правой стороны используйте ссылки SVN, например: http://repos.archlinux.org/wsvn/packages/coreutils/trunk/
И там у вас есть сладкая кнопка "Загрузить", в этом случае это приводит к: http://repos.archlinux.org/wsvn/packages/coreutils/trunk/?op=dl&isdir=1
Это немного сложнее, чем apt-get source
. Но, возможно, вы найдете инструмент для AUR, который выполняет эту работу для вас, например yaourt поддерживает создание из источников и их экспорт.