Reader setup
Before you start
- Linux terminal basics from Stage 1
- Access to any Ubuntu or Debian host or VM you want to identify
- No expectation that this curriculum installs VICIdial on it
- Expected result
- You can confirm that a host is Ubuntu or Debian by its own identification file and its package tool, and explain why those commands must not be used on a ViciBox host.
- Before making changes
- This lesson only reads status. Do not run a package command on a server carrying any existing website, Asterisk, database, or customer data.
01 / 05
Start here
Ubuntu and Debian are Linux distributions built around the `apt` package manager. This curriculum's hands-on lab path is the ViciBox appliance instead, which is openSUSE-based and uses `zypper`. The two tool sets are not interchangeable, and this lesson exists to help you recognize which family a host belongs to before you assume either one.
If you arrived here already running Ubuntu or Debian, nothing in this lesson asks you to change that. It asks you to recognize it accurately, so that a command copied from a different guide does not silently target the wrong package manager on your machine.
The two checks in this lesson are the same two habits this curriculum asks you to repeat on every new host you meet, regardless of which platform lesson eventually follows: read the identification file first, then confirm the tool second. Everything after that point becomes safer because those two answers are already settled.
Keep both results somewhere you can refer back to. The very next lesson asks you to run the same style of identification check on a different platform family, and comparing the two side by side is part of what makes the contrast between them concrete rather than abstract.
02 / 05
The idea in plain language
A distribution bundles the Linux kernel with a package manager and a set of defaults. `apt` installs and updates software on Debian-family systems; `systemctl` controls services on both Debian-family systems and modern openSUSE, but the package commands underneath differ completely. A host can have tools from more than one family installed. Identify the distribution and its supported package workflow before running any package command; do not rely on an unfamiliar command failing.
This matters more than it sounds like it should, because so much VICIdial guidance circulating outside this curriculum was written years ago against a specific distribution and never updated. A reader who cannot tell Ubuntu from openSUSE at a glance has no way to know whether a given forum post's install commands apply to their own host at all.
Ubuntu and Debian are closely related — Ubuntu is itself built from Debian — which is why they share `apt` and much of their package ecosystem. They still differ in release cadence, default package versions, and some system defaults, so 'Debian-family' is a useful umbrella term for this lesson's purposes, not a claim that the two are identical.
`systemctl` is worth calling out specifically because it crosses the boundary this lesson otherwise draws carefully: it controls services in essentially the same way on Ubuntu, Debian and openSUSE alike, since all three use the same underlying systemd init system. Package management is where the two families genuinely diverge, not service management.
03 / 05
Try one safe check
Read the operating system's own identification file. This is the fastest way to confirm which family a host belongs to before you copy a single command into it, and it works the same way on every modern Linux distribution, which is what makes it a good first habit rather than a distribution-specific trick.
- Before you use it
- Run this on any host you want to identify. It only prints a text file.
cat /etc/os-releaseCaptured demo response · 2026-09-23 21:35 UTC. Any filtering, hidden values or test-only data are identified in the capture label. Select Replay transcript to read the recorded output.
- Success looks like
- The `ID` and `PRETTY_NAME` fields name the distribution directly — `ubuntu`, `debian`, or, on the ViciBox lab this curriculum builds later, `opensuse-leap`.
- Stop if
- If the file is missing entirely, you are likely on a minimal or unusual system; do not guess the family from appearance alone before running a package command.
Recorded lab terminal: os release
Open to enlargeCapture details
Read-only observation, not a completed call or routing test. Display trims blank space; enlargement opens the complete original. Removed local SSH client post-quantum negotiation warning from stderr; command stdout preserved.- The ID field, which names the distribution in a script-friendly, lowercase form
- The PRETTY_NAME field, which is the human-readable version of the same fact
- The VERSION_ID field, so you know not just the family but the specific release
04 / 05
Confirm which package tool is actually present
The operating-system name tells you the family; checking for the package tool itself confirms it, and doubles as a safe habit before running any install instruction you find online. A guide that says 'install this with your package manager' is only useful once you know which package manager that phrase actually refers to on your machine.
`command -v` is itself a useful tool worth knowing beyond this one check: it tells you whether a given program exists on the current user's path without running it, which makes it a safe first step before trying any unfamiliar command a guide asks you to run.
- Before you use it
- Run this on any host. `command -v` only reports whether a program exists on the path; it installs nothing.
command -v apt zypperCaptured demo response · 2026-09-23 21:35 UTC. Any filtering, hidden values or test-only data are identified in the capture label. Select Replay transcript to read the recorded output.
- Success looks like
- Exactly one of the two paths prints on a normal Debian-family or openSUSE host; seeing both would be unusual and worth a closer look at how the host was built.
- Stop if
- If neither prints, the host may not expose either tool on the current user's path — check with an administrator before assuming the family from other clues.
Recorded lab terminal: package manager
Open to enlargeCapture details
Read-only observation, not a completed call or routing test. Display trims blank space; enlargement opens the complete original. Removed local SSH client post-quantum negotiation warning from stderr; command stdout preserved.- Which of the two tools actually reports a path on this host
- Whether the result matches the family the previous check already named
05 / 05
Ready for the next lesson
This curriculum does not build VICIdial from scratch on Ubuntu or Debian. Continue to the generic-openSUSE lesson next, then the platform-choice lesson, to see why ViciBox is this library's lab path instead. Keep whatever you recorded about this host's family and tooling — the platform-choice lesson asks you to compare it against two other options before you commit to one.
Checks and sources
What was checked
- Both samples read standard, distribution-agnostic identification points; neither installs, updates, or removes a package.
- Reviewed read-only SSH observations were added from the ViciBox 12 / SVN 4037 demo on November 4, 2026. Captures show point-in-time state, not successful calling, routing, audio, API writes or recovery.
Primary references
Sources
- VICIdial open source contact center suiteVICIdial Group · accessed September 23, 2026

