How to get regular stuff working

From Alpine Linux
Revision as of 07:59, 7 November 2024 by Prabuanand (talk | contribs) (moved the note related to thinned out packages from Installation page)

In Alpine Linux, binary packages are thinned out and split, giving you even more control over what you install, which in turn keeps your environment as small and efficient as possible. New users of Alpine Linux may be surprised by missing functionality due to this splitting of packages into sub-packages.

For eg: networkmanager* is split into 18 sub-packages with each sub-package providing a specific functionality like Bluetooth, ADSL, VPN, Wifi, ppp, tui, cli etc. Install only the functonality that you require, instead of installing unneeded functionality and their associated dependencies. Always remember to check the package database or use package manager apk to find and install the necessary sub-packages which provide the required functionality.

To minimize footprint, Alpine Linux comes with BusyBox by default. The utilities in BusyBox generally have fewer options and hence missing some functionality. This page explains how to get the regular utilities working as found in other Linux distributions.

Core utilities

Most of the basic file, shell and text manipulation utilities commonly grouped under Core Utilities are provided by BusyBox. To replace it with original coreutils package:

# apk add coreutils

Util-linux

A set of approximately 100 basic Linux system utilities not included in GNU Core Utilities, such as mount, cfdisk, more, lsblk and kill are maintained under Util-linux. To have the complete util-linux package:

# apk add util-linux

Search utilities

Standard search tools grep and find can be installed by installing the packages grep and findutils as follows:

# apk add grep findutils

Bash shell

The default shell used by Alpine Linux is the busybox variant of the ash shell. To install bash:

# apk add bash bash-completion

Hardware Management

Install pciutils and usbutils for configuring PCI and USB hardware respectively. You can always remove these packages once the hardware is configured.

# apk add pciutils usbutils

The packages hwdata-pci and hwdata-usb are dependencies for the above utilities and they are installed automatically.

Disk Management

Managing (removable) disks is much easier with udisks.

# apk add udisks2

To see the mounted disks:

# udisksctl status

Network Management

For network, you may want to install iproute2.

# apk add iproute2

Development environment

Compiling in Alpine may be more challenging because it uses musl-libc instead of glibc. Alpine offers the regular compiler stuff such as gcc.

# apk add gcc

The alpine-sdk meta package is provided to build packages for Alpine. It includes abuild, build-base, and git.

# apk add alpine-sdk

To install CMake:

# apk add cmake extra-cmake-modules

ccache and a lot other tools are also available in Alpine.

Functional differences between musl and glibc