distros
Этот модуль реализует основы для определения дистрибутива Linux ("дистро") и родного менеджера пакетов ОС. Его основное назначение — генерировать вывод для пакетов Nimble, таких как:
To complete the installation, run: sudo apt-get install libblas-dev sudo apt-get install libvoodoo
Вышеупомянутый вывод может быть результатом фрагмента кода, подобного:
if detectOs(Ubuntu): foreignDep "lbiblas-dev" foreignDep "libvoodoo"
См. packaging для советов по распространению Nim с помощью пакетов ОС.
Импорты
- strutils, osproc, os
Типы
Distribution {...}{.pure.} = enum Windows, ## some version of Windows Posix, ## some Posix system MacOSX, ## some version of OSX Linux, ## some version of Linux Ubuntu, Debian, Gentoo, Fedora, RedHat, OpenSUSE, Manjaro, Elementary, Zorin, CentOS, Deepin, ArchLinux, Antergos, PCLinuxOS, Mageia, LXLE, Solus, Lite, Slackware, Androidx86, Puppy, Peppermint, Tails, AntiX, Kali, SparkyLinux, Apricity, BlackLab, Bodhi, TrueOS, ArchBang, KaOS, WattOS, Korora, Simplicity, RemixOS, OpenMandriva, Netrunner, Alpine, BlackArch, Ultimate, Gecko, Parrot, KNOPPIX, GhostBSD, Sabayon, Salix, Q4OS, ClearOS, Container, ROSA, Zenwalk, Parabola, ChaletOS, BackBox, MXLinux, Vector, Maui, Qubes, RancherOS, Oracle, TinyCore, Robolinux, Trisquel, Voyager, Clonezilla, SteamOS, Absolute, NixOS, ## NixOS or a Nix build environment AUSTRUMI, Arya, Porteus, AVLinux, Elive, Bluestar, SliTaz, Solaris, Chakra, Wifislax, Scientific, ExTiX, Rockstor, GoboLinux, BSD, FreeBSD, OpenBSD, DragonFlyBSD, Haiku- список известных дистрибутивов Исходный код Редактировать
Константы
LacksDevPackages = {Distribution.Gentoo, Distribution.Slackware, Distribution.ArchLinux}- Исходный код Редактировать
Процедуры
proc foreignCmd(cmd: string; requiresSudo = false) {...}{.raises: [], tags: [].}- Регистрирует внешнюю команду в внутреннем списке команд, которые можно запросить позже. Исходный код Редактировать
proc foreignDepInstallCmd(foreignPackageName: string): (string, bool) {...}{. raises: [Exception, IOError, OSError], tags: [ExecIOEffect, ReadIOEffect, RootEffect, ReadEnvEffect].}- Возвращает родную командную строку дистрибутива для установки 'foreignPackageName' и требуется ли для этого права администратора. Исходный код Редактировать
proc foreignDep(foreignPackageName: string) {...}{. raises: [Exception, IOError, OSError], tags: [ExecIOEffect, ReadIOEffect, RootEffect, ReadEnvEffect].}- Регистрирует 'foreignPackageName' во внутреннем списке внешних зависимостей. Вам необходимо убедиться, что имя пакета Исходный код Редактировать
proc echoForeignDeps() {...}{.raises: [], tags: [].}- Выводит список зарегистрированных внешних зависимостей в стандартный вывод. Исходный код Редактировать
Шаблоны
template detectOs(d: untyped): bool
- Обнаружение дистрибутива/ОС. Для удобства к значению перечисления добавлен необходимый
Distribution.квалификатор. Исходный код Редактировать
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/distros.html