make install -j8: ldconfig не может работать параллельно - PullRequest
0 голосов
/ 21 марта 2020

У меня есть библиотека, которую я компилирую с make и устанавливаю с make install.

. Она имеет несколько модулей, которые могут быть установлены отдельно с чем-то вроде make install_foo, а make install - это просто Оболочка, в которой есть все эти требования.

Каждый модуль (install_foo, install_bar, ...) выполняет $(MAKE) conf_ld в качестве своей последней команды:

.PHONY: conf_ld
conf_ld:
    @echo   "   LDCONFIG"
    $(Q)cp -r -f $(v)   $(ETC_DIR)/ld.so.conf.d/*       \
                    $(DESTDIR)/etc/ld.so.conf.d/
    $(Q)ldconfig
    @echo

Проблема является то, что если вы пытаетесь установить с несколькими ядрами (например, -j 8), ldconfig работает параллельно и завершается ошибкой:

    LDCONFIG
    LDCONFIG
    LDCONFIG
ldconfig: ldconfig: Renaming of /etc/ld.so.cache~ to /etc/ld.so.cache failedRenaming of /etc/ld.so.cache~ to /etc/ld.so.cache failed: No such file or directory: No such file or directory

Есть ли способ решить эту проблему, или это невозможно установить параллельно?

...