Post installation: Difference between revisions

From Alpine Linux
(Language related information moved to Musl page temporarily with other locale information)
 
(34 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Draft|This page "should" contain accurate and up to date information but is a work in progess}}
{{Delete|After all of the information in this page is moved to their own pages, and links to the pages have been provided in [[Installation#Post-Installation]] this page should be deleted}}


== General Notes ==
== General Notes ==


* When '''#''' is displayed before a command that means the command needs to be run with root privileges,
* When '''#''' is displayed before a command, that means the command needs to be run with root privileges.


* Anything in < > is likely just a placeholder that you need to replace (example: <editor> file.txt)
* Anything in < > is likely just a placeholder that you need to replace (example: <editor> file.txt).


* Some information in here might be a repeat of information in other wiki pages, if you find a section where that is the case please add a link to the original wiki page.
* Some information in here might be a repeat of information in other wiki pages. If you find a section where that is the case, please add a link to the original wiki page.


<br>
<br>
Line 27: Line 27:
<br>
<br>


== Creating a new user account ==
== Creating a new standard user account ==
 
{{Note| This should be safe to delete.  All relevant information should be in [[Setting up a new user]]}}


After installing Alpine by default you only get a root account. You will probably want to create an account that is not root,
After installing Alpine by default you only get a root account. You will probably want to create an account that is not root,
Line 36: Line 38:
<br>
<br>


You will probably want to install '''doas''' so you can allow <YourUsername> to use root privileges
You will probably want to install '''doas''' so you can allow <YourUsername> to use root privileges:
 
{{cmd|# apk add doas}}
{{cmd|# apk add doas}}


<br>
<br>


If you want your user to be able to use root privileges add them to the Wheel group
If you want your user to be able to use root privileges, first add them to the '''wheel''' group:
 
{{cmd|# adduser <YourUsername> wheel}}
{{cmd|# adduser <YourUsername> wheel}}


<br>
<br>


Allow members of the '''Wheel''' group to use root privileges with doas:
You will then want to allow members of the '''wheel''' group to use root privileges with '''doas'''. To do this, open the '''doas''' config file:


{{cmd|# <editor> /etc/doas.d/doas.conf}}
{{cmd|# <editor> /etc/doas.d/doas.conf}}


add this to a new line:
Add the following line and save the file:
 
{{cmd|permit persist :wheel}}
{{cmd|permit persist :wheel}}


<br>
<br>


Switch to the new account type '''exit''' in the shell and login with the new user,
To switch to your new account, type '''exit''' in the shell and login as the new user.


<br>
<br>
Line 61: Line 66:
==== Groups ====
==== Groups ====


Groups are needed for certain operations on your system (e.g <code>audio</code> to manage your system audio), below is a list of groups,
Groups are needed for certain operations on your system (e.g <code>audio</code> to manage your system audio). Below is a list of groups:
{{Note|may be incomplete, if you see a group missing please add it along with a description}}
{{Note|may be incomplete, if you see a group missing please add it along with a description}}


{{Cmd|disk:x:6:root,adm      Only if need usage vith virtual machines and access to other partitions over new disks for
{{Cmd|disk:x:6:root,adm      Only if need usage with virtual machines and access to other partitions over new disks for
lp:x:7:lp              If will need to use printing services and printers management
lp:x:7:lp              If you need use printing services and printers management
floppy:x:11:root      Backguard compatible group, use only if need access to external special devices
floppy:x:11:root      Backward compatible group, use only if need access to external special devices
audio:x:18:            Need for audio listening and management of sound volumes as normal user
audio:x:18:            Need for audio listening and management of sound volumes as normal user
cdrom:x:19:            For access to disck writers and mounting DVD, BR or CD rom disk as normal user
cdrom:x:19:            For access to disk writers and mounting DVD, BR or CD-ROM disk as normal user
dialout:x:20:root      Need for dial private connections and use of modems as normal users
dialout:x:20:root      Need for dial private connections and use of modems as normal users
tape:x:26:root        Need have into this if plan to use special devices for backup.. rarelly in no servers
tape:x:26:root        Need this if planning to use special devices for backup. Rarely used on servers
video:x:27:root        For usage of cameras, mor thant one GPU special features, as normal user
video:x:27:root        For usage of cameras, more than one GPU special features, as normal user
netdev:x:28:          For network connections management as normal user
netdev:x:28:          For network connections management as normal user
kvm:x:34:kvm          Only if as normal user will manage graphically virtual machines.. rarelly on no servers
kvm:x:34:kvm          Only if as normal user will manage graphically virtual machines. Rarely used on servers
games:x:35:            Need if you want to play games also specially need if will share score between users
games:x:35:            Need if you want to play games also especially needed to share score between users
cdrw:x:80:            To write RW-DVD, RW-BR or RW-CD disk on a disk writing device
cdrw:x:80:            To write RW-DVD, RW-BR or RW-CD disk on a disk writing device
apache:x:81:          Need if you will perfom development as normal user and want to publish locally on web server
apache:x:81:          Need if you will perform development as normal user and want to publish locally on web server
usb:x:85:              Need to access to special usb devices, deprecated group
usb:x:85:              Need to access to special USB devices, deprecated group
users:x:100:games      If you plan to used common files for all users, mandatory as desktop usage}}
users:x:100:games      If you plan to used common files for all users, mandatory as desktop usage
 
input:x:23            Needed if you want your mouse and keyboard to work in a graphical desktop environment (xorg only? idk) }}
<br>
<br>


Line 89: Line 94:
<br>
<br>


== Shell ==
== Repositories ==


{{Note|No other shells besides [https://en.wikipedia.org/wiki/Almquist_shell ash] is included with Alpine by default, you will need to install another shell if you want a different one}}
{{Note| This should be safe to delete. All relevant information should be in [[Repositories]]}}
 
<br>
 
By default AlpineLinux uses the [https://en.wikipedia.org/wiki/Almquist_shell ash] shell, but many users may prefer {{Pkg|bash}}, {{Pkg|zsh}}, {{Pkg|fish}} or another shell, to change this run the following command:
 
{{Cmd|$ chsh}}
enter your password and you should get the following output:
 
{{Cat|$ chsh|Changing the login shell for user
Enter the new value, or press ENTER for the default
Login Shell [/bin/ash]:}}
 
<br>
 
now enter the path for the shell you want to use (e.g <code>/bin/bash</code>) and press enter to confirm this change,
{{Note|You may need to log out or reboot for this change to take effect, '''ash''' is a part of busybox so you can revert back to '''ash''' at anytime with the same steps}}
 
<br>
 
== Repositories ==


The Alpine software repositories have three branches:
The Alpine software repositories have three branches:


* '''Main''': Main packages are the Alpine software that has direct support and updates from the Alpine core and main team. They also have official special documentation, are always available for all releases and will have substitutions if some are not continued from upstream. Commonly, those packages are selected due to their responsibility and stability with respect to upstream availability. When those in ''testing'' perform well or are mature, they go to the ''main'' branch.
* '''Main''': Main packages are the Alpine software that have direct support and updates from the Alpine core and main team. They also have official special documentation, are always available for all releases and will have substitutions if some are not continued from upstream. Commonly, those packages are selected due to their responsibility and stability with respect to upstream availability. When those in ''testing'' perform well or are mature, they go to the ''main'' branch.
* '''Community''': Community packages are those made by users in concert with the official developers and integrated into the Alpine packages. They are user supported. Support could end if the user ends support with respect to Alpine work. For example, could not include substitution in next release due to lack of support by the upstream author. They are in ''edge'' and when accepted, go to the ''community'' branch.
* '''Community''': Community packages are those made by users in concert with the official developers and integrated into the Alpine packages. They are user supported. Support could end if the user ends support with respect to Alpine work. For example, could not include substitution in next release due to lack of support by the upstream author. They are in ''edge'', and when accepted, go to the ''community'' branch.
* '''Edge''': New packages come into testing repositories of the edge Alpine version and are those made by any contributor or man power on Alpine. The edge contains unstable current development content. This branch has no release linked or related to Alpine. They are in ''testing'' and when accepted, go to the ''community'' branch.
* '''Edge''': New packages come into testing repositories of the edge Alpine version and are those made by any contributor or manpower on Alpine. The edge contains unstable current development content. This branch has no release linked or related to Alpine. They are in ''testing'' and when accepted, go to the ''community'' branch.


<br>
<br>


By default only the '''main''' repository is enabled, most users will probably want to enable the '''community''' repository, to enable a repository remove the '''#''' in front of the url along with any blank space.
By default only the '''main''' repository is enabled. Most users will probably want to enable the '''community''' repository. To enable a repository, remove the '''#''' in front of the URL along with any blank space.


<br>
<br>
Line 131: Line 116:
{{cat|/etc/apk/repositories|http://dl-cdn.alpinelinux.org/alpine/v3.15/community}}
{{cat|/etc/apk/repositories|http://dl-cdn.alpinelinux.org/alpine/v3.15/community}}


<br>


<br>
To edit the repositories, open the <code>/etc/apk/repositories</code> file in a text editor:


To edit the repositories open the file in a text editor:
{{cmd|# <editor> /etc/apk/repositories}}
{{cmd|# <editor> /etc/apk/repositories}}


Line 148: Line 133:
#http://dl-cdn.alpinelinux.org/alpine/edge/testing}}
#http://dl-cdn.alpinelinux.org/alpine/edge/testing}}


{{Note|The edge repositories contain unstable and/or possibly untested packages use at your own risk!}}
{{Note|The edge repositories contain unstable and/or possibly untested packages. Use at your own risk!}}


<br>
<br>


To avoid having to manually update the verison in '''/etc/apk/repositories''' for each Alpine Linux update, change '''v3.15''' to '''latest-stable'''
To avoid having to manually update the verison in '''/etc/apk/repositories''' for each Alpine Linux update, change '''v3.15''' to '''latest-stable'''.


Example:
Example:
Line 162: Line 147:
#http://dl-cdn.alpinelinux.org/alpine/edge/testing}}
#http://dl-cdn.alpinelinux.org/alpine/edge/testing}}


{{Note|Changing the repositories to latest-stable may initiate unexpected release upgrades, do this at your own risk!}}
{{Note|Changing the repositories to latest-stable may initiate unexpected release upgrades. Do this at your own risk!}}


<br>
<br>


For [https://en.wikipedia.org/wiki/HTTPS#Technical security reasons] it may be a good idea to change the url's from '''http''' to '''https'''
For [https://en.wikipedia.org/wiki/HTTPS#Technical security reasons], it may be a good idea to change the url's from '''http''' to '''https'''


Example:
Example:
Line 176: Line 161:
#https://dl-cdn.alpinelinux.org/alpine/edge/testing}}
#https://dl-cdn.alpinelinux.org/alpine/edge/testing}}


{{Note|some Alpine Linux package mirrors may not support https, if that is the case you will need to revert back or change mirrors}}
{{Note|Some Alpine Linux package mirrors may not support HTTPS. If that is the case, you will need to revert back or change mirrors.}}


<br>
<br>


Once you have edited '''/etc/apk/repositories''' sync the repositories with:
Once you have edited '''/etc/apk/repositories''', sync the repositories with:


{{cmd|# apk update}}
{{cmd|# apk update}}
Line 189: Line 174:


==== Xorg ====
==== Xorg ====
Most desktop enviroments (DE) or Windows Managers (WM) require Xorg (also called: X11, X), although in the future many will fully migrate to [[Wayland]] currently Xorg is still widely used,
Most desktop environments (DE) or Windows Managers (WM) require Xorg (also called: X11, X). In the future many will migrate to [[Wayland]], currently Xorg is still widely used.


<br>
Alpine Linux provides a script that will install Xorg. Run the following command to install Xorg:
 
There is two ways you can get Xorg installed,
 
<br>
 
By default Alpine Linux provides a script that will install Xorg, run the following command to install Xorg:
{{cmd|# setup-xorg-base}}
{{cmd|# setup-xorg-base}}
or
{{cmd|# apk add xorg-server xorg-server-common xorg-server-dev xorgproto xorgxrdp xorgxrdp-dev}}
{{Note| the apk add method is probably incomplete}}
<br>


==== Wayland ====
==== Wayland ====
Line 216: Line 188:
== Fonts ==
== Fonts ==


If you plan to use a graphical environment you may need/want to install fonts
If you plan to use a graphical desktop environment, you may need/want to install fonts.
{{Note|depending on the desktop environment/window manager fonts may or may not be installed automatically or as dependencies}}
{{Note|depending on the desktop environment/window manager fonts may or may not be installed automatically or as dependencies}}


Line 231: Line 203:
== Sound ==
== Sound ==


By default Alpine doesnt come with any Sound managment out of the box, these are your options:
By default Alpine does not come with any sound management out of the box. These are your options:


* [[PipeWire]]
* [[PipeWire]]
Line 237: Line 209:
* [[ALSA]]
* [[ALSA]]


{{Note|If your unsure {{Pkg|pipewire}} is the recommended option}}
{{Note|If you are unsure, {{Pkg|pipewire}} is the recommended option}}


<br>
<br>


== Man pages ==


Most Linux distributions have '''man''' pages, man pages allow you type <code>man <package></code> in a terminal and get some useful information about packages installed on your system quicky without a internet connection, by default Alpine does not include '''man''', you can add that with one of the following:
== Miscellaneous ==


* <code># apk add man-pages</code> Installs basic manual pages.
Some other miscellaneous things that might be useful:
* <code># apk add mandoc</code> Installs the man command to be able to open man pages.
* <code># apk add mandoc-apropos</code> Installs the apropos command to search in man pages.
* <code># apk add docs</code> Installs all the *-doc sub-packages of installed packages.


{{Note|man pages may not be available for every package}}
==== Basic tools ====


<br>
Alpine is a minimalist Linux distribution. If you expected a behavior like other Linux distributions, the similarity to them will be minimal at best. To install a selection of commonly used packages, run:


== Language support ==
{{Cmd|# apk add sed attr dialog bash bash-completion grep util-linux pciutils usbutils binutils findutils readline lsof less nano curl}}


{{Expand}}
==== Manual pages ====


* Fix unicode defaults: <code>sed -i 's/#unicode="NO"/#unicode="NO"\nunicode="YES"/' /etc/rc.conf</code>
{{Note| This should be safe to delete.  All relevant information should be in [[Alpine_Linux:FAQ#Why_don.27t_I_have_man_pages_or_where_is_the_.27man.27_command.3F]]}}
* <code>apk add musl-locales</code> Installs a limited set of locales (languages) for musl (C library) generated console messages.
* Listing defined locales is possible with <code>locale -a</code>
* <code>cp /etc/profile.d/locale.sh /etc/profile.d/locale.sh.sh</code> Copies the default locale settings. Then the custom override file can be edited <code>nano /etc/profile.d/locale.sh.sh</code>.
* <code>apk add lang</code> Pulls in the translation packages of all installed packages.
* <code>apk list hunspell*</code>  To list available hunspell dictionary packages.
* <code>apk list *-xy *-xy-*</code>  To list translation packages for your specific (xy) language (for example, pt for Portuguese).
 
<br>


== Miscellaneous ==
Manual pages are not included in the base install, but are just an apk command away:


Some other miscellaneous things that might be useful:
{{Cmd|# apk add man-pages mandoc}}


==== basic tools ====
In case you want to check if a specific command/program/configuration file has man pages:


Alpine is a minimalist Linux distribution. If you expected a behavior like other Linux distributions, the similarity to them will be minimal at best. Run:
{{Cmd|$ man -k dd
$ man -k curl
$ man -k host.conf}}


{{Cmd|# apk add sed attr dialog bash bash-completion grep util-linux pciutils usbutils binutils findutils readline lsof less nano curl}}


{{Cmd|<nowiki>export PAGER=less</nowiki>}}
To automatically install the documentation for all installed packages, run:


<br>
{{Cmd|# apk add docs}}


== Troubleshooting ==
== Troubleshooting ==


==== I dont have permission to do anything in my user's home directory ====
==== I don't have permission to do anything in my user's home directory! ====


By default the permissions of your new user(s) home directory may be limited to the root account, run one of these commands to change that:  
By default the permissions of your new user(s) home directory may be limited to the root account. Run one of these commands to change that:  


{{cmd|# chmod 700 /home/<YourUsername>}}
{{cmd|# chown <YourUserName> /home/<YourUserName> && chmod 700 /home/<YourUsername>}}


or
or


{{cmd|# chmod 777 /home/<YourUsername>}}
{{cmd|# chown <YourUserName> /home/<YourUserName> && chmod 750 /home/<YourUsername>}}


<br>
<br>
Line 298: Line 259:
== See also ==
== See also ==
* [[Installation]]
* [[Installation]]
* [[Alpine newbie]]
* [[Comparison with other distros]]
 


[[Category:Newbie]]
[[Category:Newbie]]
[[Category:Installation]]

Latest revision as of 14:44, 8 November 2024

This material is proposed for deletion ...

After all of the information in this page is moved to their own pages, and links to the pages have been provided in Installation#Post-Installation this page should be deleted (Discuss)
Make sure no other pages link here and check the page's history before deleting.

General Notes

  • When # is displayed before a command, that means the command needs to be run with root privileges.
  • Anything in < > is likely just a placeholder that you need to replace (example: <editor> file.txt).
  • Some information in here might be a repeat of information in other wiki pages. If you find a section where that is the case, please add a link to the original wiki page.


Network setup

Wi-Fi

Ethernet (Wired)

This material needs expanding ...

Documentation on Ethernet (Wired) internet setup needs to be created/expanded, maybe information from other wiki's/docs might be helpful?


Creating a new standard user account

Note: This should be safe to delete. All relevant information should be in Setting up a new user

After installing Alpine by default you only get a root account. You will probably want to create an account that is not root,

# adduser <YourUsername>

Note: replace <YourUsername> with the username of your choice


You will probably want to install doas so you can allow <YourUsername> to use root privileges:

# apk add doas


If you want your user to be able to use root privileges, first add them to the wheel group:

# adduser <YourUsername> wheel


You will then want to allow members of the wheel group to use root privileges with doas. To do this, open the doas config file:

# <editor> /etc/doas.d/doas.conf

Add the following line and save the file:

permit persist :wheel


To switch to your new account, type exit in the shell and login as the new user.


Groups

Groups are needed for certain operations on your system (e.g audio to manage your system audio). Below is a list of groups:

Note: may be incomplete, if you see a group missing please add it along with a description

disk:x:6:root,adm Only if need usage with virtual machines and access to other partitions over new disks for lp:x:7:lp If you need use printing services and printers management floppy:x:11:root Backward compatible group, use only if need access to external special devices audio:x:18: Need for audio listening and management of sound volumes as normal user cdrom:x:19: For access to disk writers and mounting DVD, BR or CD-ROM disk as normal user dialout:x:20:root Need for dial private connections and use of modems as normal users tape:x:26:root Need this if planning to use special devices for backup. Rarely used on servers video:x:27:root For usage of cameras, more than one GPU special features, as normal user netdev:x:28: For network connections management as normal user kvm:x:34:kvm Only if as normal user will manage graphically virtual machines. Rarely used on servers games:x:35: Need if you want to play games also especially needed to share score between users cdrw:x:80: To write RW-DVD, RW-BR or RW-CD disk on a disk writing device apache:x:81: Need if you will perform development as normal user and want to publish locally on web server usb:x:85: Need to access to special USB devices, deprecated group users:x:100:games If you plan to used common files for all users, mandatory as desktop usage input:x:23 Needed if you want your mouse and keyboard to work in a graphical desktop environment (xorg only? idk)


To add your user to a group use the following command:

# adduser <YourUsername> <group>

Note: you need to log out for the group change(s) to take effect


Repositories

Note: This should be safe to delete. All relevant information should be in Repositories

The Alpine software repositories have three branches:

  • Main: Main packages are the Alpine software that have direct support and updates from the Alpine core and main team. They also have official special documentation, are always available for all releases and will have substitutions if some are not continued from upstream. Commonly, those packages are selected due to their responsibility and stability with respect to upstream availability. When those in testing perform well or are mature, they go to the main branch.
  • Community: Community packages are those made by users in concert with the official developers and integrated into the Alpine packages. They are user supported. Support could end if the user ends support with respect to Alpine work. For example, could not include substitution in next release due to lack of support by the upstream author. They are in edge, and when accepted, go to the community branch.
  • Edge: New packages come into testing repositories of the edge Alpine version and are those made by any contributor or manpower on Alpine. The edge contains unstable current development content. This branch has no release linked or related to Alpine. They are in testing and when accepted, go to the community branch.


By default only the main repository is enabled. Most users will probably want to enable the community repository. To enable a repository, remove the # in front of the URL along with any blank space.


(Example) Disabled:

Contents of /etc/apk/repositories

#http://dl-cdn.alpinelinux.org/alpine/v3.15/community

(Example) Enabled:

Contents of /etc/apk/repositories

http://dl-cdn.alpinelinux.org/alpine/v3.15/community


To edit the repositories, open the /etc/apk/repositories file in a text editor:

# <editor> /etc/apk/repositories


Example default configuration:

Contents of /etc/apk/repositories

#/media/cdrom/apks http://dl-cdn.alpinelinux.org/alpine/v3.15/main # http://dl-cdn.alpinelinux.org/alpine/v3.15/community #http://dl-cdn.alpinelinux.org/alpine/edge/main #http://dl-cdn.alpinelinux.org/alpine/edge/community #http://dl-cdn.alpinelinux.org/alpine/edge/testing
Note: The edge repositories contain unstable and/or possibly untested packages. Use at your own risk!


To avoid having to manually update the verison in /etc/apk/repositories for each Alpine Linux update, change v3.15 to latest-stable.

Example:

Contents of /etc/apk/repositories

#/media/cdrom/apks http://dl-cdn.alpinelinux.org/alpine/latest-stable/main http://dl-cdn.alpinelinux.org/alpine/latest-stable/community #http://dl-cdn.alpinelinux.org/alpine/edge/main #http://dl-cdn.alpinelinux.org/alpine/edge/community #http://dl-cdn.alpinelinux.org/alpine/edge/testing
Note: Changing the repositories to latest-stable may initiate unexpected release upgrades. Do this at your own risk!


For security reasons, it may be a good idea to change the url's from http to https

Example:

Contents of /etc/apk/repositories

#/media/cdrom/apks https://dl-cdn.alpinelinux.org/alpine/v3.15/main https://dl-cdn.alpinelinux.org/alpine/v3.15/community #https://dl-cdn.alpinelinux.org/alpine/edge/main #https://dl-cdn.alpinelinux.org/alpine/edge/community #https://dl-cdn.alpinelinux.org/alpine/edge/testing
Note: Some Alpine Linux package mirrors may not support HTTPS. If that is the case, you will need to revert back or change mirrors.


Once you have edited /etc/apk/repositories, sync the repositories with:

# apk update


Installing a Display Server (for graphical sessions)

Xorg

Most desktop environments (DE) or Windows Managers (WM) require Xorg (also called: X11, X). In the future many will migrate to Wayland, currently Xorg is still widely used.

Alpine Linux provides a script that will install Xorg. Run the following command to install Xorg:

# setup-xorg-base

Wayland

See also: Wayland

This material needs expanding ...

Wayland documentation needs to be expanded


Fonts

If you plan to use a graphical desktop environment, you may need/want to install fonts.

Note: depending on the desktop environment/window manager fonts may or may not be installed automatically or as dependencies

See: Fonts


Installing a desktop environment or window manager

See: Desktop environments and Window managers


Sound

By default Alpine does not come with any sound management out of the box. These are your options:

Note: If you are unsure, pipewire is the recommended option



Miscellaneous

Some other miscellaneous things that might be useful:

Basic tools

Alpine is a minimalist Linux distribution. If you expected a behavior like other Linux distributions, the similarity to them will be minimal at best. To install a selection of commonly used packages, run:

# apk add sed attr dialog bash bash-completion grep util-linux pciutils usbutils binutils findutils readline lsof less nano curl

Manual pages

Note: This should be safe to delete. All relevant information should be in Alpine_Linux:FAQ#Why_don.27t_I_have_man_pages_or_where_is_the_.27man.27_command.3F

Manual pages are not included in the base install, but are just an apk command away:

# apk add man-pages mandoc

In case you want to check if a specific command/program/configuration file has man pages:

$ man -k dd $ man -k curl $ man -k host.conf


To automatically install the documentation for all installed packages, run:

# apk add docs

Troubleshooting

I don't have permission to do anything in my user's home directory!

By default the permissions of your new user(s) home directory may be limited to the root account. Run one of these commands to change that:

# chown <YourUserName> /home/<YourUserName> && chmod 700 /home/<YourUsername>

or

# chown <YourUserName> /home/<YourUserName> && chmod 750 /home/<YourUsername>


See also