背景

背景

背景

ソフトウェアの問題を支援するために、実行中の特定のコードのバージョンだけでなく、アプリケーションプラットフォームの特性も確認する必要があることがよくあります。CLIでハードウェアを照会するのは面倒です。しかし、幸いなことに、ハードウェアは通常ユーザーの一部ではありません。病因学それとも関連性がないほど標準的です。 CLIを介してLinuxホストを照会する基本は比較的簡単なので(少なくともLSBで始まる)、通常のbashスクリプトは次のように書くことができます。

#!/usr/bin/env bash

### Attempt to create a high-level commandline-query for
### basic host configuration information (at least, for that
### part of the platform just above the hardware.

# constants------------------------------------------------------------

### "Marker file" paths for specific distros. TODO: complete the set.

DEBIAN_FILE='/etc/debian_version'

# code-----------------------------------------------------------------

### Absolute basics: kernel, distro

for CMD in \
    'date' \
    'uname -rsv' \
    'lsb_release -ds' \
; do
    echo -e "\$ ${CMD}"
    eval "${CMD}"
done

### Distro details via marker file. TODO: extend to all major distros.
### Feel free to add stanzas for your distro's marker.

if [[ -r "${DEBIAN_FILE}" ]] ; then
    for CMD in \
        "cat ${DEBIAN_FILE}" \
    ; do
        echo -e "\$ ${CMD}"
        eval "${CMD}"
    done
fi

### Other important non-graphical libraries, toolkits, etc.

for CMD in \
    'gcc --version | head -n 1' \
; do
    echo -e "\$ ${CMD}"
    eval "${CMD}"
done

これにより、次のような出力が生成されます。

$ date
Sat Sep 17 14:18:28 MST 2016
$ uname -rsv
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02)
$ lsb_release -ds
LMDE 2 Betsy
$ cat /etc/debian_version
8.5
$ gcc --version | head -n 1
gcc (Debian 4.9.2-10) 4.9.2

質問

私が知らないのは、誰かに関する重要な情報を照会するための同様のスクリプトを書く方法です。デスクトップスタック?私はXを実行していることを知っています。

## Dunno why X:
## * throws error on `--version`
## * outputs version info to `stderr`
## * wants to include hostname in 'Current Operating System:' line
$ Xorg -version 2>&1 | grep -ve '^$\|^[[:space:]]\|Current Operating System:'
X.Org X Server 1.16.4
Release Date: 2014-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.16.0-4-amd64 x86_64 Debian
Kernel command line: BOOT_IMAGE=/vmlinuz-3.16.0-4-amd64 root=/dev/mapper/LVM2_crypt-root ro nomodeset nouveau.modeset=0
Build Date: 11 February 2015  12:32:02AM
xorg-server 2:1.16.4-1 (http://www.debian.org/support) 
Current version of pixman: 0.32.6

$ x-window-manager --version | head -1
metacity 3.14.3

私は(偶然)私が使用していることを知っています。シナモンデスクトップだからそれを行うことができます

$ cinnamon --version
Cinnamon 3.0.6

しかし、CLIを介してGTK(Cinnamonが使用していることがわかっています)などのバージョンをクエリする方法、「Qt World」でこのような高度なクエリを実行する方法、Waylandで何をすべきか、その他の関連事項がわかりません。 WM / DE / GUIスタックセクションは、問題の説明に重要なことがよくあります。この情報を取得するにはどのコマンドを使用できますか?

ベストアンサー1

おすすめ記事