Alpine Linux:FAQ: Difference between revisions
Sypedotorg (talk | contribs) m (changing lsusb/lspci informations) |
Prabuanand (talk | contribs) (updated the Introduction line, fixed the heading levels) |
||
Line 1: | Line 1: | ||
[[Image:filetypes.svg|64px|left|link=]] | [[Image:filetypes.svg|64px|left|link=]] | ||
Alpine Linux is an independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency. | |||
Alpine Linux is | This is a list of '''frequently asked questions''' about Alpine Linux. If your question is not answered on this page, check the available [[Alpine Linux:Support|support]] options. | ||
== Where to start? == | == General == | ||
=== Where to start? === | |||
The [[Installation]] page and the [[Installation#Post-Installation|Post Installation]] section on that page, provide a basic orientation. | The [[Installation]] page and the [[Installation#Post-Installation|Post Installation]] section on that page, provide a basic orientation. | ||
Line 16: | Line 14: | ||
Please note that testing is safer on your own virtual machine. | Please note that testing is safer on your own virtual machine. | ||
== I have found a bug, where can I report it? == | === I have found a bug, where can I report it? === | ||
You can report it on the [https://gitlab.alpinelinux.org/groups/alpine/-/issues bugtracker], but search it first to see if the issue has already been reported. | You can report it on the [https://gitlab.alpinelinux.org/groups/alpine/-/issues bugtracker], but search it first to see if the issue has already been reported. | ||
== Are there any details about the releases available? == | === Are there any details about the releases available? === | ||
Yes, please check the [https://alpinelinux.org/releases/ releases] page. | Yes, please check the [https://alpinelinux.org/releases/ releases] page. | ||
== How can I contribute? == | === How can I contribute? === | ||
You can contribute by: | You can contribute by: | ||
* Using the software and giving [https://gitlab.alpinelinux.org/groups/alpine/-/issues feedback]. | * Using the software and giving [https://gitlab.alpinelinux.org/groups/alpine/-/issues feedback]. | ||
Line 31: | Line 29: | ||
Please visit the [[Contribute|Contribute page]] to read more about this topic. | Please visit the [[Contribute|Contribute page]] to read more about this topic. | ||
== Why don't I have man pages or where is the 'man' command? == | === Why don't I have man pages or where is the 'man' command? === | ||
The <code>man</code> command and {{pkg|man-pages}}, the system's ''core'' manual pages are not installed by default. Since binary packages are thinned out and split, documentation sub-packages in the format '''packagename-doc''' are not installed by default. | The <code>man</code> command and {{pkg|man-pages}}, the system's ''core'' manual pages are not installed by default. Since binary packages are thinned out and split, documentation sub-packages in the format '''packagename-doc''' are not installed by default. | ||
Line 50: | Line 48: | ||
Keep in mind not all packages have a corresponding documentation package and even when it has one it may not be in the form '''man pages'''. | Keep in mind not all packages have a corresponding documentation package and even when it has one it may not be in the form '''man pages'''. | ||
== What is the difference between edge and stable releases? == | === What is the difference between edge and stable releases? === | ||
Stable releases are just what they sound like: initially a point-in-time snapshot of the package archives, but then maintained with bugfixes only in order to keep a stable environment. | Stable releases are just what they sound like: initially a point-in-time snapshot of the package archives, but then maintained with bugfixes only in order to keep a stable environment. | ||
Line 57: | Line 55: | ||
Typically these are made when there are major kernel upgrades or package upgrades that require initramfs rebuilds. | Typically these are made when there are major kernel upgrades or package upgrades that require initramfs rebuilds. | ||
== What architectures does Alpine Linux support? == | === What architectures does Alpine Linux support? === | ||
* '''aarch64''': 64-bit ARM processors (e.g. Raspberry Pi 4) | * '''aarch64''': 64-bit ARM processors (e.g. Raspberry Pi 4) | ||
* '''armhf''': 32-bit ARMv6 processors with a floating point unit (e.g. Raspberry Pi 1) (armv6hf) | * '''armhf''': 32-bit ARMv6 processors with a floating point unit (e.g. Raspberry Pi 1) (armv6hf) | ||
Line 67: | Line 65: | ||
'''Please check [https://alpinelinux.org/downloads Download] page for media availability on each one''' and check [https://alpinelinux.org/releases/ Release Branches] page for latest. | '''Please check [https://alpinelinux.org/downloads Download] page for media availability on each one''' and check [https://alpinelinux.org/releases/ Release Branches] page for latest. | ||
== What kinds of release of Alpine Linux are available? == | === What kinds of release of Alpine Linux are available? === | ||
Please check the [https://alpinelinux.org/releases/ Release Branches] page for more information. | Please check the [https://alpinelinux.org/releases/ Release Branches] page for more information. | ||
=Setup= | ==Setup== | ||
== What is the difference between ''sys'', ''data'', and ''diskless'' when running <code>setup-alpine</code> or <code>setup-disk</code>? == | === What is the difference between ''sys'', ''data'', and ''diskless'' when running <code>setup-alpine</code> or <code>setup-disk</code>? === | ||
'''sys:''' This mode is a traditional disk install. The following partitions will be created on the disk: ''/boot/'', ''/'' (filesystem root) and ''swap''. | '''sys:''' This mode is a traditional disk install. The following partitions will be created on the disk: ''/boot/'', ''/'' (filesystem root) and ''swap''. | ||
Line 83: | Line 81: | ||
These modes are explained further on the [[Installation#Installation_Overview|'''Installation''']] page. | These modes are explained further on the [[Installation#Installation_Overview|'''Installation''']] page. | ||
== How do I upgrade Alpine? == | === How do I upgrade Alpine? === | ||
To upgrade to a new stable release or edge: | To upgrade to a new stable release or edge: | ||
{{ic|apk upgrade --available}} | {{ic|apk upgrade --available}} | ||
==Why don't my cron jobs run?== | === Why don't my cron jobs run? === | ||
Start service ''crond'' and add it to the default runlevel: | Start service ''crond'' and add it to the default runlevel: | ||
Line 108: | Line 106: | ||
* Do not use periods on your script file names - this stops them from working; for example: {{Path|/etc/periodic/daily/myscript}} will run, but {{Path|/etc/periodic/daily/myscript.sh}} won't. | * Do not use periods on your script file names - this stops them from working; for example: {{Path|/etc/periodic/daily/myscript}} will run, but {{Path|/etc/periodic/daily/myscript.sh}} won't. | ||
= Time and timezones = | == Time and timezones == | ||
== How do I set the local timezone? == | === How do I set the local timezone? === | ||
If you wish to edit the ''timezone'' (TZ) after installation, run the [[Alpine_setup_scripts#setup-timezone|setup-timezone]] script. | If you wish to edit the ''timezone'' (TZ) after installation, run the [[Alpine_setup_scripts#setup-timezone|setup-timezone]] script. | ||
= Packages = | == Packages == | ||
== Can you build an APK package for ...? == | === Can you build an APK package for ...? === | ||
Please create an [https://gitlab.alpinelinux.org/alpine/aports/issues/new issue] in the [https://gitlab.alpinelinux.org bugtracker]. Prefix it with "package request:" in the title and include a short description (one-line), a URL for the home page, why you need it, and a URL for the source package. | Please create an [https://gitlab.alpinelinux.org/alpine/aports/issues/new issue] in the [https://gitlab.alpinelinux.org bugtracker]. Prefix it with "package request:" in the title and include a short description (one-line), a URL for the home page, why you need it, and a URL for the source package. | ||
== How can I build my own package? == | === How can I build my own package? === | ||
Please see the [[Creating an Alpine package]] page. | Please see the [[Creating an Alpine package]] page. | ||
== What does "required by: world[$pkgname]" mean? == | === What does "required by: world[$pkgname]" mean? === | ||
It means that the package you tried to install does not exist in the repositories you have configured. | It means that the package you tried to install does not exist in the repositories you have configured. | ||
Line 132: | Line 130: | ||
{{cmd|apk add experimental-package@testing}} | {{cmd|apk add experimental-package@testing}} | ||
== How can I find out if a certain package exists in Alpine? == | === How can I find out if a certain package exists in Alpine? === | ||
If you want to only search repositories you have configured in /etc/apk/repositories, then <code>apk search $pkgname</code> should get you sorted. If you want to search all repositories have a look at the [https://pkgs.alpinelinux.org/ online pkg oracle] | If you want to only search repositories you have configured in /etc/apk/repositories, then <code>apk search $pkgname</code> should get you sorted. If you want to search all repositories have a look at the [https://pkgs.alpinelinux.org/ online pkg oracle] | ||
== WARNING: Ignoring APKINDEX.xxxx.tar.gz == | === WARNING: Ignoring APKINDEX.xxxx.tar.gz === | ||
If you get <code>WARNING: Ignoring APKINDEX.xxxx.tar.gz: No such file or directory</code> while running [[Alpine_Linux_package_management|package related tools]], check your {{Path|/etc/apk/repositories}} file. | If you get <code>WARNING: Ignoring APKINDEX.xxxx.tar.gz: No such file or directory</code> while running [[Alpine_Linux_package_management|package related tools]], check your {{Path|/etc/apk/repositories}} file. | ||
Line 145: | Line 143: | ||
{{Cmd|setup-apkrepos}} | {{Cmd|setup-apkrepos}} | ||
= Dynamic DNS = | == Dynamic DNS == | ||
== How do I schedule a regular dynamic DNS update? == | === How do I schedule a regular dynamic DNS update? === | ||
You'll want to install the {{pkg|ez-ipupdate}} package: | You'll want to install the {{pkg|ez-ipupdate}} package: | ||
{{cmd|apk add ez-ipupdate}} | {{cmd|apk add ez-ipupdate}} | ||
Line 166: | Line 164: | ||
{{cmd|lbu ci}} | {{cmd|lbu ci}} | ||
= Terminal = | == Terminal == | ||
== How to enable/fix colors for git? == | === How to enable/fix colors for git? === | ||
The problem is not in git itself or terminal, but in the <tt>less</tt> command. | The problem is not in git itself or terminal, but in the <tt>less</tt> command. | ||
Line 181: | Line 179: | ||
{{Cat|~/.profile|<nowiki>export GIT_EDITOR=vim</nowiki>}} | {{Cat|~/.profile|<nowiki>export GIT_EDITOR=vim</nowiki>}} | ||
== Fix lacking lsusb / lspci output == | === Fix lacking lsusb / lspci output === | ||
If you launch {{ic|lsusb}} or {{ic|lspci}} on a minimal installation, there's no device descriptions, and the latter doesn't exist. | If you launch {{ic|lsusb}} or {{ic|lspci}} on a minimal installation, there's no device descriptions, and the latter doesn't exist. | ||
Line 187: | Line 185: | ||
This can be fixed by installing the '''{{pkg|usbutils}}''' and '''{{pkg|hwdata}}''' tables. | This can be fixed by installing the '''{{pkg|usbutils}}''' and '''{{pkg|hwdata}}''' tables. | ||
= Old questions, no longer frequently asked = | == Old questions, no longer frequently asked == | ||
== Alpine freezes during boot from Compact Flash, how can I fix? == | === Alpine freezes during boot from Compact Flash, how can I fix? === | ||
Most Compact Flash card readers do not support proper DMA.<br /> | Most Compact Flash card readers do not support proper DMA.<br /> | ||
You should append '''nodma''' to the ''append'' line in {{path|syslinux.cfg}}. | You should append '''nodma''' to the ''append'' line in {{path|syslinux.cfg}}. | ||
== How do I remove the CD-ROM? == | === How do I remove the CD-ROM? === | ||
Since the modloop loopback device is on CD-ROM you cannot just run <code>eject</code>. You need to unmount the modloop first.<br /> | Since the modloop loopback device is on CD-ROM you cannot just run <code>eject</code>. You need to unmount the modloop first.<br /> | ||
Unmounting both the modloop and the CDROM in one step can be done by executing: | Unmounting both the modloop and the CDROM in one step can be done by executing: | ||
Line 201: | Line 199: | ||
{{Cmd|eject}} | {{Cmd|eject}} | ||
== How can I install custom firmware in a diskless system? == | === How can I install custom firmware in a diskless system? === | ||
The modules and firmware are both special images which are mounted as read-only.<br /> | The modules and firmware are both special images which are mounted as read-only.<br /> | ||
Line 207: | Line 205: | ||
After reboot Alpine should automatically use the directory on your local storage instead of the loopback device. | After reboot Alpine should automatically use the directory on your local storage instead of the loopback device. | ||
== OpenNTPD reports an error with "adjtime" == | === OpenNTPD reports an error with "adjtime" === | ||
Your log contains something like: | Your log contains something like: | ||
reply from 85.214.86.126: offset 865033148.784255 delay 0.055466, next query 32s | reply from 85.214.86.126: offset 865033148.784255 delay 0.055466, next query 32s | ||
Line 219: | Line 217: | ||
You can make ntpd set the time at startup by adding ''-s'' option to ntpd. This is done by setting '''NTPD_OPTS="-s"''' in {{path|/etc/conf.d/ntpd}}. | You can make ntpd set the time at startup by adding ''-s'' option to ntpd. This is done by setting '''NTPD_OPTS="-s"''' in {{path|/etc/conf.d/ntpd}}. | ||
== Using a cron job to keep the time in sync == | === Using a cron job to keep the time in sync === | ||
Add the following to {{path|/etc/periodic/daily}} (or use another folder under the {{path|/etc/periodic}} hierarchy if you want to run the script more/less frequently) | Add the following to {{path|/etc/periodic/daily}} (or use another folder under the {{path|/etc/periodic}} hierarchy if you want to run the script more/less frequently) | ||
Line 229: | Line 227: | ||
This queries the uk time server pool - you can modify this to suit your localisation, or just use ''pool.ntp.org''. More info here: [https://www.pool.ntp.org/zone/@ https://www.pool.ntp.org/zone/@] | This queries the uk time server pool - you can modify this to suit your localisation, or just use ''pool.ntp.org''. More info here: [https://www.pool.ntp.org/zone/@ https://www.pool.ntp.org/zone/@] | ||
== Windows clients reports an error when trying to sync == | === Windows clients reports an error when trying to sync === | ||
{{pkg|openntpd}} needs to run for a while before it is satisfied it is in sync. | {{pkg|openntpd}} needs to run for a while before it is satisfied it is in sync. | ||
Until then it will set a flag "clock not synchronized" and Windows will report an error while trying to sync with your openntpd server. | Until then it will set a flag "clock not synchronized" and Windows will report an error while trying to sync with your openntpd server. | ||
Only thing to do is wait, do something else for 15-20mins and then check. | Only thing to do is wait, do something else for 15-20mins and then check. | ||
Revision as of 17:11, 18 December 2024
Alpine Linux is an independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency.
This is a list of frequently asked questions about Alpine Linux. If your question is not answered on this page, check the available support options.
General
Where to start?
The Installation page and the Post Installation section on that page, provide a basic orientation.
A broader overview may be found on the official About page and at the wiki overview.
Please note that testing is safer on your own virtual machine.
I have found a bug, where can I report it?
You can report it on the bugtracker, but search it first to see if the issue has already been reported.
Are there any details about the releases available?
Yes, please check the releases page.
How can I contribute?
You can contribute by:
- Using the software and giving feedback.
- Documenting your Alpine Linux experiences on this wiki.
- Flag packages as outdated in the package database, or even better enable release monitoring in Anitya for them.
- In many other ways.
Please visit the Contribute page to read more about this topic.
Why don't I have man pages or where is the 'man' command?
The man
command and man-pages, the system's core manual pages are not installed by default. Since binary packages are thinned out and split, documentation sub-packages in the format packagename-doc are not installed by default.
Install the man
command:
# apk add mandoc
Optionally, install the apropos
command to search in man pages:
# apk add mandoc-apropos
Once mandoc is installed,add documentation for the package where you need it. For example, say you installed nftables and you now require its man pages:
# apk add nftables-doc
The docs meta package installs the documentation sub-package for all the currently installed packages and mandoc, if unavailable. docs meta package ensures that documentation sub-packages are installed or removed automatically for any packages that you may add/remove in future.
# apk add docs
Keep in mind not all packages have a corresponding documentation package and even when it has one it may not be in the form man pages.
What is the difference between edge and stable releases?
Stable releases are just what they sound like: initially a point-in-time snapshot of the package archives, but then maintained with bugfixes only in order to keep a stable environment.
Edge is more of a rolling-release, with the latest and greatest packages available in the online repositories.
Occasionally, snapshot ISO images of the then-current state of edge are made and are available for download.
Typically these are made when there are major kernel upgrades or package upgrades that require initramfs rebuilds.
What architectures does Alpine Linux support?
- aarch64: 64-bit ARM processors (e.g. Raspberry Pi 4)
- armhf: 32-bit ARMv6 processors with a floating point unit (e.g. Raspberry Pi 1) (armv6hf)
- armv7: 32-bit ARMv7 processors with a floating point unit (armv7hf)
- s390x: IBM mainframes using the z/Architecture (z196 minimum)
- ppc64le: 64-bit little-endian POWER devices (e.g. Raptor Talos II) (POWER8 minimum)
- x86: 32-bit Intel and AMD processors commonly found in older personal computers (e.g. Pentium M+). Can also run on x86_64 machines (not recommended). Requires SSE2 and CMOV.
- x86_64: 64-bit Intel and AMD processors commonly found in personal computers (e.g. Core i7, Ryzen 7)
Please check Download page for media availability on each one and check Release Branches page for latest.
What kinds of release of Alpine Linux are available?
Please check the Release Branches page for more information.
Setup
What is the difference between sys, data, and diskless when running setup-alpine
or setup-disk
?
sys: This mode is a traditional disk install. The following partitions will be created on the disk: /boot/, / (filesystem root) and swap. This mode may be used for development boxes, desktops, virtual servers, etc.
data: This mode uses your disk(s) for data storage, not for the operating system. Runs from the media and only a /var/ is created on disk. The system itself will run from a tmpfs (RAM). Use this mode if you only want to use the disk(s) for data, like mailspool, databases, logs, etc.
diskless: No disks are to be used. Alpine local backup may still be used in this mode.
These modes are explained further on the Installation page.
How do I upgrade Alpine?
To upgrade to a new stable release or edge:
apk upgrade --available
Why don't my cron jobs run?
Start service crond and add it to the default runlevel:
rc-service crond start && rc-update add crond
After that the cron daemon is started automatically on system boot and executes the scripts placed in the folders under /etc/periodic/ - there are folders for 15min, hourly, daily, weekly and monthly scripts.
To check whether your scripts are likely to run, use the run-parts command, for example:
run-parts --test /etc/periodic/15min
This command will tell you what should run but will not actually execute the scripts.
If the results of the test are not as expected, check the following:
- Make sure the script is executable - if unsure, issue the command
chmod +x /etc/periodic/[path/scriptname]
- Make sure the first line of your script is
#!/bin/sh
- Do not use periods on your script file names - this stops them from working; for example: /etc/periodic/daily/myscript will run, but /etc/periodic/daily/myscript.sh won't.
Time and timezones
How do I set the local timezone?
If you wish to edit the timezone (TZ) after installation, run the setup-timezone script.
Packages
Can you build an APK package for ...?
Please create an issue in the bugtracker. Prefix it with "package request:" in the title and include a short description (one-line), a URL for the home page, why you need it, and a URL for the source package.
How can I build my own package?
Please see the Creating an Alpine package page.
What does "required by: world[$pkgname]" mean?
It means that the package you tried to install does not exist in the repositories you have configured.
Maybe you forgot to add community or testing to /etc/apk/repositories?
Or is the package in a pinned repository and you forgot to suffix the package with the repo tag? Example:
apk add experimental-package@testing
How can I find out if a certain package exists in Alpine?
If you want to only search repositories you have configured in /etc/apk/repositories, then apk search $pkgname
should get you sorted. If you want to search all repositories have a look at the online pkg oracle
WARNING: Ignoring APKINDEX.xxxx.tar.gz
If you get WARNING: Ignoring APKINDEX.xxxx.tar.gz: No such file or directory
while running package related tools, check your /etc/apk/repositories file.
To check the content of the repositories file
cat /etc/apk/repositories
or
setup-apkrepos
Dynamic DNS
How do I schedule a regular dynamic DNS update?
You'll want to install the ez-ipupdate package:
apk add ez-ipupdate
After that, create a new file at /etc/ez-ipupdate.conf with contents similar to:
service-type=dyndns user=myusername:mypassword interface=eth1 host=myhostname.dyndns.org
Make the new ip cache directory:
mkdir /var/cache/ez-ipupdate lbu add /var/cache/ez-ipupdate
Then schedule a new cron job with this command:
echo >> /var/log/ez-ipupdate && \
/bin/date >> /var/log/ez-ipupdate && \
ez-ipupdate --config-file /etc/ez-ipupdate.conf -f -F /var/run/ez-ipupdate.pid \
--cache-file /var/cache/ez-ipupdate/ipcache --quiet >> /var/log/ez-ipupdate 2>&1
Don't forget to backup your settings!
lbu ci
Terminal
How to enable/fix colors for git?
The problem is not in git itself or terminal, but in the less command. Busybox’s less doesn’t support -r (--raw-control-chars) and -R (--RAW-CONTROL-CHARS) options.
The simplest (yet not ideal) solution is to install GNU less:
apk add less
Additionally, for colorized diff while using verbose commit (git commit -v), add this to shell init scripts (e.g.: ~/.profile):
Contents of ~/.profile
Fix lacking lsusb / lspci output
If you launch lsusb
or lspci
on a minimal installation, there's no device descriptions, and the latter doesn't exist.
This can be fixed by installing the usbutils and hwdata tables.
Old questions, no longer frequently asked
Alpine freezes during boot from Compact Flash, how can I fix?
Most Compact Flash card readers do not support proper DMA.
You should append nodma to the append line in syslinux.cfg.
How do I remove the CD-ROM?
Since the modloop loopback device is on CD-ROM you cannot just run eject
. You need to unmount the modloop first.
Unmounting both the modloop and the CDROM in one step can be done by executing:
/etc/init.d/modloop stop
Then it's possible to eject the CD-ROM:
eject
How can I install custom firmware in a diskless system?
The modules and firmware are both special images which are mounted as read-only.
To fix this issue you can copy the firmware directory to your writeable media (cf/usb) and copy your custom firmware to it.
After reboot Alpine should automatically use the directory on your local storage instead of the loopback device.
OpenNTPD reports an error with "adjtime"
Your log contains something like:
reply from 85.214.86.126: offset 865033148.784255 delay 0.055466, next query 32s reply from 202.150.212.24: offset 865033148.779314 delay 0.400771, next query 3s adjusting local clock by 865033148.779835s adjtime failed: Invalid argument
openntpd is supposed to make small adjustments in the time without causing time jumps.
If the adjustment is too big then something is clearly wrong and ntpd gives up. (its actually adjtime(3) that has a limit on how big adjustments are allowed)
You can make ntpd set the time at startup by adding -s option to ntpd. This is done by setting NTPD_OPTS="-s" in /etc/conf.d/ntpd.
Using a cron job to keep the time in sync
Add the following to /etc/periodic/daily (or use another folder under the /etc/periodic hierarchy if you want to run the script more/less frequently)
Example: file called do-ntp
#!/bin/sh ntpd -d -q -n -p uk.pool.ntp.org
This queries the uk time server pool - you can modify this to suit your localisation, or just use pool.ntp.org. More info here: https://www.pool.ntp.org/zone/@
Windows clients reports an error when trying to sync
openntpd needs to run for a while before it is satisfied it is in sync. Until then it will set a flag "clock not synchronized" and Windows will report an error while trying to sync with your openntpd server.
Only thing to do is wait, do something else for 15-20mins and then check.