Назад | Перейти на главную страницу

Могу ли я быть уверен, что в каждом дистрибутиве, производном от Debian, будет пакет «base-files», содержащий «/ etc / debian_version»?

Мне нужна быстрая и надежная команда, чтобы убедиться, что Linux, в которой я работаю, основан на Debian. Кажется, работает следующая команда. Он также возвращает версию Debian:

dpkg -L base-files 2>/dev/null | grep '^/etc/debian_version$' >/dev/null 2>&1 && cat /etc/debian_version

Моя предыдущая идея заключалась в том, чтобы использовать dpkg -S /etc/debian_version чтобы узнать, принадлежит ли он какому-либо пакету, независимо от имени. Но dpkg -S медленный.

У меня только сохраняющиеся сомнения: существуют ли более старые дистрибутивы, производные от Debian, в которых мое предположение не выполняется? Есть ли способ лучше?

Лучше всего проверить, что то, что вы хотите сделать, возможно, а не полагаться на дистрибутив. Например, моя коробка Ubuntu утверждает, что это "squeeze / sid". Если вы хотите установить что-то через dpkg, убедитесь, что dpkg находится там, где вы ожидаете, что это исполняемый файл. Если вы хотите изменить настройки сети? Убедитесь, что существует / etc / network / interfaces. Проверьте такие инструменты, как update-rc.d и т. Д.

Вам также следует использовать / etc / lsb-release вместо / etc / debian_version.

Я не верю, что вы можете сделать такое предположение, нет.

Посмотри пожалуйста: