То, что можно сделать, использовать файловую систему FUSE как bindfs
в сочетании с a LD_PRELOAD
угонщик, который отключает mkdir
и rmdir
системные вызовы. Как создают a wrapper.c
файл с:
#include <errno.h>
int mkdir() { errno = EPERM; return -1; }
int rmdir() { errno = EPERM; return -1; }
Скомпилируйте его с:
gcc -fPIC -shared -o wrapper.so wrapper.c
И выполненный:
LD_PRELOAD=$PWD/wrapper.so bindfs the-dir the-dir
Который смонтируется the-dir
по себе, но без способности создания или удаления каталогов.
Вы все еще сможете переименовать каталоги все же.
Похоже на ошибку Ubuntu #1236951. Обходные пути и статус исправления смотрите по ссылке.
Вы можете запустить apt-get install -f
. Если это не исправит вашу систему, то что-то действительно не так, и исправление может заключаться в удалении пакетов, связанных с TeX, и повторной попытке.
У меня такая же ситуация, удалите старый каталог, затем переустановите:
sudo apt remove --purge tex-common texlive-*
sudo rm -rf /etc/texmf/
sudo apt install tex-common texlive-base texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended latex-cjk-all