Dev start faq

Материал из ALT Linux Wiki

Ответы на часто встречающиеся вопросы при разработке для начинающих

Вложенный Git-репозиторий

Если у вас при сборке пакета при структуре:

project
├── .gear
├── .git
├── README.md
├── project.spec
└── project-src

Выпадает ошибка:

gear: .gear/rules line 1: tree "project-src" not found in "HEAD"

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

Проверить данную теорию можно с помощью команды:

$ git ls-tree HEAD

Выполните ее в git-репозитории вашего проекта.

$ git ls-tree HEAD
040000 tree 9503d98435094b115ff5b10533e7e825b05f7198	.gear
100644 blob 1bc32756139c9859a7daeb0ec3ddb70084cf6a58	README.md
160000 commit 98cd2f96525a0e6d105db69e7715b777ef4e9ecf	project-src <-- [! Смотрим сюда!]
100644 blob 7b33945a1aeb0ecfa65a9d7391a002d1705578ac	project.spec

У всех файлов и каталогов значения blob (файл) или tree (каталог), а у этого commit.

Значит, возможно склонировав в папку с проектом исходники для сборки (или склонировав каталог с исходниками после клонирования), вы создали вложенный git-репозиторий (сабмодуль [submodule]) - Git апстримовского проекта в Git проекта для ALT. Он-то и не дает собрать проект.

Что делать в данной ситуации?

1. Удаляем сабмодуль

$ git submodule deinit -f project-src
$ git rm -f project-src
$ rm -rf .git/modules/project-src

2. Добавляем каталог как обычный

$ cp -r path/to/your/project-src .
$ git add project-src
$ git commit -m "Добавил project-src как обычный каталог"

Файлы *.PC

Расширение .pc в контексте сборки Linux относится к конфигурационным файлам инструмента pkg-config, который используется для помощи при компиляции приложения.

Они относятся к пакету pkg-config.

Файлы PKG-Config обеспечивают механизм для хранения различной информации о библиотеках и пакетах. Информация, хранящаяся в файлах .pc, включает в себя компилятор и флаги компилятора, необходимые для использования указанной библиотеки, а также любые другие соответствующие метаданные.