Модуль: OS::Linux::SystemConfig::ClassMethods Закрытый
- Включает:
- SystemCommand::Mixin
- Определён в:
- extend/os/linux/system_config.rb
Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот модуль, так как он может быть удалён или изменён без предупреждения.
Краткое описание констант свернуть
- HOST_RUBY_PATH =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, так как она может быть удалена или изменена без предупреждения.
"/usr/bin/ruby"
Краткое описание методов экземпляра свернуть
- #dump_verbose_config(out = $stdout) ⇒ void закрытый
- #formula_linked_version(formula) ⇒ String, PkgVersion закрытый
- #host_gcc_version ⇒ String закрытый
- #host_glibc_version ⇒ String, Version закрытый
- #host_libstdcxx_version ⇒ String, Version закрытый
- #host_ruby_version ⇒ String закрытый
- #windows_registry_values(cmd) ⇒ Hash{String => String} закрытый
- #windows_registry_version(cmd) ⇒ String? закрытый
- #windows_version ⇒ String? закрытый
Методы, включённые из SystemCommand::Mixin
#system_command, #system_command!
Подробное описание методов экземпляра
#dump_verbose_config(out = $stdout) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённое значение.
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | # File 'extend/os/linux/system_config.rb', line 107 def dump_verbose_config(out = $stdout) kernel = Utils.safe_popen_read("uname", "-mors").chomp super out.puts "Kernel: #{kernel}" out.puts "OS: #{OS::Linux.os_version}" if OS.wsl? out.puts "WSL: #{OS::Linux.wsl_version}" windows = windows_version out.puts "Windows: #{windows}" if windows end out.puts "Host glibc: #{host_glibc_version}" out.puts "Host libstdc++: #{host_libstdcxx_version}" out.puts "#{::DevelopmentTools.host_gcc_path}: #{host_gcc_version}" out.puts "/usr/bin/ruby: #{host_ruby_version}" if RUBY_PATH != HOST_RUBY_PATH ["glibc", ::CompilerSelector.preferred_gcc, OS::LINUX_PREFERRED_GCC_RUNTIME_FORMULA, "xorg"].each do |f| out.puts "#{f}: #{formula_linked_version(f)}" end end |
#formula_linked_version(formula) ⇒ String, PkgVersion
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
42 43 44 45 46 47 48 | # File 'extend/os/linux/system_config.rb', line 42 def formula_linked_version(formula) return "N/A" if Homebrew::EnvConfig.no_install_from_api? && !CoreTap.instance.installed? Formulary.factory(formula).any_installed_version || "N/A" rescue FormulaUnavailableError "N/A" end |
#host_gcc_version ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
34 35 36 37 38 39 | # File 'extend/os/linux/system_config.rb', line 34 def host_gcc_version gcc = ::DevelopmentTools.host_gcc_path return "N/A" unless gcc.executable? Utils.popen_read(gcc, "--version")[/ (\d+\.\d+\.\d+)/, 1] || "N/A" end |
#host_glibc_version ⇒ String, Version
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
18 19 20 21 22 23 | # File 'extend/os/linux/system_config.rb', line 18 def host_glibc_version version = OS::Linux::Glibc.system_version return "N/A" if version.null? version end |
#host_libstdcxx_version ⇒ String, Version
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
26 27 28 29 30 31 | # File 'extend/os/linux/system_config.rb', line 26 def host_libstdcxx_version version = OS::Linux::Libstdcxx.system_version return "N/A" if version.null? version end |
#host_ruby_version ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
51 52 53 54 55 56 | # File 'extend/os/linux/system_config.rb', line 51 def host_ruby_version out, _, status = system_command(HOST_RUBY_PATH, args: ["-e", "puts RUBY_VERSION"], print_stderr: false).to_a return "N/A" unless status.success? out end |
#windows_registry_values(cmd) ⇒ Hash{String => String}
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | # File 'extend/os/linux/system_config.rb', line 89 def windows_registry_values(cmd) output = Utils.popen_read(cmd, "/d", "/c", "reg", "query", "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", err: :close) output.each_line.with_object({}) do |line, values| match = line.delete("\r").match(/^\s*(\S+)\s+REG_\S+\s+(.+?)\s*$/) next if match.nil? key = match[1] value = match[2] next if key.nil? || value.nil? values[key] = value.start_with?("0x") ? value.to_i(16).to_s : value end end |
#windows_registry_version(cmd) ⇒ String?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 | # File 'extend/os/linux/system_config.rb', line 73 def windows_registry_version(cmd) values = windows_registry_values(cmd) product_name = values["ProductName"] build = values["CurrentBuildNumber"] return if product_name.blank? || build.blank? product_name = product_name.sub(/\AWindows 10\b/, "Windows 11") if build.to_i >= 22_000 build += ".#{values["UBR"]}" if values["UBR"].present? version = values["DisplayVersion"] || values["ReleaseId"] return "#{product_name} [#{build}]" if version.blank? "#{product_name} (#{version}) [#{build}]" end |
#windows_version ⇒ String?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, так как он может быть удалён или изменён без предупреждения.
59 60 61 62 63 64 65 66 67 68 69 70 | # File 'extend/os/linux/system_config.rb', line 59 def windows_version return unless OS.wsl? cmd = Kernel.which("cmd.exe", ORIGINAL_PATHS) || ::Pathname.new("/mnt/c/Windows/System32/cmd.exe") return unless cmd.executable? windows_registry_version(cmd) || Utils.popen_read(cmd, "/d", "/c", "ver", err: :close) .delete("\r") .lines .map(&:strip) .find { |line| line.start_with?("Microsoft Windows") } end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/OS/Linux/SystemConfig/ClassMethods.html