Как говорит @Kusanalanda, некоторые из этих файлов разрежены.
Кроме того, vapps, развернутые из одного vmdk, на самом деле представляют собой жесткую ссылку на один файл, отсюда -файлы delta.vmdk с различиями.
Лучшей стратегией обычно является клонирование виртуальной машины; что касается резервного копирования файлов, вы можете использовать списки исключений (файл, каталоги ), поскольку некоторые из этих файлов vmdk носят временный характер. например. они будут уничтожены, как только vapp будет закрыт.
В качестве альтернативы можно использовать специализированное программное обеспечение для резервного копирования, которое понимает внутреннюю работу vmware, если таковая имеется.
Посмотрите страницу Стандарт иерархии файлов . Вы никогда не должны позволять pacman
записывать файлы в $HOME
. Этот каталог полностью принадлежит пользователю. pacman
управляет файлами, например. /usr/bin
или /usr/lib
, и вы никогда не должны вручную изменять файлы там.
makepkg
копирует файлы из srcdir
в pkgdir
. Обычно это означает make DSTDIR=$pkgdir install
или подобное.После этого makepkg
создает файл tar
из каталога pkgdir
.
pacman
устанавливает содержимое файла tar
в --root
или --sysroot
, но оба они не должны использоваться для установки программного обеспечения в пользовательский каталог.
Вы можете использовать makepkg
для копирования файлов в $HOME/bin
, изменив функцию package()
в вашем PKGBUILD
. Это то, что вы описываете в вопросе, но я бы предпочел, чтобы makepkg
создал пакет и вручную скопировал содержимое каталога pkg
в $HOME/.local/{bin,?}
. Теперь вы уверены, что все необходимые файлы установлены и все файлы в $HOME
по-прежнему принадлежат вам.
Если вы хотите, чтобы этот пакет был в базе данных pacman, вы можете создать пустой фиктивный пакет, который отслеживает зависимости и предотвращает установку конфликтующих пакетов. Вы можете изменить функцию package()
так, чтобы она устанавливала только текстовый файл с комментарием.
Сделайте файлы установки функции package()
в $pkgdir/home/you/bin
и установите пакет с помощью pacman
.