Есть туториал как добавить glibc без перезаписи системной из проекта. Он используется для тестирования сборок. Более сложной частью было бы указать установленному компилятору использовать скомпилированную версию lib вместо системной.
--link
заставляет cp
создавать жесткие ссылки вместо копирования. После завершения «копирования», при условии, что оно находится в той же файловой системе (, которая требуется для жестких ссылок ), на диске присутствует один экземпляр файла с двумя или более записями каталога, указывающими на него. Это и есть желаемое внешнее состояние, т.е. видно то, что несколько записей каталога указывают на один и тот же файл — они указывают на один и тот же инод. Изменения, внесенные в одну из записей каталога, будут видны и в другой.
--reflink=always
запрашивает оптимизированную копию, если это возможно. Это может принимать различные формы; наиболее известным является копирование -на -запись, но его также можно реализовать как серверное -копирование в сетевых файловых системах. После завершения копирования может случиться так, что на диске существует единственная копия блоков данных, но есть два файла, и каждая запись каталога указывает на другой файл. Изменения, сделанные через одну запись каталога, не будут видны через другую; каждый файл живет отдельной жизнью (, за исключением побочных -эффектов общих блоков данных, например. повреждение диска повлияет на оба файла ).
Иными словами, --link
явно запрашивает создание новых записей каталога, указывающих на один и тот же файл, с общими последующими изменениями. --reflink=always
запрашивает создание новых файлов с потенциальной оптимизацией и изолированными последующими изменениями.
В качестве альтернативы mv
--link
более подходит, чем --reflink=always
— это приведет к меньшей работе операционной системы.