Alpine newbie

Alpine Linux is designed for power users, with security, simplicity and resource efficiency in mind.

Alpine is the OS (Operating System), that runs on your machine. Programs such as a web browser run on the OS, and web pages like "wiki.alpinelinux.org" are handled by the web browser.

Keep in mind that today due to the great popularity of Docker, Alpine Linux is one of the most deployed operating systems currently in use, because within every other operating system that uses docker, the docker image it uses is almost always Alpine Linux.


Feature Differences

Alpine Linux is different from most other Linux distros in a few ways:

  1. it is built around musl libc, not glibc, which means there might be incompatibilities with some packages
  2. its main utilities (coreutils) are derived from busybox and suckless, but GNU coreutils can be installed
  3. it uses a hardened Linux kernel by default, but offers an optional vanilla original kernel for desktop users
  4. it compiles all userspace binaries as position-independent executables with stack-smashing protection

In next sections you will find general information necessary to start in the Alpine powered world for a new user.

Index

The User Alpine Newbie Ecosystem:
Link Description
FAQ Some Frequently Asked Questions that might be useful to you
Alpine newbie installation Those writings are more focused on "Follow these steps blindly" for beginners, those pages are specific general cases, by example on virtual-box ones.
Post Install Some post installation steps you might want to take
Desktop environments and Window managers As a minimal distribution, Alpine follows the rule of "upstream provided", this means that Alpine doesn't ship with any graphical environments neither specific integrated configurations for. Of course you can install Desktops Environments and Window Managers but they must be configured by yourself.
Alpine newbie developer Alpine development stack: Alpine Linux is the most used Linux for deploying software, making it a good choice if you are a developer.

Installation

The Alpine newbie installation wiki page is focused on the idea to cover popular quick cases such as ARM, i386 and AMD64 that only offer the ready-to-use installation, that is, cases where only Alpine will be the OS to install, in order to understand it faster. Once understood, you can play and be more granular over your preferred install.

For more granular, advanced or more specific cases you will have to read the official Installation page. It's recommended that you first use VirtualBox or similar and understand the system before trying a more granular install process. That is why we offer the Alpine newbie installation wiki pages!

Post install and Software Packages

See: Post Install

The programs, the software installed to Alpine comes from two places: repositories (those managed by Alpine) and original upstream sources (those compiled as Unix-like traditional way).

Alpine software repositories are managed by the repositories and uses packages. Each Alpine release have two branch of repositories. The /community repository of each Alpine release contains community supported packages that were accepted from the /edge repository. Only /main repository of each version of Alpine release are supported for Main Alpine Developers and Man Powers and received official support by almost few years until new releases happened.

  • main: Main packages are the Alpine package software that have direct support and updates from the Alpine core and main team, also have official special documentation. Are always available for all releases and will have almost substitutions if some are not continued from upstream. Commonly those packages are selected due their responsibility and stability respect upstream availability. Those are in testing and when performs well or are mature goes to main branch.
  • community: community packages are those made by users in team with the official developers and well near integrated to the Alpine packages. They are supported by those user contributions and could end if the user also ends respect with Alpine work, by example could not have substitution in next release due lack of support by upstream author. Those are in testing and when accepted goes to community branch.
  • edge: New packages come into testing repositories of edge Alpine version and are those made by any contributor or man power on Alpine, the edge is unstable current development, this branch of repository has no release linked or related of Alpine. Those are in testing and when accepted goes to community.

APK and package formats

Software packages for Alpine Linux are digitally signed tar.gz archives containing programs, configuration files, and dependency metadata. They have the extension .apk (yes, please don't confused with Android ones), and are often called "a-packs".

Packages are managed with the apk command, located at /sbin/apk. It uses /etc/apk/ for the configurations files and stores all downloaded "a-packs" files in /etc/apk/cache from the repositories before unpacking and putting the package files compiled into the installed system.

As a new user, these technical tips are not necessary now, but you can read the Alpine newbie apk packages page to find out more about package installation. Technical topics are covered on the Alpine Linux package management page.

Developer

In earlier days, Alpine used a separate Gentoo build environment. Nowadays we can build in Alpine environment itself.

There are many kind of developers.. more are Distro targeted (like Alpine package development), others web oriented as Front-end web development or a Back-End Web Developer (like webpage design or applications services) , and others DevOps (backend programming and/or software development (Dev) and information-technology operations (Ops)).

In DevOps and/or Web Development, whatever will be, installation of the devel tools are the next step: the alpine-sdk is a metapackage that pulls in the most essential packages used to development environments; Also the crosstool-ng if you will setup different architectures or cross-compiling.

For development of packages.. there are two branches: using the Alpine edge branch or using the Alpine stable, the only difference are the target, edge used the most up to date but not well tested software packages and the results are for the next Alpine releases. The recommendation to develop packages for newbies, are using Alpine Linux in a chroot, later when users got more experience.. must move to others way to develop packages.. at the actual status of a newbie it's the most easy and faster way.

All the Development process are detailed for newbie users in the Alpine newbie developer page.

Developers: compilers, IDE's and tools

Servers: deploy in production

Community

Here are our social networks for newbie users:

See Also

  1. Alpine and BIOS/UEFI Support Status and related topics
This article is issued from Alpinelinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.