Spec-Zone.ru › Homebrew

Модуль: OS::Linux Приватный

Расширен модулем:
Utils::Output::Mixin
Определён в:
os/linux.rb,
extend/os/linux/keg.rb,
extend/os/linux/search.rb,
extend/os/linux/cleaner.rb,
extend/os/linux/cleanup.rb,
extend/os/linux/formula.rb,
extend/os/linux/install.rb,
extend/os/linux/sandbox.rb,
extend/os/linux/cmd/info.rb,
extend/os/linux/test_bot.rb,
extend/os/linux/compilers.rb,
extend/os/linux/diagnostic.rb,
extend/os/linux/cask/config.rb,
extend/os/linux/hardware/cpu.rb,
extend/os/linux/keg_relocate.rb,
extend/os/linux/bundle/bundle.rb,
extend/os/linux/cask/caskroom.rb,
extend/os/linux/dev-cmd/tests.rb,
extend/os/linux/system_config.rb,
extend/os/linux/bundle/skipper.rb,
extend/os/linux/cask/installer.rb,
extend/os/linux/dev-cmd/bottle.rb,
extend/os/linux/extend/ENV/std.rb,
extend/os/linux/cask/quarantine.rb,
extend/os/linux/linkage_checker.rb,
extend/os/linux/simulate_system.rb,
extend/os/linux/cask/utils/trash.rb,
extend/os/linux/extend/ENV/super.rb,
extend/os/linux/development_tools.rb,
extend/os/linux/extend/ENV/shared.rb,
extend/os/linux/extend/pathname/os.rb,
extend/os/linux/cask/artifact/moved.rb,
extend/os/linux/dev-cmd/update-test.rb,
extend/os/linux/bottle_specification.rb,
extend/os/linux/bundle/brew_services.rb,
extend/os/linux/dependency_collector.rb,
extend/os/linux/formula_cellar_checks.rb,
extend/os/linux/cask/artifact/relocated.rb,
os/linux/ld.rb,
os/linux/glibc.rb,
os/linux/elf/os.rb,
os/linux/kernel.rb,
os/linux/libstdcxx.rb

Обзор

Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.

Вспомогательный модуль для получения системной информации в Linux.

Определено в пространстве имён

Модули: BottleSpecification, Bundle, Cask, Cleaner, Cleanup, Cmd, CompilerSelector, DependencyCollector, DevCmd, DevelopmentTools, Diagnostic, Elf, Formula, FormulaCellarChecks, Glibc, Hardware, Install, Keg, Kernel, Ld, Libstdcxx, LinkageChecker, Pathname, Sandbox, Search, SharedEnvExtension, SimulateSystem, Stdenv, Superenv, SystemConfig, TestBot

Краткое описание методов класса свернуть

  • .inside_docker? ⇒ Boolean приватный
  • .language ⇒ String? приватный
  • .languages ⇒ Array<String> приватный
  • .os_version ⇒ String внутренний

    Получить версию ОС.

  • .wsl? ⇒ Boolean приватный
  • .wsl_version ⇒ Version приватный

Методы, включённые из Utils::Output::Mixin

issue_reporting_message, odebug, odeprecated, odie, odisabled, ofail, oh1, oh1_title, ohai, ohai_title, onoe, opoo, opoo_outside_github_actions, opoo_without_github_actions_annotation, pretty_deprecated, pretty_disabled, pretty_duration, pretty_install_status, pretty_installed, pretty_uninstalled, pretty_upgradable, pretty_warning

Подробное описание методов класса

.inside_docker? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


50
51
52
53
54
55
56
# File 'os/linux.rb', line 50

def self.inside_docker?
  return true if File.file?("/.dockerenv")
  return true if File.file?("/run/.containerenv")
  return false unless File.file?("/proc/1/cgroup")

  File.read("/proc/1/cgroup").match?(/azpl_job|actions_job|docker|garden|kubepods/)
end

.language ⇒ String?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String, nil)


94
95
96
# File 'os/linux.rb', line 94

def self.language
  languages.first
end

.languages ⇒ Array<String>

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<String>)


75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'os/linux.rb', line 75

def self.languages
  return @languages if @languages.present?

  locale_variables = ENV.keys.grep(/^(?:LC_\S+|LANG|LANGUAGE)\Z/).sort
  ctl_ret = Utils.popen_read("localectl", "list-locales")
  list = T.let([], T::Array[String])
  if ctl_ret.present?
    list = T.cast(ctl_ret.scan(/[^ \n"(),]+/), T::Array[String])
  elsif locale_variables.present?
    keys = locale_variables.select { |var| ENV.fetch(var) }
    list = keys.map { |key| ENV.fetch(key) }
  else
    list = ["en_US.utf8"]
  end

  @languages = list.map { |item| item.split(".").fetch(0).tr("_", "-") }
end

.os_version ⇒ String

Этот метод является частью внутреннего API. Этот метод можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и формул. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Получить версию ОС.

Возвращает:

  • (String)


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'os/linux.rb', line 24

def self.os_version
  if which("lsb_release")
    lsb_info = Utils.popen_read("lsb_release", "-a")
    description = lsb_info[/^Description:\s*(.*)$/, 1]&.force_encoding("UTF-8")

    odie "Failed to parse lsb_release output: #{lsb_info.inspect}" unless description

    codename = lsb_info[/^Codename:\s*(.*)$/, 1]
    if codename.blank? || (codename == "n/a")
      description
    else
      "#{description} (#{codename})"
    end
  elsif ::OS_VERSION.present?
    ::OS_VERSION
  else
    "Unknown"
  end
end

.wsl? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


45
46
47
# File 'os/linux.rb', line 45

def self.wsl?
  OS.wsl?
end

.wsl_version ⇒ Version

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Version)


59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'os/linux.rb', line 59

def self.wsl_version
  return Version::NULL unless wsl?

  kernel = OS.kernel_version.to_s
  if Version.new(T.must(kernel[/^([0-9.]*)-.*/, 1])) > Version.new("5.15")
    Version.new("2 (Microsoft Store)")
  elsif kernel.include?("-microsoft")
    Version.new("2")
  elsif kernel.include?("-Microsoft")
    Version.new("1")
  else
    Version::NULL
  end
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/OS/Linux.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API