Как узнать, установлен ли DavFS?

Да:

При вызове с командой в качестве аргумента.

Обычно, когда вы запускаете команду, она вызывает forkи exec(, а также канал и т. д. ). Но когда вы добавляете execв начале (, например. exec ls), он не вызывает fork, поэтому оболочка заменяется командой. То есть команда выполняется в том же процессе, что и оболочка в (, оболочка больше не существует ).

При вызове без команды.

Он применяет перенаправления, которые вступают в силу позже.

0
21.03.2021, 17:50
3 ответа

Поскольку вы используете aptдля установки, вы можете просто найти его:

apt search davfs

davfs2/stable 1.5.5-1 amd64
  mount a WebDAV resource as a regular file system

Как видите, в моем случае пакет находится в репозиториях, но не устанавливается. В отличие от, например,.vim:

 apt search vim 

vim/stable,now 2:8.1.0875-5 amd64 [installed]
  Vi IMproved - enhanced vi editor

В качестве альтернативы (и еще немного сохранения -это также будет применяться к пакетам не из репозиториев, а также вручную установленным через.deb-файлы )используйте dpgkдля вывода списка всех локальных и grep имени пакета

dpkg -l | grep davfs

(в моем случае пусто)

dpkg -l | grep vim

ii  vim    2:8.1.0875-5   amd64  Vi IMproved - enhanced vi editor

Где iiозначает «установлено».

1
28.04.2021, 22:58

/proc/filesystemsпоказывает только файловые системы, поддерживаемые ядром. Поддержка DavFS реализована с помощью FUSE в пользовательском пространстве, поэтому она там не показана. Лучший способ проверить, вероятно, просто проверить, существует ли mount.davfsдвоичный файл (, например, используяwhich).

1
28.04.2021, 22:58

/proc/filesystemsперечисляет только те файловые системы, которые в настоящее время известны ядру. Но при mount(src, dst, fstype,...)ядро ​​попытается динамически загрузить соответствующий модуль ядра, если он доступен и еще не загружен.

Для некоторых файловых систем, таких как nfsили aufs, для настройки монтирования требуется вспомогательная программа. Это будет mount.fsname. В Debian яблочко первое, что делает команда mountпри запросе на монтирование файловой системы с -t fsname, — это ищет mount.fsnameв /sbin, /sbin/fs.dи /sbin/fsв указанном порядке.

davfs2— это файловая система, реализованная в пользовательском пространстве. Драйвер ядра будет fuse, а хелпер mount.davfs2будет отвечать за запуск программы пользовательского пространства и соединение ее с fuse.

Итак, здесь, чтобы проверить, доступен ли fsname, вы можете сделать:

has_fs() {
  [ -e "/sbin/mount.$1" ]        || # helper found in /sbin
    [ -e "/sbin/fs.d/mount.$1" ] || # helper found in /sbin/fs.d
    [ -e "/sbin/fs/mount.$1" ]   || # helper found in /sbin/fs
    < /proc/filesystems FS=$1 awk '
      $NF == ENVIRON["FS"] {found = 1; exit}
      END {if (!found) exit 1}'  || # currently available in kernel
    modprobe -c | FS=fs_$1 awk '
      $1 == "alias" && $2 == ENVIRON["FS"] {found = 1; exit}
      END {if (!found) exit 1}'     # available via a kernel module
}

Путь поиска помощника монтирования может отличаться в разных системах. Обратите внимание, что доступность помощника является убедительным признаком, но не гарантией того, что драйвер будет доступен (или что вы сможете смонтировать ФС этого типа ).

0
28.04.2021, 22:58

Теги

Похожие вопросы