mirror of
https://github.com/clearlinux/clear-linux-documentation.git
synced 2026-07-09 06:06:42 +00:00
Merge pull request #216 from krisdale/kd-swupd-about-edits
Revised intro on Software update concepts page
This commit is contained in:
@@ -3,53 +3,52 @@
|
||||
Software update
|
||||
###############
|
||||
|
||||
The traditional way
|
||||
===================
|
||||
|CLOSIA| does software updates differently than traditional Linux-based
|
||||
operating systems. Where traditional distributions rely on packages for
|
||||
software deployment, |CL| uses the concept of a "bundle" for
|
||||
deployment. Traditional Linux packages provide a particular utility or
|
||||
library; |CL| bundles provide all necessary packages to enable a
|
||||
specific function.
|
||||
|
||||
Traditional Linux-based operating systems are often a mix of several
|
||||
hundred, if not thousands, of open source projects. To make them
|
||||
manageable, most distributions use the concept of "packages" to configure
|
||||
and compile source code into binaries for installation.
|
||||
With |CL|, updating equates to an entirely new OS version with a
|
||||
specific set of bundles, as compared to a package-based distribution in
|
||||
which packages may be updated individually. |CL| updates are
|
||||
efficient, updating only changed files instead of entire packages.
|
||||
|
||||
Many distributions then combine these compiled binaries into so-called
|
||||
packages, resolving dependencies and providing everything needed to
|
||||
install. This is the granularity at which typical distributions deploy
|
||||
their software, enabling system administrators to install and update
|
||||
each package individually or as a set, using tools such as ``yum`` and
|
||||
``apt-get``.
|
||||
System administrators can customize or add bundles to the OS, while still
|
||||
taking advantage of a controlled update stream. This enables system
|
||||
administrators to focus on the pieces that make their deployment unique.
|
||||
|
||||
The Clear way
|
||||
=============
|
||||
|
||||
Clear Linux OS for Intel® Architecture does things a little differently.
|
||||
The following are a few notable features that distinguish it from
|
||||
standard OSes: bundles, versioning, updating, and update speed.
|
||||
|
||||
Bundles
|
||||
-------
|
||||
=======
|
||||
|
||||
While we use the concept of packages to manage compiling source code into
|
||||
installable binaries, we do not deploy software through packages. Instead,
|
||||
we provide "bundles" which operate as a self-contained set of functionality
|
||||
for the system administrator -- functionality that gets enabled by composing
|
||||
all the required upstream open-source projects into one logical unit: a
|
||||
bundle.
|
||||
While we use packages to manage compiling source code into installable
|
||||
binaries, we do not deploy software through packages. Instead, we use bundles
|
||||
to deploy software, where each bundle encapsulates a particular functionality
|
||||
-- functionality that is enabled by composing all the required upstream
|
||||
open-source projects and packages into one logical unit: a bundle. This
|
||||
simplifies installing features on |CL|.
|
||||
|
||||
For additional resources regarding available bundles, useful bundle commands,
|
||||
and compatible |CL| kernels, visit our :ref:`bundles-about`
|
||||
page.
|
||||
|
||||
|
||||
Versioning
|
||||
----------
|
||||
==========
|
||||
|
||||
On a traditional distribution, the process of describing current software
|
||||
In a traditional distribution, the process of describing current software
|
||||
versioning usually involves:
|
||||
|
||||
- Listing and keeping track of the current OS release (generally
|
||||
uninformative about any singular packages or functionality),
|
||||
uninformative about any singular packages or functionality).
|
||||
|
||||
- Keeping track of packages and repositories being used, updating them
|
||||
individually,
|
||||
- Keeping track of packages and repositories being used, and updating them
|
||||
individually.
|
||||
|
||||
- Listing and tracking every package available and installed on the
|
||||
system, none of which are directly tied to the current OS release
|
||||
system, none of which are directly tied to the current OS release.
|
||||
|
||||
This can be done effectively, but given the nearly endless combinations of
|
||||
packages and versions of packages a server may have, it quickly becomes
|
||||
@@ -57,7 +56,7 @@ non-trivial to define what "version" the system is and what software it
|
||||
is running without explicitly going through each system and inspecting
|
||||
every package.
|
||||
|
||||
With the Clear Linux OS for Intel Architecture, we need only track:
|
||||
With |CL|, we need only track:
|
||||
|
||||
- One single number
|
||||
|
||||
@@ -66,50 +65,43 @@ describe the versions of all the software on the OS. Each build is
|
||||
composed of a specific set of bundles made from a particular version of
|
||||
packages. This matters on a daily basis to system administrators, who
|
||||
need to determine which of their systems do not have the latest security
|
||||
fixes, or which combinations of software have been tested, and on what
|
||||
other pieces. Every release of the same number is guaranteed to contain
|
||||
the same versions of software, so there's no ambiguity between two
|
||||
systems running the same Clear Linux OS for Intel Architecture.
|
||||
fixes, or which combinations of software have been tested. Every release
|
||||
of the same number is guaranteed to contain the same versions of software,
|
||||
so there's no ambiguity between two systems running the same version of |CL|.
|
||||
|
||||
|
||||
Updating
|
||||
--------
|
||||
========
|
||||
|
||||
Another notable difference between package-based distributions and Clear Linux
|
||||
Another notable difference between package-based distributions and |CL|
|
||||
is how updates are managed. On a package-based OS, system administrators update
|
||||
each individual package or piece of software to a newer (or older!) version. With
|
||||
Clear Linux OS for Intel Architecture, an update translates to an entirely new
|
||||
OS version, containing one or many updates. It is not possible to update a
|
||||
piece of the system while remaining on the same version of Clear Linux.
|
||||
|CL|, an update translates to an entirely new OS version, containing one
|
||||
or many updates. It is not possible to update a piece of the system while
|
||||
remaining on the same version of |CL|.
|
||||
|
||||
How is this useful? Although it seems, at first, like a huge restriction
|
||||
or limitation, this method has many non-obvious benefits. Imagine a
|
||||
cloud environment composed of numerous machines. Here, a homogeneous set of
|
||||
software makes sense -- from the system administrator's level down to the
|
||||
user level. Homogeneous systems allow users the ability to focus on their
|
||||
contributions and/or code, rather than configuring environments or worrying
|
||||
about synchronizing versions and updates. At the system admin level, it
|
||||
ensures security is tighter and makes it far easier to monitor and update
|
||||
patches.
|
||||
user level. Homogeneous systems allow users to focus on their contributions
|
||||
and/or code, rather than configuring environments or worrying about
|
||||
synchronizing versions and updates. At the system admin level, it ensures
|
||||
security is tighter and makes it far easier to monitor and update patches.
|
||||
|
||||
Clear Linux OS will automatically check for updates and apply them. This default
|
||||
can be disabled by running::
|
||||
|CL| promotes regular updating of the OS and will automatically check
|
||||
for updates and apply them by default.
|
||||
|
||||
# swupd autoupdate --disable
|
||||
|
||||
And reenabled by running::
|
||||
|
||||
# swupd autoupdate --enable
|
||||
To learn how to run an update of your system, visit our :ref:`swupd-guide` page.
|
||||
|
||||
|
||||
Update speed
|
||||
------------
|
||||
============
|
||||
|
||||
Software updates with Clear Linux OS for Intel Architecture are also
|
||||
efficient. Bundles simply describe a set of files, and the update
|
||||
technology updates *only* files that actually changed by using
|
||||
binary-delta technology for efficiency [1]_. Operating systems that use
|
||||
packages as the unit of deployment require full package updates (thus
|
||||
Software updates with |CL| are also efficient. Bundles simply describe
|
||||
a set of files, and the update technology updates *only* files that actually
|
||||
changed by using binary-delta technology for efficiency [1]_. Operating systems
|
||||
that use packages as the unit of deployment require full package updates (thus
|
||||
hogging resources), even when one small file in that package has changed.
|
||||
|
||||
It is quite common for a full OS update fixing a security hole to be
|
||||
@@ -121,15 +113,20 @@ those bits that changed, yielding very small update content (deltas)
|
||||
that can be applied exceedingly fast. As a result, major security patches
|
||||
and core update take merely seconds.
|
||||
|
||||
|
||||
Customize the OS
|
||||
================
|
||||
|
||||
While we realize our definition of bundles makes sense to us, data center
|
||||
operators may have special needs and ideas. Therefore, we provide a
|
||||
:ref:`mixer tool <mixer>`. This tool allows users to customize and add bundles
|
||||
or even add their own software, while keeping the operating
|
||||
system and its updates as the basis. Using this tool, system administrators
|
||||
can focus on the custom pieces their deployments require while staying on
|
||||
can focus on the customization their deployments require while staying on
|
||||
a controlled update stream.
|
||||
|
||||
To learn how to run an update of your system, visit our :ref:`using swupd <swupd-guide>` page.
|
||||
To learn more about mixing, visit our :ref:`mixer-about` page.
|
||||
|
||||
.. [1] The software update technology for Clear Linux* OS for Intel
|
||||
Architecture was first presented at the Linux Plumbers conference in 2012.
|
||||
|
||||
.. [1] The software update technology for |CLOSIA| was first presented at the
|
||||
Linux Plumbers conference in 2012.
|
||||
|
||||
Reference in New Issue
Block a user