@fredlackey/devutils 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
|
@@ -0,0 +1,814 @@
|
|
|
1
|
+
# Installing lsb-release
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The `lsb-release` utility provides information about the Linux Standard Base (LSB) and distribution-specific information. It is a simple command-line tool that displays details about your Linux distribution, including:
|
|
6
|
+
|
|
7
|
+
- **Distributor ID**: The name of the distribution (e.g., Ubuntu, Debian, Raspbian)
|
|
8
|
+
- **Description**: A human-readable description of the distribution
|
|
9
|
+
- **Release**: The release version number
|
|
10
|
+
- **Codename**: The development codename (e.g., jammy, bookworm)
|
|
11
|
+
|
|
12
|
+
The Linux Standard Base was a standardization effort led by the Linux Foundation to promote compatibility across Linux distributions. While the LSB standard itself was discontinued in 2015 and is no longer actively maintained, the `lsb_release` command remains widely used for identifying Linux distributions in scripts, automation tools, and system administration tasks.
|
|
13
|
+
|
|
14
|
+
**Important Note**: The `lsb-release` utility is Linux-specific and is not available on macOS or Windows. On these platforms, alternative commands provide similar system information. This documentation covers installation on Linux platforms and documents the alternatives for non-Linux platforms.
|
|
15
|
+
|
|
16
|
+
## Dependencies
|
|
17
|
+
|
|
18
|
+
### macOS (Homebrew)
|
|
19
|
+
- **Required:** None (lsb-release is not available on macOS)
|
|
20
|
+
- **Optional:** None
|
|
21
|
+
- **Auto-installed:** None
|
|
22
|
+
- **Note:** macOS is not a Linux distribution and does not support LSB. Use `sw_vers` for macOS version information instead.
|
|
23
|
+
|
|
24
|
+
### Ubuntu (APT/Snap)
|
|
25
|
+
- **Required:** None (APT package manager is pre-installed on Ubuntu)
|
|
26
|
+
- **Optional:** None
|
|
27
|
+
- **Auto-installed:** None
|
|
28
|
+
|
|
29
|
+
### Raspberry Pi OS (APT/Snap)
|
|
30
|
+
- **Required:** None (APT package manager is pre-installed on Raspberry Pi OS)
|
|
31
|
+
- **Optional:** None
|
|
32
|
+
- **Auto-installed:** None
|
|
33
|
+
|
|
34
|
+
### Amazon Linux (DNF/YUM)
|
|
35
|
+
- **Required:** None (lsb-release is not available on Amazon Linux)
|
|
36
|
+
- **Optional:** None
|
|
37
|
+
- **Auto-installed:** None
|
|
38
|
+
- **Note:** Amazon Linux 2023 does not ship with `lsb_release` and does not include the `system-lsb-core` package. Use `/etc/os-release` for distribution information instead.
|
|
39
|
+
|
|
40
|
+
### Windows (Chocolatey/winget)
|
|
41
|
+
- **Required:** None (lsb-release is not available on Windows)
|
|
42
|
+
- **Optional:** None
|
|
43
|
+
- **Auto-installed:** None
|
|
44
|
+
- **Note:** Windows is not a Linux distribution and does not support LSB.
|
|
45
|
+
|
|
46
|
+
### Git Bash (Manual/Portable)
|
|
47
|
+
- **Required:** None (lsb-release is not available in Git Bash)
|
|
48
|
+
- **Optional:** None
|
|
49
|
+
- **Auto-installed:** None
|
|
50
|
+
- **Note:** Git Bash runs on Windows and does not support Linux-specific utilities like lsb-release.
|
|
51
|
+
|
|
52
|
+
## Prerequisites
|
|
53
|
+
|
|
54
|
+
Before installing lsb-release on supported platforms, ensure:
|
|
55
|
+
|
|
56
|
+
1. **Internet connectivity** - Required to download packages
|
|
57
|
+
2. **Administrative privileges** - Required for system-wide installation (sudo on Linux)
|
|
58
|
+
3. **Terminal access** - Required to run installation commands
|
|
59
|
+
4. **Linux operating system** - lsb-release is only available on Linux distributions
|
|
60
|
+
|
|
61
|
+
## Platform-Specific Installation
|
|
62
|
+
|
|
63
|
+
### macOS (Homebrew)
|
|
64
|
+
|
|
65
|
+
#### Platform Support Status
|
|
66
|
+
|
|
67
|
+
**lsb-release is NOT available on macOS.**
|
|
68
|
+
|
|
69
|
+
macOS is not a Linux distribution and does not implement the Linux Standard Base. The `lsb_release` command does not exist on macOS, and there is no Homebrew formula to install it.
|
|
70
|
+
|
|
71
|
+
#### Alternative: Using sw_vers
|
|
72
|
+
|
|
73
|
+
macOS provides the `sw_vers` command for obtaining system version information. This command is pre-installed on all macOS systems and requires no additional installation.
|
|
74
|
+
|
|
75
|
+
Run the following command to display macOS version information:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
sw_vers
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Expected output (version numbers may vary):
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
ProductName: macOS
|
|
85
|
+
ProductVersion: 14.2.1
|
|
86
|
+
BuildVersion: 23C71
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Additional commands for macOS system information:**
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Get just the macOS version number
|
|
93
|
+
sw_vers -productVersion
|
|
94
|
+
|
|
95
|
+
# Get detailed system information
|
|
96
|
+
system_profiler SPSoftwareDataType
|
|
97
|
+
|
|
98
|
+
# Get kernel information
|
|
99
|
+
uname -a
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
#### Verification
|
|
103
|
+
|
|
104
|
+
Verify that `sw_vers` is available (it should be pre-installed):
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
which sw_vers
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Expected output:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
/usr/bin/sw_vers
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### Ubuntu/Debian (APT)
|
|
119
|
+
|
|
120
|
+
#### Prerequisites
|
|
121
|
+
|
|
122
|
+
- Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
|
|
123
|
+
- sudo privileges
|
|
124
|
+
- Internet connectivity
|
|
125
|
+
|
|
126
|
+
On most Ubuntu and Debian installations, `lsb-release` is pre-installed. However, some minimal installations or container images may not include it.
|
|
127
|
+
|
|
128
|
+
#### Installation Steps
|
|
129
|
+
|
|
130
|
+
Run the following commands to install lsb-release:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
134
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable ensures no interactive prompts appear during installation, making this suitable for scripts and automation.
|
|
138
|
+
|
|
139
|
+
#### Verification
|
|
140
|
+
|
|
141
|
+
Confirm the installation succeeded:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
lsb_release --version
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Expected output (version numbers may vary):
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
lsb_release 11.1.0ubuntu4
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Display all distribution information:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
lsb_release -a
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Expected output for Ubuntu (version numbers may vary):
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
No LSB modules are available.
|
|
163
|
+
Distributor ID: Ubuntu
|
|
164
|
+
Description: Ubuntu 24.04 LTS
|
|
165
|
+
Release: 24.04
|
|
166
|
+
Codename: noble
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Note**: The "No LSB modules are available" message is normal and does not indicate an error. It simply means that the full LSB compliance packages are not installed, which is typical and does not affect the functionality of `lsb_release`.
|
|
170
|
+
|
|
171
|
+
Verify the installation location:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
which lsb_release
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Expected output:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
/usr/bin/lsb_release
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
#### Troubleshooting
|
|
184
|
+
|
|
185
|
+
**Problem**: `lsb_release: command not found`
|
|
186
|
+
|
|
187
|
+
**Solution**: The package is not installed. Install it:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
191
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Problem**: `E: Unable to locate package lsb-release`
|
|
195
|
+
|
|
196
|
+
**Solution**: Update your package lists first:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
200
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Problem**: Using `lsb-release` instead of `lsb_release` in commands
|
|
204
|
+
|
|
205
|
+
**Solution**: The package name uses a hyphen (`lsb-release`), but the command uses an underscore (`lsb_release`). Use the underscore when running the command:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Correct command syntax
|
|
209
|
+
lsb_release -a
|
|
210
|
+
|
|
211
|
+
# Incorrect (this will fail)
|
|
212
|
+
# lsb-release -a
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Problem**: Permission denied errors
|
|
216
|
+
|
|
217
|
+
**Solution**: Ensure you are using sudo for installation:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Note that running `lsb_release` itself does not require sudo.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
### Raspberry Pi OS (APT)
|
|
228
|
+
|
|
229
|
+
#### Prerequisites
|
|
230
|
+
|
|
231
|
+
- Raspberry Pi OS (Bookworm or Bullseye recommended)
|
|
232
|
+
- Raspberry Pi 3B+ or later (any model supported by Raspberry Pi OS)
|
|
233
|
+
- sudo privileges
|
|
234
|
+
- Internet connectivity
|
|
235
|
+
|
|
236
|
+
Raspberry Pi OS is based on Debian, so `lsb-release` installation follows the same method. On most Raspberry Pi OS installations, `lsb-release` is pre-installed by default.
|
|
237
|
+
|
|
238
|
+
#### Installation Steps
|
|
239
|
+
|
|
240
|
+
First, verify your architecture:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
uname -m
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
- `aarch64` = 64-bit ARM
|
|
247
|
+
- `armv7l` = 32-bit ARM
|
|
248
|
+
|
|
249
|
+
Install lsb-release using APT (the command is identical for both architectures):
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
253
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
#### Verification
|
|
257
|
+
|
|
258
|
+
Confirm the installation succeeded:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
lsb_release --version
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Expected output (version numbers may vary):
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
lsb_release 12.0
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Display all distribution information:
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
lsb_release -a
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Expected output for Raspberry Pi OS (version numbers may vary):
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
No LSB modules are available.
|
|
280
|
+
Distributor ID: Raspbian
|
|
281
|
+
Description: Raspbian GNU/Linux 12 (bookworm)
|
|
282
|
+
Release: 12
|
|
283
|
+
Codename: bookworm
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**Note for 64-bit Raspberry Pi OS**: On 64-bit installations, the Distributor ID may show "Debian" instead of "Raspbian":
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
No LSB modules are available.
|
|
290
|
+
Distributor ID: Debian
|
|
291
|
+
Description: Debian GNU/Linux 12 (bookworm)
|
|
292
|
+
Release: 12
|
|
293
|
+
Codename: bookworm
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Verify the installation location:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
which lsb_release
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Expected output:
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
/usr/bin/lsb_release
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
#### Troubleshooting
|
|
309
|
+
|
|
310
|
+
**Problem**: Installation is slow
|
|
311
|
+
|
|
312
|
+
**Solution**: Raspberry Pi SD cards can be slow. Use a high-quality SD card (Class 10 or A1/A2 rated) or boot from USB/SSD for better performance.
|
|
313
|
+
|
|
314
|
+
**Problem**: `E: Unable to fetch some archives`
|
|
315
|
+
|
|
316
|
+
**Solution**: Network connectivity issues. Check your internet connection and retry:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
320
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**Problem**: Distributor ID shows "Debian" instead of "Raspbian"
|
|
324
|
+
|
|
325
|
+
**Solution**: This is expected on 64-bit Raspberry Pi OS, which is based directly on Debian arm64. The functionality is identical regardless of the distributor ID.
|
|
326
|
+
|
|
327
|
+
**Problem**: `lsb_release: command not found` despite package being installed
|
|
328
|
+
|
|
329
|
+
**Solution**: Close and reopen your terminal, then verify the package is installed:
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
dpkg -l | grep lsb-release
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
### Amazon Linux (DNF/YUM)
|
|
338
|
+
|
|
339
|
+
#### Platform Support Status
|
|
340
|
+
|
|
341
|
+
**lsb-release is NOT available on Amazon Linux 2023 (AL2023).**
|
|
342
|
+
|
|
343
|
+
Amazon Linux 2023 does not ship with the `lsb_release` command and does not include the `system-lsb-core` package. Amazon has transitioned to the `/etc/os-release` standard, which is the modern replacement for LSB-based distribution identification.
|
|
344
|
+
|
|
345
|
+
Amazon Linux 2 (AL2) may have the `system-lsb-core` package available through `yum`, but this is discouraged as AL2 reaches end of support on June 30, 2026.
|
|
346
|
+
|
|
347
|
+
#### Alternative: Using /etc/os-release
|
|
348
|
+
|
|
349
|
+
The `/etc/os-release` file is pre-installed on Amazon Linux and requires no additional packages. This is the recommended method for obtaining distribution information.
|
|
350
|
+
|
|
351
|
+
Run the following command to display distribution information:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
cat /etc/os-release
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Expected output for Amazon Linux 2023 (version numbers may vary):
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
NAME="Amazon Linux"
|
|
361
|
+
VERSION="2023"
|
|
362
|
+
ID="amzn"
|
|
363
|
+
ID_LIKE="fedora"
|
|
364
|
+
VERSION_ID="2023"
|
|
365
|
+
PLATFORM_ID="platform:al2023"
|
|
366
|
+
PRETTY_NAME="Amazon Linux 2023.6.20241212"
|
|
367
|
+
ANSI_COLOR="0;33"
|
|
368
|
+
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
|
|
369
|
+
HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"
|
|
370
|
+
DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/"
|
|
371
|
+
SUPPORT_URL="https://aws.amazon.com/premiumsupport/"
|
|
372
|
+
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
|
|
373
|
+
VENDOR_NAME="AWS"
|
|
374
|
+
VENDOR_URL="https://aws.amazon.com/"
|
|
375
|
+
SUPPORT_END="2028-03-15"
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
**Extract specific information using shell commands:**
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
# Get the distribution name
|
|
382
|
+
grep "^NAME=" /etc/os-release | cut -d'"' -f2
|
|
383
|
+
|
|
384
|
+
# Get the version
|
|
385
|
+
grep "^VERSION_ID=" /etc/os-release | cut -d'"' -f2
|
|
386
|
+
|
|
387
|
+
# Get the pretty name
|
|
388
|
+
grep "^PRETTY_NAME=" /etc/os-release | cut -d'"' -f2
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
**Using shell variables for scripting:**
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
# Source the file to get variables
|
|
395
|
+
source /etc/os-release
|
|
396
|
+
|
|
397
|
+
# Now you can use the variables directly
|
|
398
|
+
echo "Distribution: $NAME"
|
|
399
|
+
echo "Version: $VERSION_ID"
|
|
400
|
+
echo "Pretty Name: $PRETTY_NAME"
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
#### Verification
|
|
404
|
+
|
|
405
|
+
Verify that `/etc/os-release` exists:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
test -f /etc/os-release && echo "os-release exists" || echo "os-release not found"
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
Expected output:
|
|
412
|
+
|
|
413
|
+
```
|
|
414
|
+
os-release exists
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
#### Troubleshooting
|
|
418
|
+
|
|
419
|
+
**Problem**: Scripts that depend on `lsb_release` fail on Amazon Linux
|
|
420
|
+
|
|
421
|
+
**Solution**: Update your scripts to use `/etc/os-release` instead. Create a wrapper function for backward compatibility:
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
# Add this function to scripts that need lsb_release compatibility
|
|
425
|
+
lsb_release_compat() {
|
|
426
|
+
if command -v lsb_release &> /dev/null; then
|
|
427
|
+
lsb_release "$@"
|
|
428
|
+
elif [ -f /etc/os-release ]; then
|
|
429
|
+
source /etc/os-release
|
|
430
|
+
case "$1" in
|
|
431
|
+
-i|--id) echo "Distributor ID: $ID" ;;
|
|
432
|
+
-d|--description) echo "Description: $PRETTY_NAME" ;;
|
|
433
|
+
-r|--release) echo "Release: $VERSION_ID" ;;
|
|
434
|
+
-c|--codename) echo "Codename: ${VERSION_CODENAME:-n/a}" ;;
|
|
435
|
+
-a|--all)
|
|
436
|
+
echo "Distributor ID: $ID"
|
|
437
|
+
echo "Description: $PRETTY_NAME"
|
|
438
|
+
echo "Release: $VERSION_ID"
|
|
439
|
+
echo "Codename: ${VERSION_CODENAME:-n/a}"
|
|
440
|
+
;;
|
|
441
|
+
*) echo "Usage: lsb_release_compat [-i|-d|-r|-c|-a]" ;;
|
|
442
|
+
esac
|
|
443
|
+
else
|
|
444
|
+
echo "Neither lsb_release nor /etc/os-release available" >&2
|
|
445
|
+
return 1
|
|
446
|
+
fi
|
|
447
|
+
}
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
**Problem**: Need to determine if running on Amazon Linux in a script
|
|
451
|
+
|
|
452
|
+
**Solution**: Check for the Amazon Linux identifier in `/etc/os-release`:
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
if grep -q "^ID=amzn" /etc/os-release 2>/dev/null; then
|
|
456
|
+
echo "Running on Amazon Linux"
|
|
457
|
+
fi
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
### Windows (Chocolatey/winget)
|
|
463
|
+
|
|
464
|
+
#### Platform Support Status
|
|
465
|
+
|
|
466
|
+
**lsb-release is NOT available on Windows.**
|
|
467
|
+
|
|
468
|
+
Windows is not a Linux distribution and does not implement the Linux Standard Base. The `lsb_release` command is a Linux-specific utility with no direct equivalent on Windows.
|
|
469
|
+
|
|
470
|
+
#### Alternative: Using PowerShell
|
|
471
|
+
|
|
472
|
+
Windows provides PowerShell commands for obtaining system version information. These commands are pre-installed on all modern Windows systems.
|
|
473
|
+
|
|
474
|
+
Run the following command in PowerShell to display Windows version information:
|
|
475
|
+
|
|
476
|
+
```powershell
|
|
477
|
+
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
Expected output (version numbers may vary):
|
|
481
|
+
|
|
482
|
+
```
|
|
483
|
+
WindowsProductName WindowsVersion OsBuildNumber
|
|
484
|
+
------------------ -------------- -------------
|
|
485
|
+
Windows 11 Pro 22H2 22631
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
**Additional commands for Windows system information:**
|
|
489
|
+
|
|
490
|
+
```powershell
|
|
491
|
+
# Get OS version using systeminfo
|
|
492
|
+
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
|
|
493
|
+
|
|
494
|
+
# Get Windows version number
|
|
495
|
+
[System.Environment]::OSVersion.Version
|
|
496
|
+
|
|
497
|
+
# Get detailed OS information
|
|
498
|
+
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber, OSArchitecture
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
**From Command Prompt:**
|
|
502
|
+
|
|
503
|
+
```cmd
|
|
504
|
+
ver
|
|
505
|
+
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
#### Verification
|
|
509
|
+
|
|
510
|
+
Verify that PowerShell commands are available (they should be pre-installed):
|
|
511
|
+
|
|
512
|
+
```powershell
|
|
513
|
+
Get-Command Get-ComputerInfo
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
### WSL (Ubuntu)
|
|
519
|
+
|
|
520
|
+
#### Prerequisites
|
|
521
|
+
|
|
522
|
+
- Windows 10 version 2004 or higher, or Windows 11
|
|
523
|
+
- WSL 2 enabled with Ubuntu distribution installed
|
|
524
|
+
- sudo privileges within WSL
|
|
525
|
+
|
|
526
|
+
WSL runs Ubuntu (or another Linux distribution) within Windows. Because WSL runs a real Linux distribution, `lsb-release` is available and works exactly as it does on native Ubuntu.
|
|
527
|
+
|
|
528
|
+
#### Installation Steps
|
|
529
|
+
|
|
530
|
+
Open your WSL Ubuntu terminal and run:
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
534
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
**Note**: On most WSL Ubuntu installations, `lsb-release` is pre-installed by default. Running the installation command will either install the package or confirm it is already installed.
|
|
538
|
+
|
|
539
|
+
#### Verification
|
|
540
|
+
|
|
541
|
+
Confirm the installation succeeded:
|
|
542
|
+
|
|
543
|
+
```bash
|
|
544
|
+
lsb_release --version
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
Expected output (version numbers may vary):
|
|
548
|
+
|
|
549
|
+
```
|
|
550
|
+
lsb_release 11.1.0ubuntu4
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
Display all distribution information:
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
lsb_release -a
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
Expected output (version numbers may vary):
|
|
560
|
+
|
|
561
|
+
```
|
|
562
|
+
No LSB modules are available.
|
|
563
|
+
Distributor ID: Ubuntu
|
|
564
|
+
Description: Ubuntu 24.04 LTS
|
|
565
|
+
Release: 24.04
|
|
566
|
+
Codename: noble
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
Verify the installation location:
|
|
570
|
+
|
|
571
|
+
```bash
|
|
572
|
+
which lsb_release
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
Expected output:
|
|
576
|
+
|
|
577
|
+
```
|
|
578
|
+
/usr/bin/lsb_release
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
#### Troubleshooting
|
|
582
|
+
|
|
583
|
+
**Problem**: `lsb_release: command not found` in WSL
|
|
584
|
+
|
|
585
|
+
**Solution**: Install the package:
|
|
586
|
+
|
|
587
|
+
```bash
|
|
588
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
589
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
**Problem**: WSL shows a different Ubuntu version than expected
|
|
593
|
+
|
|
594
|
+
**Solution**: Check which WSL distribution you are running:
|
|
595
|
+
|
|
596
|
+
```bash
|
|
597
|
+
# From within WSL
|
|
598
|
+
cat /etc/os-release
|
|
599
|
+
|
|
600
|
+
# From Windows PowerShell
|
|
601
|
+
wsl --list --verbose
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
You may have multiple WSL distributions installed. Ensure you are using the correct one.
|
|
605
|
+
|
|
606
|
+
**Problem**: Permission denied errors
|
|
607
|
+
|
|
608
|
+
**Solution**: Ensure you are using sudo for installation:
|
|
609
|
+
|
|
610
|
+
```bash
|
|
611
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
---
|
|
615
|
+
|
|
616
|
+
### Git Bash (Manual/Portable)
|
|
617
|
+
|
|
618
|
+
#### Platform Support Status
|
|
619
|
+
|
|
620
|
+
**lsb-release is NOT available in Git Bash.**
|
|
621
|
+
|
|
622
|
+
Git Bash is a terminal emulator that runs on Windows and provides a Bash shell environment. However, it does not include Linux-specific system utilities like `lsb_release`. Git Bash is designed to provide Git functionality and common Unix utilities, not to replicate a full Linux environment.
|
|
623
|
+
|
|
624
|
+
#### Alternative: Using Windows Commands from Git Bash
|
|
625
|
+
|
|
626
|
+
From Git Bash, you can execute Windows commands to obtain system information:
|
|
627
|
+
|
|
628
|
+
```bash
|
|
629
|
+
# Get Windows version using cmd
|
|
630
|
+
cmd //c ver
|
|
631
|
+
|
|
632
|
+
# Get OS information using PowerShell
|
|
633
|
+
powershell -Command "Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion"
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
Expected output (version numbers may vary):
|
|
637
|
+
|
|
638
|
+
```
|
|
639
|
+
Microsoft Windows [Version 10.0.22631.4460]
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
**If you need lsb_release functionality**, use WSL instead of Git Bash. WSL provides a full Linux environment where `lsb_release` works natively.
|
|
643
|
+
|
|
644
|
+
#### Verification
|
|
645
|
+
|
|
646
|
+
Verify that Windows commands are accessible from Git Bash:
|
|
647
|
+
|
|
648
|
+
```bash
|
|
649
|
+
cmd //c ver
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
If this command produces output showing the Windows version, Windows commands are accessible from Git Bash.
|
|
653
|
+
|
|
654
|
+
---
|
|
655
|
+
|
|
656
|
+
## Post-Installation Configuration
|
|
657
|
+
|
|
658
|
+
The `lsb_release` command requires no post-installation configuration. It reads system information from files already present on the system and has no user-configurable settings.
|
|
659
|
+
|
|
660
|
+
### Common Usage Patterns
|
|
661
|
+
|
|
662
|
+
Here are common ways to use `lsb_release` in scripts and automation:
|
|
663
|
+
|
|
664
|
+
**Get all information:**
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
lsb_release -a
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
**Get specific fields:**
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
# Distributor ID only (e.g., "Ubuntu")
|
|
674
|
+
lsb_release -is
|
|
675
|
+
|
|
676
|
+
# Release number only (e.g., "24.04")
|
|
677
|
+
lsb_release -rs
|
|
678
|
+
|
|
679
|
+
# Codename only (e.g., "noble")
|
|
680
|
+
lsb_release -cs
|
|
681
|
+
|
|
682
|
+
# Description only (e.g., "Ubuntu 24.04 LTS")
|
|
683
|
+
lsb_release -ds
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
**Use in conditional logic:**
|
|
687
|
+
|
|
688
|
+
```bash
|
|
689
|
+
# Check if running on Ubuntu
|
|
690
|
+
if [ "$(lsb_release -is 2>/dev/null)" = "Ubuntu" ]; then
|
|
691
|
+
echo "Running on Ubuntu"
|
|
692
|
+
fi
|
|
693
|
+
|
|
694
|
+
# Check if running on Debian or a Debian-based distribution
|
|
695
|
+
if lsb_release -is 2>/dev/null | grep -qiE "^(debian|ubuntu|raspbian)$"; then
|
|
696
|
+
echo "Running on a Debian-based distribution"
|
|
697
|
+
fi
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
**Portable script pattern (works with or without lsb_release):**
|
|
701
|
+
|
|
702
|
+
```bash
|
|
703
|
+
get_distro() {
|
|
704
|
+
if command -v lsb_release &> /dev/null; then
|
|
705
|
+
lsb_release -is
|
|
706
|
+
elif [ -f /etc/os-release ]; then
|
|
707
|
+
grep "^ID=" /etc/os-release | cut -d'=' -f2 | tr -d '"'
|
|
708
|
+
else
|
|
709
|
+
echo "unknown"
|
|
710
|
+
fi
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
DISTRO=$(get_distro)
|
|
714
|
+
echo "Detected distribution: $DISTRO"
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
---
|
|
718
|
+
|
|
719
|
+
## Common Issues
|
|
720
|
+
|
|
721
|
+
### Issue: "No LSB modules are available"
|
|
722
|
+
|
|
723
|
+
**Symptoms**: Running `lsb_release -a` displays "No LSB modules are available" before the distribution information.
|
|
724
|
+
|
|
725
|
+
**Solution**: This message is informational, not an error. It indicates that the full LSB compliance packages (`lsb-core`, `lsb-graphics`, etc.) are not installed. The `lsb_release` command still functions correctly and displays distribution information. No action is required unless you specifically need LSB compliance modules.
|
|
726
|
+
|
|
727
|
+
### Issue: lsb_release Not Available in Container Images
|
|
728
|
+
|
|
729
|
+
**Symptoms**: `lsb_release: command not found` in Docker containers or minimal OS images.
|
|
730
|
+
|
|
731
|
+
**Solution**: Minimal container images often exclude `lsb-release` to reduce image size. Install it if needed, or use `/etc/os-release` as an alternative:
|
|
732
|
+
|
|
733
|
+
```bash
|
|
734
|
+
# In Debian/Ubuntu containers
|
|
735
|
+
apt-get update && apt-get install -y lsb-release
|
|
736
|
+
|
|
737
|
+
# Or use /etc/os-release (no installation needed)
|
|
738
|
+
cat /etc/os-release
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
### Issue: Scripts Fail on Non-Linux Platforms
|
|
742
|
+
|
|
743
|
+
**Symptoms**: Scripts that use `lsb_release` fail on macOS, Windows, or Amazon Linux.
|
|
744
|
+
|
|
745
|
+
**Solution**: Write portable scripts that check for `lsb_release` availability before using it:
|
|
746
|
+
|
|
747
|
+
```bash
|
|
748
|
+
#!/bin/bash
|
|
749
|
+
if command -v lsb_release &> /dev/null; then
|
|
750
|
+
DISTRO=$(lsb_release -is)
|
|
751
|
+
elif [ -f /etc/os-release ]; then
|
|
752
|
+
source /etc/os-release
|
|
753
|
+
DISTRO=$ID
|
|
754
|
+
elif command -v sw_vers &> /dev/null; then
|
|
755
|
+
DISTRO="macOS"
|
|
756
|
+
else
|
|
757
|
+
DISTRO="unknown"
|
|
758
|
+
fi
|
|
759
|
+
|
|
760
|
+
echo "Detected: $DISTRO"
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
### Issue: lsb_release Shows Wrong Information
|
|
764
|
+
|
|
765
|
+
**Symptoms**: The output of `lsb_release` does not match the actual distribution.
|
|
766
|
+
|
|
767
|
+
**Solution**: The `lsb_release` command reads from `/etc/lsb-release` or `/etc/os-release`. If these files are corrupted or modified, the output may be incorrect. Verify the source files:
|
|
768
|
+
|
|
769
|
+
```bash
|
|
770
|
+
# Check lsb-release file
|
|
771
|
+
cat /etc/lsb-release
|
|
772
|
+
|
|
773
|
+
# Check os-release file
|
|
774
|
+
cat /etc/os-release
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
If the files are incorrect, reinstall the `lsb-release` package:
|
|
778
|
+
|
|
779
|
+
```bash
|
|
780
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install --reinstall -y lsb-release
|
|
781
|
+
```
|
|
782
|
+
|
|
783
|
+
### Issue: Command Not Found Despite Package Being Installed
|
|
784
|
+
|
|
785
|
+
**Symptoms**: `dpkg -l | grep lsb-release` shows the package is installed, but `lsb_release` command is not found.
|
|
786
|
+
|
|
787
|
+
**Solution**: The command may not be in your PATH. Locate the binary and run it directly:
|
|
788
|
+
|
|
789
|
+
```bash
|
|
790
|
+
# Find the binary
|
|
791
|
+
dpkg -L lsb-release | grep bin
|
|
792
|
+
|
|
793
|
+
# Run directly
|
|
794
|
+
/usr/bin/lsb_release -a
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
If `/usr/bin` is not in your PATH, add it:
|
|
798
|
+
|
|
799
|
+
```bash
|
|
800
|
+
export PATH="/usr/bin:$PATH"
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
---
|
|
804
|
+
|
|
805
|
+
## References
|
|
806
|
+
|
|
807
|
+
- [Ubuntu Manpage: lsb_release](https://manpages.ubuntu.com/manpages/jammy/man1/lsb_release.1.html)
|
|
808
|
+
- [Debian Wiki: LSB](https://wiki.debian.org/LSB)
|
|
809
|
+
- [Linux Standard Base - Wikipedia](https://en.wikipedia.org/wiki/Linux_Standard_Base)
|
|
810
|
+
- [freedesktop.org: os-release specification](https://www.freedesktop.org/software/systemd/man/os-release.html)
|
|
811
|
+
- [Amazon Linux 2023 User Guide](https://docs.aws.amazon.com/linux/al2023/ug/)
|
|
812
|
+
- [Raspberry Pi Documentation](https://www.raspberrypi.com/documentation/)
|
|
813
|
+
- [Microsoft WSL Documentation](https://learn.microsoft.com/en-us/windows/wsl/)
|
|
814
|
+
- [Apple sw_vers Manual](https://ss64.com/osx/sw_vers.html)
|