newbie - tutorial : alpine desktop finished

This commit is contained in:
mckaygerhard 2022-08-31 18:08:25 -04:00
parent f7cbf6b857
commit af79a435d2
4 changed files with 783 additions and 251 deletions

View File

@ -18,6 +18,7 @@ Linux is just the **kernel** that handles and manages the **hardware** to the op
* [Feature Differences](#feature-differences) * [Feature Differences](#feature-differences)
* [Installation](#installation) * [Installation](#installation)
* [alpine-newbie-xfce-desktop.md](alpine-newbie-xfce-desktop.md)
* [Post install and Software Packages](#post-install-and-software-packages) * [Post install and Software Packages](#post-install-and-software-packages)
* [About the repositories of programs](#about-the-repositories-of-programs) * [About the repositories of programs](#about-the-repositories-of-programs)
* [APK and package formats](#apk-and-package-formats) * [APK and package formats](#apk-and-package-formats)
@ -60,6 +61,7 @@ that is why we offered in newbie category the [Alpine Newbie Install](alpine-new
1. [Alpine Newbie Prepare](alpine-newbie-prepare.md) 1. [Alpine Newbie Prepare](alpine-newbie-prepare.md)
2. [Alpine Newbie Install](alpine-newbie-install.md) 2. [Alpine Newbie Install](alpine-newbie-install.md)
3. [alpine-newbie-xfce-desktop.md](alpine-newbie-xfce-desktop.md)
## Post install and Software Packages ## Post install and Software Packages

View File

@ -1,36 +1,60 @@
.. firs of all.. when you start to learn something you should check your available resources agains the needs .. .. firs of all.. When starting to learn something, you should weigh
your capabilities and availability of resources:
## requirements ## 1 - Check requirements
We are persons, so first of all [we have real life requirements](#real-life-requirements) We are persons, [we have real life requirements](#real-life-requirements)
and after [we need related requirements](#related-requirements). and after [we need related requirements](#related-requirements).
You as future contributor or developer must check your resources and adapt those to your situation..
that seems unrelated to learning but ITS VERY IMPORTANT! Why?: well cos in linux and development
you shoul READ A LOT .. and that will waste time from your life.
### Real life requirementes ### Real life requirementes
* **Manners**, you will must have a vocation for reading and analysis. * **Manners**, you will must have a vocation for reading and analysis.
* **Time**, you will need time, cos you will need to read a lot! * **Time**, you will need time, cos you will need to read a lot!
* **Computer**, you should have a pc, or similar, by example most of the people uses the androit phone to handle an internal linux using [termux](termux-pending-file.md) * **Device**, you should have a computer, or phone at least, or similar, by example using [Termux or IOs for phones](alpine-tutorial-in-phones.md)
### Related requirementes ### Related requirementes
* **Knowledge** you will need a knowed editor, a god knowledge of git as minimal base.. * **Knowledge** have knowledge of using linux, git and editors
* **Internet**, and minimal bandwitch of internet network.. cos almost today all the development will forced to you to contribute over internet. * **vi/nano** you must know how to use VI and NANO editors, just write and save are enought
* **LFSH** you must read about the linux filesystem hierarchy, just where the files should go
* **git** you must know minimal usage of git, just clone and pull are enought
* **Unix-like**, you should have some kind of way to interact with a UNIX like operating system, like MAC or Linux. * **Unix-like**, you should have some kind of way to interact with a UNIX like operating system, like MAC or Linux.
* **xterm** you must know how to use, cpy/paste text and manage a terminal command line
* **ssh** you ust know how to use SSH at the comand line
* **Internet**, and minimal bandwitch of internet network.. cos almost today all the development will forced to you to contribute over internet.
### About this wiki newbie ## 2 - Where to start
This material is a main one, for a more focused tutorial please check Please, check requirements mentioned above, before continues; **this material
the [../tutorials/](../tutorials/) directory space, that have more focused or maybe simple ways to (newbie sections) assumes a more general level and helps you to follow the steps more slowly:
reach specific objetives. Of course those **guides or tutorials will assume you already have knowledge**. **Of course the first document to read is [alpine-newbie-install.md](alpine-newbie-install.md).**
and then **after install read [alpine-newbie-xfce-desktop.md](alpine-newbie-xfce-desktop.md)**
On the other hand, **this material (newbie sections) assumes a more general level and helps you to follow the steps more slowly, But for more focused guides, the requirements mentioned above are mandatory,
in categories and explained steps**. without them you will not be able to understand the documents at the [../tutorials/](../tutorials/)
directory space, **guides or tutorials will assume you already have those knowledge requirements**.
### WARNING
* First of all, if you do not use Linux before, this is not a "click click click" environment
* Second: if you comes from other Linux, there are a huge difference respect others: MUSL libc!
Al of those means that most of the programs may need manual intervention of precompilation.
IF you plan to use Alpine Linux as desktop maybe you will find a difficult path but,
its totally workable, and also pretty best performed. Alpine its best know for usage over containers,
like dockers or virtual machines.
### About copyright material ### About copyright material
**CC BY-NC-SA**: the project allows reusers to distribute, remix, adapt, and build upon the material
in any medium or format for noncommercial purposes only, and only so long as attribution is given
to the creators involved. If you remix, adapt, or build upon the material, you must license the modified
material under identical terms, includes the following elements:
* **BY** Credit must be given to the creator of each content respectivelly, starting at the first contributor.
* **NC** Only noncommercial uses of the work are permitted, with exceptions if you fill an issue here!
* **SA** Adaptations must be shared under the same terms, you must obey this terms and do not change it.
Please check our [../alpine/copyright.md](../alpine/copyright.md). Please check our [../alpine/copyright.md](../alpine/copyright.md).

View File

@ -0,0 +1,591 @@
# Alpine XFCE4 desktop setup
===========================================================
* [preparation](#preparation-xfce4-aline)
* [instalation](#instalation)
* [setup OS configuration](#setup-os-configuration)
* [configuration programs and repositories](#configuration-programs-and-repositories)
* [setup system users](#setup-system-users)
* [setup hardware media support and graphical subsystem](#setup-hardware-media-support-and-graphical-subsystem)
* [setup software graphical fonts and languajes](#setup-software-graphical-fonts-and-languajes)
* [setup hardware media support and sound subsystem](#setup-hardware-media-support-and-sound-subsystem)
* [Instalacion XFCE4 Alpine](#instalacion-xfce4-apine)
* [Desktop multimedia and media devices](#desktop-multimedia-and-media-devices)
* [Desktop Office suite](#desktop-office-suite)
* [Development](#development)
* [base console development](#base-console-development)
* [base gui development](#base-gui-development)
* [Licensing clarifications](#licensing-clarifications)
* [See also](#see-also)
## preparation Xfce4 Alpine
To have a usable desktop without having to wonder why it doesn't sound,
or why the video file doesn't display, **you should avoid minimalisms if
you don't already have advanced knowledge** of alpine and even more so of linux.
For desktop you should have at least 100G of space on the ROOT disk,
and at least 2G of memory on the RAM.
The document **assumes that you already have Alpine Linux installed
otherwise check the best option at [alpine-newbie-install.md](alpine-newbie-install.md),**
we recommend 3.10 to 3.12 for 32bit PC and 3.12 for older RPi,
for modern machines we recommend 3.16 64bit versions.
#### Internet required
This document will work only if you have direct wired connection to internet.
**If you dont have direct network connection, please use our direct VenenuX Alpine ISOS**
[CURRENT LINK https://t.me/alpine_linux/762, but ask in telegram alpine network for newer one](https://t.me/s/alpine_linux/762)
#### setup OS configuration
1. deny access to the ssh root user, or well, get sure to deny such access
2. setup and start the ssh service, this always be present in Alpine installs
3. set the name of the computer, here we used `venenux-desktop`, please avoid symbols
4. hardcoded and set the network connection, to first wired network device
5. setup services of network to init at boot
6. configure root account
7. create a remote connection limited account `daru`
8. configure a default remote connection account `daru` as standard
```
sed -i -r 's|#PermitRootLogin.*|PermitRootLogin no|g' /etc/ssh/sshd_config
service sshd restart
rc-update add sshd default
hostname venenux-desktop
echo 'hostname="venenux-desktop"' > /etc/conf.d/hostname
echo "venenux-desktop" > /etc/hostname
cat > /etc/hosts << EOF
127.0.0.1 venenux-desktop localhost.localdomain localhost
::1 localhost localhost.localdomain
EOF
cat > /etc/network/interfaces << EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 dhcp
pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
EOF
rc-service networking restart
rc-update add networking boot
cat > /root/.cshrc << EOF
unsetenv DISPLAY || true
HISTCONTROL=ignoreboth
EOF
cp /root/.cshrc /root/.bashrc /root/.profile
echo "root:toor" | chpasswd
apk add tcsh
add-shell '/bin/csh'
adduser -D -g "" -u 998 -h /opt/daru -s /bin/csh daru
echo "daru:daru" | chpasswd
rm -f /opt/daru/*
mkdir /opt/daru
cat > /opt/daru/.cshrc << EOF
unsetenv DISPLAY
set autologout = 6
set prompt = "$ "
set history = 0
set ignoreeof
EOF
cp /opt/daru/.cshrc /opt/daru/.bashrc
```
#### configuration programs and repositories
1. Setup main and community repositories of sources of programs
2. update the local references of such repositories
3. install main command line utilities man page manager and easy to use editor
4. install string manipulation tools for the commands on the console
5. install file downloaders and url handlers for command line administration
6. install backend support for backend of archivers, will be need in any futher kind of install
7. setup the pager for large outputs over the console
8. install the support for languaje environment
``` bash
cat > /etc/apk/repositories << EOF
http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
EOF
apk update
apk add man-db man-pages nano nano-doc binutils binutils-doc coreutils coreutils-doc readline readline-doc
apk add sed sed-doc attr attr-doc dialog dialog-doc lsof less less-doc groff groff-doc
apk add wget wget-doc curl curl-doc bash bash-doc bash-completion terminus-font
apk add zip p7zip xz tar cabextract cpio binutils lha acpi
export PAGER=less
apk add musl-locales musl-locales-lang
```
The packages that have a "-doc" part handles the manpages.. you can
avoid those packages, if Alpine usage will be for GUI only.
The packages of locales will be need as base for multi-lang enviroment.
#### setup system users
We will follow a protocol for better identification of all the commands
in further documents, the user will be called "general"; this is important
that it has does matter, what does not matter is for you cos you only "use".
The other important part here is the groups, user will not have porper access
to resources becouse the OS manages the access using levels by groups. Of course
all of this only works using the proper policy kit software.
1. install and setup advanced management of users and administration tool privilegies
2. setup the shell csh for all present users and future ones
3. setup the shell bash for all present users and future ones
4. setup the shell for skel directory, that will server as template
5. setup the Xresources configuration for skel directory, that will server as template
6. configure defaults for each new creation of new users with bash as default shell
7. configure the login environement for each user when login at the console
8. create the default new general usage user `general` for your desktop or console daily work
9. include this `general` user in the most used need groups to have proper access to resources
```
apk add shadow shadow-doc shadow-uidmap bash bash-doc bash-completion bash-dev doas doas-doc
cat > /tmp/tmpcs.tmp << EOF
set history = 10000
set prompt = "$ "
EOF
for i in $(ls /home);do cat /tmp/tmpcs.tmp > /home/$i/.cshrc;done
cat > /tmp/tmpbs.tmp << EOF
set prompt = "$ "
set history = 10000
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
EOF
for i in $(ls /home);do cat /tmp/tmpbs.tmp > /home/$i/.bashrc;done
mkdir /etc/skel
cat /tmp/tmpcs.tmp > /etc/skel/.cshrc
cat /tmp/tmpbs.tmp > /etc/skel/.bashrc
cat > /etc/skel/.Xresources << EOF
Xft.antialias: 0
Xft.rgba: rgb
Xft.autohint: 0
Xft.hinting: 1
Xft.hintstyle: hintslight
EOF
cat > /etc/default/useradd << EOF
# useradd defaults file
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
EOF
cat > /etc/login.defs << EOF
USERGROUPS_ENAB yes
#MAIL_DIR /var/mail
#MAIL_FILE .mail
#FAILLOG_ENAB yes
LOG_OK_LOGINS no
SYSLOG_SU_ENAB yes
SYSLOG_SG_ENAB yes
SULOG_FILE /var/log/sulog
SU_NAME su
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
UMASK 022
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 100
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 100
SYS_GID_MAX 999
LOGIN_RETRIES 3
LOGIN_TIMEOUT 60
CONSOLE_GROUPS floppy:audio:cdrom:users
EOF
useradd -m -U -c "" -G wheel,input,disk,floppy,cdrom,dialout,audio,video,lp,netdev,games,users,ping general
for u in $(ls /home); do for g in disk lp floppy audio cdrom dialout video lp netdev games users ping; do addgroup $u $g; done;done
```
In the last part the `general` user is created since for purposes of usage
the name its hard coded for the commands that can be sense and important,
because of the references in further documents.
At last, the groups are cofigured for the user, each one will define a
resource access, specially those for `disk`, `audio`, `video` and `netdev`.
#### setup hardware media support and graphical subsystem
Until this point, we have a user that can login to the system,
and bunch of programs to interact with the OS, but still do not
have any programs to make the computer or device work for us..
this target depends of the set of programs, this section will
configure the graphical environment to property setup any desktop.
1. install programs to manage devices dinamically by the OS and not admin user
2. setup service for dynamic device manager at boot, energy management and cpu frecuency management
3. install and configure the graphical subsystem and modesetting multi GPU video card support
4. install set of need modules for 2D/3D specific GPU or video card first generation support
5. install set of need modules for 2D/3D common GPU or video card almost modern still supported
6. install support for multi resolution and keyboard language configuration over GUI programs
7. install the bus communitacion support, policy management and login backend and frontend
8. generate the machine id identification hack for stupid shistemd linux standards
9. activate the service of the bus cominucations, the policy rules and graphical login backend
10. start the service of the bus cominucations, the policy rules and graphical login backend
11. activate the service of the graphical frontend login manager
12. start the service of the graphical frontend login manager
13. install support for abstract device filesystem representation using FUSE user space
14. activate the service of abstract device filesystem representation using FUSE user space
15. install software backend for usage of abstract device filesystem representation using FUSE user space
```
apk add acpi eudev eudev-doc eudev-rule-generator eudev-openrc linux-firmware cpufreqd
rc-update add udev
rc-update add acpid
rc-update add cpufreqd
setup-xorg-base xinit mesa-dri-gallium xf86-video-dummy xf86-video-modesetting xf86-video-qxl xf86-video-vmware xf86-input-evdev xf86-input-synaptics
apk add xf86-video-r128 xf86-video-s3virge xf86-video-apm xf86-video-i128 xf86-video-glint xf86-video-tdfx xf86-video-openchrome
apk add xf86-video-intel xf86-video-amdgpu xf86-video-ati xf86-video-nouveau xf86-video-nv xf86-video-vesa
apk add libxinerama xrandr kbd setxkbmap
apk add dbus dbus-x11 elogind elogind-openrc elogind-lang polkit polkit-openrc polkit-elogind lightdm lightdm-lang lightdm-gtk-greeter
dbus-uuidgen > /var/lib/dbus/machine-id
rc-update add dbus
rc-update add elogind
rc-update add polkit
rc-service dbus restart
rc-service elogind restart
rc-service polkit restart
rc-update add lightdm
rc-service lightdm restart
apk add fuse fuse-exfat-utils archivemount fuse-exfat avfs vte3 pcre2
rc-service fuse start
rc-update add fuse
apk add gvfs udisks2 udisks2-lang udisks2-doc gvfs-fuse gvfs-archive gvfs-dav gvfs-nfs gvfs-lang
```
#### setup software graphical fonts and languajes
Now we have support for graphics in the operating system,
but still do not have any graphical program, so we will prepare
minimal set of software for the right working of the programs
such like the fonts and the support of multi languajes.
1. install console support fonts for tty terminal and console terminal programs
2. setup and configure the default tty terminal fonts
3. set as service the configuration of the font at terminal
4. install basic set of default fonts for graphical programs, dejavu and bitstream ones
5. install fonts for japanese symbos and sans/comic like fonts
6. install fonts for cyrillic langs to display russian words
7. install fonts for mid-orient langs like arabic, hebrew, armenian, hindi / sanskrit
8. install fonts for langs like tailan and malayalam
9. install fonts for east-orient like chinese symbols,hangul and kana ones, includign japanese
```
apk add terminus-font
setfont /usr/share/consolefonts/ter-132n.psf.gz
sed -i "s#.*consolefont.*=.*#consolefont="ter-132n.psf.gz"#g" /etc/conf.d/consolefont
rc-update add consolefont boot
apk add ttf-dejavu font-bitstream-type1 font-bitstream-100dpi font-bitstream-75dpi font-adobe-utopia-type1 font-adobe-utopia-75dpi font-adobe-utopia-100dpi font-noto-georgian
apk add font-noto font-noto-extra font-noto-cjk font-noto-cjk-extra font-arabic-misc ttf-liberation ttf-linux-libertine
apk add font-misc-cyrillic font-mutt-misc font-screen-cyrillic font-winitzki-cyrillic font-cronyx-cyrillic
apk add font-noto-hebrew font-noto-arabic font-noto-armenian font-noto-cherokee font-noto-devanagari font-noto-ethiopic
apk add font-noto-lao font-noto-malayalam font-noto-tamil font-noto-thaana font-noto-thai
apk add font-noto-cjk font-noto-cjk-extra font-isas-misc
```
If you want to bypass and dont know anything, run steps from 1 to 4 adn then
after step 4 just install `font-noto-all` that provides support for all
langs symbols words.
#### setup hardware media support and sound subsystem
Audio support these days depends on video support, although it can still be
configured separately, nowadays it is strongly tied to video, that's why its
placed here this section, just below of the hardware video setup.
It should be noted that in Linux there is the system audio layer and the user audio layer,
formerly the first was and can used directly, nomadays, by using the second
we are in transition to the wonderful pipewire framework.
1. install the base audio subsystem software
2. install the base audio framework user support
3. restart bus communicacion, due we already have the software video subsystem support bus communication
4. setup the access prority for the audio communication
5. install optional bluetooth software support if you have a bluez audio card or phones
6. setup the bluetooth service
7. start the bluetooth service so the audio devices can be stablished
```
apk add alsa-utils alsa-utils-doc alsa-plugins alsa-plugins-doc alsa-tools alsa-tools-doc alsaconf
apk add pipewire pipewire-doc pipewire-pulse pipewire-alsa sndio sndio-doc
rc-service dbus restart
cat > /etc/security/limits.d/audio-limits.conf << EOF
@audio - memlock 256
@audio - nice -11
@audio - rtprio 88
EOF
apk add bluez bluez-openrc pipewire-spa-bluez
rc-update add bluetooth
rc-service bluetooth start
```
Now at this point we have audio and video configured, additionally we have
basic support for managing devices dynamically when connecting or disconnecting,
the only kind of devices not covered yet until this point are printers.
For any desktop this is the point where you choose which graphical environment
or desktop to install. Next section will prefers the XFCE4 desktop setup,
currently ws the first and its the most complete desktop packaged in the repos.
## instalacion Xfce4 Alpine
Since Alpine 3.13 the XFCE4 desktop its full modern, this means its pretty more heavy,
cos is build using GTK3 only.
On older or cheap devices, mostly for 32bit devices its better to use alpine 3.10 or 3.12
that uses GTK2 for almost all the programs.
1. install base desktop software packages
2. install base XFCE4 desktop packages, at this point, the system its ready for graphicall session
3. install and setup the login manager programs and policy manager software
4. setup the display login manager to start at boot
5. start the display manager, now you can use a minimal XFCE4 desktop, continue for complete experience
6. install cliboard manager, keyboard configurator, screensaver, screenshooter, and baterry manager
7. install packages for multi lang environment of the XFCE4 desktop if need, if login, logout and relogin
```
apk add gtk-update-icon-cache hicolor-icon-theme paper-gtk-theme adwaita-icon-theme mate-themes
apk add xfce4 xfce4-session xfce4-panel xfce4-terminal xarchiver mousepad network-manager-applet xfwm4-themes xfce-polkit xfce4-skel xfce4-power-manager xfce4-settings
apk add lightdm elogind elogind-openrc elogind-lang polkit polkit-openrc polkit-elogind lightdm lightdm-lang lightdm-gtk-greeter
rc-update add lightdm
rc-service lightdm restart
apk add xfce4-clipman-plugin xfce4-xkb-plugin xfce4-screensaver xfce4-screenshooter xfce4-taskmanager xfce4-whiskermenu-plugin xfce4-battery-plugin
apk add xfce4-panel-lang xfce4-clipman-plugin-lang xfce4-xkb-plugin-lang xfce4-screenshooter-lang xfce4-taskmanager-lang xfce4-whiskermenu-plugin-lang xfce4-battery-plugin-lang xfce4-power-manager-lang xfce4-settings-lang
```
## Desktop multimedia and media devices
The media in linux its per se reduced, and in alpine so then more limited,
with this lines you will have all the need suported, for converting and playing,
and minimal support for editing.
1. install support for media management muti format over the programs
2. install support for sound and output of notifications over the programas
3. install support for media format reading and management backend (convertiion and reading)
4. install viewers for video and audio files
5. install management backend for media devices
6. install video resoulution flexibility and network backend support
7. install network frontend support and frontend management of network
8. install service task manager on boot
9. setup service of wifi backend management
10. setup general networking backend management service
11. setup all the users to property manage the audio, video and network devices
12. reconfigure the interfaces so the network gui can then manage it
13. start the network manager backend services, so the gui can manager then
14. at this point logout and relogin from your current sesion to start to work
```
apk add gst-plugins-base gst-plugins-bad gst-plugins-bad-lang gst-plugins-ugly gst-plugins-ugly-lang gst-plugins-good gst-plugins-good-gtk
apk add libcanberra-gtk2 libcanberra-gtk3 libcanberra-gstreamer wxgtk-media wxgtk3-media wxgtk-lang
apk add mediainfo ffmpeg ffmpeg-doc ffmpeg-libs lame lame-doc rtkit rtkit-doc
apk add mpv mpv-doc deadbeef deadbeef-lang deadbeef-doc
apk add gvfs gvfs-fuse gvfs-archive gvfs-afp gvfs-afp gvfs-afc gvfs-cdda gvfs-gphoto2 gvfs-mtp pcmanfm
apk add libxinerama xrandr wpa_supplicant dhcpcd chrony macchanger wireless-tools iputils
apk add network-manager-applet network-manager-applet-lang networkmanager networkmanager-lang networkmanager-elogind networkmanager-elogind-lang networkmanager-elogind-openrc networkmanager-openvpn networkmanager-openvpn-lang
rc-update add chrony
rc-update add wpa_supplicant
rc-update add networkmanager
for u in $(ls /home); do for g in plugdev audio cdrom dialout video netdev; do addgroup $u $g; done;done
cat > /etc/network/interfaces << EOF
auto lo
iface lo inet loopback
EOF
service networking restart
service wpa_supplicant restart
service networkmanager restart
```
## Desktop Office suite
In linux world there's no mayor suite or programs in such topic,
just we need a reader (pdf, ebooks, cbr, zbr, etc) and office
suite for word/calc processing (doc, xls, odt, ods, etc).
```
apk add libreoffice libreoffice-gnome evince evince-lang evince-doc
```
The programs will appear in the Office menu category.
## development
This is only for those that dont want to download bunch of thing
when install some programs from sources. In any cae, modding and plugin hacks
will need this for minecraft or minetest hard hacker players.
The most important tool for development is the VCS: version control system.
The most usefull too for GUI development is the IDE: intregrated development environment
From this, there's the RAD, means Rapid Application Development and the
prefered way model for starting newbies..
#### base console development
1. install the minimal standard needs like make, cmake and gcc, pkg-config was superset by pkgconf
2. install set of tools to merge or compare files
3. install the most used version control service: git (GIT) VCS
4. install the second most used version control service optionally: subversion (SVN) VCS
5. install the so famous version control service: mercurial (HG) VCS
6. install session terminal handler, so can save terminal sessions
```
apk add pkgconf make cmake cmake-bash-completion gcc gcc-gdc gcc-go g++ gcc-objc gcc-doc
apk add patch patch-doc patchutils patchutils-doc diffutils diffutils-doc
apk add git git-bash-completion git-zsh-completion git-cvs git-svn github-cli git-diff-highlight git-doc
apk add subversion subversion-bash-completion subversion-zsh-completion subversion-yash-completion subversion-doc
apk add mercurial mercurial-bash-completion mercurial-zsh-completion mercurial-doc
apk add tmux screen
```
From this point you can work in console terminal all development task,
of course, each development will need specific need, but this ones installed
are always basic and mandatory (almost in all cases).
Next section, will cover some usefully artifact like an IDE (Intregrated Development Environment):
#### base gui development
The most compatible and all availabe IDE is geany, **this powerful tool
is very poorly valued, since like everything in linux it must be configured
according to your interest**, unlike other java or python craps that comes
already configured.
In such case **Geany is as close to the Unix spirit** it featured: overview,
htmlpreview, compile, diff, CVS, colorpicker, htmlpicker, tabletools, codecleanup,
and much more.
For terminal insteach of the usage of tmux or screen inside the already GUI,
we recommended the yet ready for similar purposes Terminator.
```
apk add geany geany-plugins-lang geany-plugins-addons geany-plugins-geanyextrasel geany-plugins-overview geany-plugins-geanyvc geany-plugins-treebrowser geany-plugins-tableconvert geany-plugins-spellcheck geany-plugins-shiftcolumn geany-plugins-utils geany-lang meld meld-lang
apk add terminator terminator-lang
```
## Licensing clarifications
**CC BY-NC-SA**: the project allows reusers to distribute, remix, adapt, and build upon the material
in any medium or format for noncommercial purposes only, and only so long as attribution is given
to the creators involved. If you remix, adapt, or build upon the material, you must license the modified
material under identical terms, includes the following elements:
* **BY** Credit must be given to the creator of each content respectivelly, starting at the first contributor.
* **NC** Only noncommercial uses of the work are permitted, with exceptions if you fill an issue here!
* **SA** Adaptations must be shared under the same terms, you must obey this terms and do not change it.
## See also
* [README.md](README.md)
* [alpine-newbie-install.md](alpine-newbie-install.md)

View File

@ -1,27 +1,22 @@
# Alpine XFCE4 quick FF # Alpine XFCE4 desktop setup: FF version
=========================================================== ===========================================================
Real machine Pentium Dual Core E5500 This was using real machine Pentium Dual Core E5500.
For more extended info check [../../newbie/alpine-newbie-xfce-desktop.md](../../newbie/alpine-newbie-xfce-desktop.md)
### hardware used ### hardware used
| item | minimal feature | we need more? | | item | minimal feature | Extra recommendations |
| ---------------- | --------------- | ---------------------------------- | | ---------------- | ----------------- | ---------------------------------- |
| RAM MB | 1Gb DDR1 | 6Gb DDR3, web browsers consumes so much |
| CPU | intel Dual Core | Not necesary | | CPU | intel Dual Core | Not necesary |
| GPU | intel G41 | Radeon X1200 For web browsers and modern apps will be need |
| RAM CPU | 2Mb (L2) 4kb/L1 | | | RAM CPU | 2Mb (L2) 4kb/L1 | |
| GPU | intel G41 | Radeon X1200 For web browsers and modern apps will be need |
| RAM GPU | 256Mb | 1Gb For web browsers and modern apps will be need | | RAM GPU | 256Mb | 1Gb For web browsers and modern apps will be need |
| Sotrage | 500Gb HDD WD | 256Gb SSD are mandatory for speed | | Storage | 120Gb HDD WD | 256Gb SSD are mandatory for speed |
| ARCH | 32bits (i386) | 64bits (i386) mandatory for most modern apps unfortunatelly | | ARCH | 32bits (i386/arm6)| 64bits (i386) mandatory for most modern apps unfortunatelly |
| Audio | AC 97 | HD audio and HDMI audio are a mess | | Audio | AC 97 | HD audio and HDMI audio are a mess |
### services
| item | port | software | expuesto-ip | objetivo |
| --------- | -------- | -------- | ----------------------------- | ------------- |
| vnc | 15000 | vnc | **SI**, to use remote desktop | unfortunatelly trhere's no anydesk for alpine working |
| ssh | 19226 | openssh | **NO**, only to be used once | for admin management only |
### usernames ### usernames
| item | name | password | | item | name | password |
@ -31,67 +26,34 @@ Real machine Pentium Dual Core E5500
| user | general | general | | user | general | general |
# XFCE4 over alpine linux * [Preparation](#preparation-xfce4-aline)
================================================ * [Instalation](#instalation)
* [preparation](#preparation-xfce4-aline)
* [instalation](#instalation)
* [setup OS configuration](#setup-os-configuration) * [setup OS configuration](#setup-os-configuration)
* [configuration programs and repositories](#configuration-programs-and-repositories)
* [setup system users](#setup-system-users) * [setup system users](#setup-system-users)
* [setup hardware media support and xorg](#setup-hardware-media-support-and-xorg) * [setup hardware support](#setup-hardware-support)
* [instalation xorg](#instalacion-xorg-apine) * [setup audio and video](#setup-audio-and-video)
* [instalacion xfce](#instalacion-xfce4-apine) * [Instalacion XFCE4 Alpine](#instalacion-xfce4-apine)
* [Configuracion](#configuracion-xfce4-alpine) * [Desktop multimedia and media devices](#desktop-multimedia-and-media-devices)
* [Development](#development)
* [How to use this guide](#how-to-use-this-guide)
* [Licensing clarifications](#licensing-clarifications)
* [See also](#see-also)
## preparation Xfce4 Alpine ## preparation Xfce4 Alpine
#### booting alpine Alpine must be already installed, check [../../newbie/alpine-newbie-install.md](../../newbie/alpine-newbie-install.md),**
1. **download the iso image**: any alpine iso from 3.9 to 3.16 are valid, for olders 3.10 are best: **If you dont have direct network connection, please use our direct VenenuX Alpine ISOS**
https://dl-4.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-extended-3.10.5-x86_64.iso [CURRENT LINK https://t.me/alpine_linux/762, but ask in telegram alpine network for newer one or other arches](https://t.me/s/alpine_linux/762)
2. **burn iso to usb or DVD/CD disk** to load into the machine to boot or virtual machine,
you must boot the CD/DVD or USB from BIOS/UEFI or from the virtual machine
2. **at boot the alpine will ask `login` just type `root`**,
this will permit to run commands to install the operatinig system
#### instalation
```
export BOOT_SIZE=500
export SWAP_SIZE=8182
export BOOTLOADER=grub
setup-alpine
```
* teclado y variante, ejemplo para latino es `es` y depues `es-winkeys`
* hostname: escribir `venenux-desktop`, es el nombre de la computadora.
* Opciones de red: seleccione `eth0` porque asumimos una sola interfaz
* Opciones de red (ip): contestar `none` despues contestar `no` a manual
* Opciones de DNS: (dominio) escriba `fusilsystem.com` y enter
* Opciones de DNS: (nameserver) se recomienda usar `8.8.8.8`
* Opcion de clave root, escribir "root" las dos veces, despues se mejorara!
* Opciones de zona horaria: solo use UTC
* Opciones de proxy: use `none` y si uso dhcp en red ya tendra internet.
* Opciones de repo mirror: cuando pregunte escriba `done`
* Opciones de SSH: use `openssh` el paquete que ya viene en el medio.
* Opciones de NTP: use `chrony` el paquete que ya viene en el medio.
* Opciones de disco: use "sda" ya que se usara todo el disco duro presente.
* Modo: seleccione "sys" para instalar el sistema en el disco.
* Confirmacion de borrado: pedira confirme borrar el disco conteste `y`
* Confirmacion de particiones: solo sale si tiene previas, conteste `y`
#### setup OS configuration #### setup OS configuration
For more extended info check [../../newbie/alpine-newbie-xfce-desktop.md](../../newbie/alpine-newbie-xfce-desktop.md#setup-os-configuration)
``` ```
sed -i -r 's|#PermitRootLogin.*|PermitRootLogin no|g' /etc/ssh/sshd_config sed -i -r 's|#PermitRootLogin.*|PermitRootLogin no|g' /etc/ssh/sshd_config
service sshd restart rc-service sshd restart;rc-update add sshd default
rc-update add sshd default
hostname venenux-desktop hostname venenux-desktop
echo 'hostname="venenux-desktop"' > /etc/conf.d/hostname echo 'hostname="venenux-desktop"' > /etc/conf.d/hostname
@ -113,9 +75,7 @@ iface eth0 inet6 dhcp
pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
EOF EOF
rc-service networking restart rc-service networking restart;rc-update add networking boot
rc-update add networking boot
cat > /root/.cshrc << EOF cat > /root/.cshrc << EOF
unsetenv DISPLAY || true unsetenv DISPLAY || true
@ -135,9 +95,7 @@ adduser -D -g "" -u 998 -h /opt/daru -s /bin/csh daru
echo "daru:daru" | chpasswd echo "daru:daru" | chpasswd
rm -f /opt/daru/* rm -f /opt/daru/*
mkdir /opt/daru mkdir /opt/daru
cat > /opt/daru/.cshrc << EOF cat > /opt/daru/.cshrc << EOF
unsetenv DISPLAY unsetenv DISPLAY
set autologout = 6 set autologout = 6
@ -146,13 +104,8 @@ set history = 0
set ignoreeof set ignoreeof
EOF EOF
cp /opt/daru/.cshrc /opt/daru/.bashrc cp /opt/daru/.cshrc /opt/daru/.bashrc
chown -R daru:daru /opt/daru
```
#### configuration programs and repositories
``` bash
cat > /etc/apk/repositories << EOF cat > /etc/apk/repositories << EOF
http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
@ -160,40 +113,27 @@ EOF
apk update apk update
apk add sed sed-doc attr attr-doc dialog dialog-doc lsof less less-doc groff groff-doc apk add man-db man-pages nano binutils coreutils readline \
sed attr dialog lsof less groff wget curl terminus-font \
apk add man-pages nano nano-doc binutils binutils-doc coreutils coreutils-doc readline readline-doc zip p7zip xz tar cabextract cpio binutils lha acpi musl-locales musl-locales-lang
apk add wget wget-doc curl curl-doc bash bash-doc bash-completion terminus-font
apk add zip p7zip xz tar cabextract cpio binutils lha acpi
export PAGER=less export PAGER=less
apk add musl-locales musl-locales-lang man-db
``` ```
#### setup system users #### setup system users
``` ```
apk add shadow shadow-doc shadow-uidmap bash bash-doc bash-completion bash-dev doas doas-doc apk add shadow shadow-uidmap doas musl-locales musl-locales-lang
cat > /tmp/tmp.tmp << EOF cat > /tmp/tmpcs.tmp << EOF
set history = 10000 set history = 10000
if (\$?prompt) then set prompt = "$ "
set prompt = "$ "
set history = 10000
endif
EOF EOF
for i in $(ls /home);do cat /tmp/tmp.tmp > /home/$i/.cshrc;done
for i in $(ls /home);do cat /tmp/tmp.tmp > /home/$i/.bashrc;done
mkdir /etc/skel mkdir /etc/skel
cat /tmp/tmp.tmp > /etc/skel/.cshrc cat /tmp/tmpcs.tmp > /etc/skel/.cshrc
cat /tmp/tmp.tmp > /etc/skel/.bashrc cat /tmp/tmpbs.tmp > /etc/skel/.bashrc
cat > /etc/skel/.Xresources << EOF cat > /etc/skel/.Xresources << EOF
Xft.antialias: 0 Xft.antialias: 0
@ -215,78 +155,79 @@ EOF
cat > /etc/login.defs << EOF cat > /etc/login.defs << EOF
USERGROUPS_ENAB yes USERGROUPS_ENAB yes
#MAIL_DIR /var/mail
#MAIL_FILE .mail
#FAILLOG_ENAB yes
LOG_OK_LOGINS no
SYSLOG_SU_ENAB yes SYSLOG_SU_ENAB yes
SYSLOG_SG_ENAB yes SYSLOG_SG_ENAB yes
SULOG_FILE /var/log/sulog SULOG_FILE /var/log/sulog
SU_NAME su SU_NAME su
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
UMASK 022
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 100
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 100
SYS_GID_MAX 999
LOGIN_RETRIES 3
LOGIN_TIMEOUT 60
CONSOLE_GROUPS floppy:audio:cdrom:users
EOF EOF
useradd -m -U -c "" -G wheel,input,disk,floppy,cdrom,dialout,audio,video,lp,netdev,games,users,ping general
useradd -m -U -c "" -G wheel,input,disk,floppy,cdrom,dialout,netdev,audio,video,lp,usb,users,ping general for u in $(ls /home); do for g in disk lp floppy audio cdrom dialout video lp netdev games users ping; do addgroup $u $g; done;done
for u in $(ls /home); do for g in disk lp floppy audio cdrom dialout video netdev games users; do addgroup $u $g; done;done
``` ```
#### setup hardware media support and xorg **WARNING** your user name must be `general`, you can put a "human name" as you wish, later.
For more details check [../../newbie/alpine-newbie-xfce-desktop.md](../../newbie/alpine-newbie-xfce-desktop.md#setup-system-users)
#### setup hardware support
``` ```
apk add eudev eudev-doc eudev-rule-generator eudev-openrc apk add acpi eudev eudev-doc eudev-rule-generator eudev-openrc linux-firmware \
fuse fuse-exfat-utils fuse-exfat avfs pcre2 cpufreqd bluez bluez-openrc \
wpa_supplicant dhcpcd chrony macchanger wireless-tools iputils \
networkmanager networkmanager-lang networkmanager-openvpn networkmanager-openvpn-lang
rc-update add udev rc-update add udev
rc-update add acpid rc-update add acpid
rc-update add cpufreqd
rc-update add fuse
rc-update add bluetooth
rc-update add chrony
rc-update add wpa_supplicant
rc-update add networkmanager
setup-xorg-base xinit mesa-dri-gallium linux-firmware kbd xf86-input-evdev xf86-input-synaptics setxkbmap rc-service networking restart
apk add libxinerama xrandr rc-service wpa_supplicant restart
apk add acpi dbus dbus-x11 elogind elogind-openrc elogind-lang polkit polkit-openrc polkit-elogind lightdm lightdm-lang lightdm-gtk-greeter rc-service bluetooth restart
rc-service udev restart
rc-service fuse restart
rc-service cpufreqd restart
```
For more details check [../../newbie/alpine-newbie-xfce-desktop.md](../../newbie/alpine-newbie-xfce-desktop.md#setup-software-graphical-fonts-and-languajes)
#### setup audio and video
```
setup-xorg-base xinit mesa-dri-gallium xf86-video-dummy xf86-video-modesetting xf86-video-vesa
apk add libxinerama xrandr kbd setxkbmap bluez bluez-openrc \
dbus dbus-x11 elogind elogind-openrc lightdm lightdm-lang lightdm-gtk-greeter \
polkit polkit-openrc polkit-elogind udisks2 udisks2-lang \
gvfs gvfs-fuse gvfs-archive gvfs-dav gvfs-nfs gvfs-lang \
networkmanager-elogind networkmanager-elogind-lang networkmanager-elogind-openrc
dbus-uuidgen > /var/lib/dbus/machine-id dbus-uuidgen > /var/lib/dbus/machine-id
rc-update add dbus rc-update add dbus
rc-update add elogind rc-update add elogind
rc-update add polkit rc-update add polkit
rc-update add lightdm
apk add ttf-dejavu font-bitstream-type1 font-bitstream-100dpi font-bitstream-75dpi apk add font-noto-all ttf-dejavu ttf-linux-libertine ttf-liberation \
font-bitstream-type1 font-bitstream-100dpi font-bitstream-75dpi \
font-adobe-utopia-type1 font-adobe-utopia-75dpi font-adobe-utopia-100dpi \
font-isas-misc
apk add terminus-font font-noto font-noto-extra font-arabic-misc ttf-liberation ttf-linux-libertine apk add alsa-utils alsa-plugins alsa-tools alsaconf \
pipewire pipewire-pulse pipewire-alsa pipewire-spa-bluez
apk add font-misc-cyrillic font-mutt-misc font-screen-cyrillic font-winitzki-cyrillic font-cronyx-cyrillic
apk add font-noto-arabic font-noto-armenian font-noto-cherokee font-noto-devanagari font-noto-ethiopic font-noto-georgian
apk add font-noto-hebrew font-noto-lao font-noto-malayalam font-noto-tamil font-noto-thaana font-noto-thai
setfont /usr/share/consolefonts/ter-132n.psf.gz
sed -i "s#.*consolefont.*=.*#consolefont="ter-132n.psf.gz"#g" /etc/conf.d/consolefont
rc-update add consolefont boot
apk add alsa-utils alsa-utils-doc alsa-plugins alsa-plugins-doc alsa-tools alsa-tools-doc alsaconf pipewire pipewire-doc pipewire-pulse pipewire-alsa sndio sndio-doc
rc-service dbus start
cat > /etc/security/limits.d/audio-limits.conf << EOF cat > /etc/security/limits.d/audio-limits.conf << EOF
@audio - memlock 256 @audio - memlock 256
@ -294,129 +235,103 @@ cat > /etc/security/limits.d/audio-limits.conf << EOF
@audio - rtprio 88 @audio - rtprio 88
EOF EOF
apk add bluez bluez-openrc pipewire-spa-bluez rc-service dbus restart
rc-update add bluetooth rc-service elogind restart
rc-service bluetooth start rc-service polkit restart
apk add cpufreqd rc-service lightdm restart
rc-update add cpufreqd
apk add gtk-update-icon-cache vte3 pcre2 udisks2 udisks2-lang udisks2-doc
apk add fuse fuse-exfat-utils archivemount fuse-exfat avfs
rc-service fuse start
rc-update add fuse
apk add gvfs gvfs-fuse gvfs-archive gvfs-dav gvfs-nfs gvfs-lang
``` ```
For more details check [../../newbie/alpine-newbie-xfce-desktop.md](../../newbie/alpine-newbie-xfce-desktop.md#setup-software-graphical-fonts-and-languajes)
## instalacion Xfce4 Alpine ## instalacion Xfce4 Alpine
Since Alpine 3.13 the XFCE4 desktop its GTK3 for 32bit devices its better to use alpine 3.10
or 3.12 that uses GTK2 for almost all the programs.
``` ```
apk add xfwm4-themes hicolor-icon-theme paper-gtk-theme network-manager-applet adwaita-icon-theme mate-themes apk add gtk-update-icon-cache hicolor-icon-theme paper-gtk-theme adwaita-icon-theme
apk add xfce4 xfce4-terminal xfce4-screensaver xfce4-session xfce4-session-doc xarchiver mousepad apk add xfce4 xfce4-session xfce4-panel xfce4-terminal xarchiver mousepad \
xfwm4-themes xfce-polkit xfce4-skel xfce4-power-manager xfce4-settings \
xfce4-clipman-plugin xfce4-xkb-plugin xfce4-screensaver xfce4-screenshooter xfce4-taskmanager \
xfce4-panel-lang xfce4-clipman-plugin-lang xfce4-xkb-plugin-lang xfce4-screenshooter-lang \
xfce4-taskmanager-lang xfce4-battery-plugin-lang xfce4-power-manager-lang xfce4-settings-lang \
gvfs gvfs-fuse gvfs-archive gvfs-afp gvfs-afp gvfs-afc gvfs-cdda gvfs-gphoto2 gvfs-mtp \
network-manager-applet network-manager-applet-lang vte3 \
libreoffice libreoffice-gnome evince evince-lang evince-doc
apk add xfce-polkit xfce4-skel xfce4-power-manager xfce4-power-manager-lang xfce4-settings xfce4-settings-lang rc-service networking restart
apk add xfce4-panel xfce4-panel-doc xfce4-panel-lang xfce4-clipman-plugin xfce4-clipman-plugin-lang xfce4-xkb-plugin xfce4-xkb-plugin-lang xfce4-xkb-plugin-doc rc-service wpa_supplicant restart
apk add xfce4-screenshooter xfce4-screenshooter-doc xfce4-screenshooter-lang xfce4-taskmanager xfce4-taskmanager-lang rc-service networkmanager restart
apk add xfce4-whiskermenu-plugin xfce4-whiskermenu-plugin-lang xfce4-whiskermenu-plugin-doc xfce4-battery-plugin xfce4-battery-plugin-lang
rc-update add lightdm
rc-service lightdm restart rc-service lightdm restart
```
## multimedia
The media in linux its per se reduced, and in alpine so then more limited,
with this lines you will have all the need suported, for converting and playing,
for editing
``` ```
apk add gst-plugins-base gst-plugins-bad gst-plugins-bad-lang gst-plugins-ugly gst-plugins-ugly-lang gst-plugins-good gst-plugins-good-gtk
apk add libcanberra-gtk2 libcanberra-gtk3 libcanberra-gstreamer wxgtk-media wxgtk3-media wxgtk-lang ## Desktop multimedia and media devices
apk add mediainfo ffmpeg ffmpeg-doc ffmpeg-libs lame lame-doc rtkit rtkit-doc ```
apk add gst-plugins-base gst-plugins-bad gst-plugins-ugly gst-plugins-good gst-plugins-good-gtk \
libcanberra-gtk2 libcanberra-gtk3 libcanberra-gstreamer wxgtk-media wxgtk3-media wxgtk-lang \
mediainfo ffmpeg ffmpeg-doc ffmpeg-libs lame lame-doc rtkit rtkit-doc \
mpv mpv-doc deadbeef deadbeef-lang libxinerama xrandr
apk add mpv mpv-doc deadbeef deadbeef-lang deadbeef-doc for u in $(ls /home); do for g in plugdev audio cdrom dialout video netdev; do addgroup $u $g; done;done
apk add gvfs gvfs-fuse gvfs-archive gvfs-afp gvfs-afp gvfs-afc gvfs-cdda gvfs-gphoto2 gvfs-mtp
apk add libxinerama xrandr wpa_supplicant dhcpcd chrony macchanger wireless-tools iputils
apk add network-manager-applet network-manager-applet-lang networkmanager networkmanager-lang networkmanager-elogind networkmanager-elogind-lang networkmanager-elogind-openrc networkmanager-openvpn networkmanager-openvpn-lang
rc-update add chrony
rc-update add wpa_supplicant
rc-update add networkmanager
for u in $(ls /home); do for g in plugdev; do addgroup $u $g; done;done
cat > /etc/network/interfaces << EOF cat > /etc/network/interfaces << EOF
auto lo auto lo
iface lo inet loopback iface lo inet loopback
EOF EOF
service networking restart
service wpa_supplicant restart
service networkmanager restart
```
## office suite
In linux world there's no mayor suite or programs in such topic,
just we need a reader (pdf, ebooks, cbr, zbr, etc) and office
suite for word/calc processing (doc, xls, odt, ods, etc).
```
apk add libreoffice libreoffice-gnome evince evince-lang evince-doc
``` ```
## development ## development
This is only for those that dont want to download bunch of thing
when install some programs from sources. In any cae, modding and plugin hacks
will need this for minecraft or minetest hard hacker players.
#### base console only devel
``` ```
apk add make cmake cmake-bash-completion gcc gcc-gdc gcc-go g++ gcc-objc gcc-doc apk add pkgconf make cmake gcc gcc-gdc gcc-go g++ gcc-objc gcc-doc \
patch patch-doc patchutils patchutils-doc diffutils diffutils-doc \
apk add patch patch-doc patchutils patchutils-doc diffutils diffutils-doc git git-cvs git-svn github-cli git-diff-highlight git-doc \
subversion subversion-doc mercurial mercurial-doc \
apk add git git-bash-completion git-zsh-completion git-cvs git-svn github-cli git-diff-highlight git-doc geany geany-plugins-lang geany-plugins-addons geany-plugins-geanyextrasel \
geany-plugins-overview geany-plugins-geanyvc geany-plugins-treebrowser \
apk add subversion subversion-bash-completion subversion-zsh-completion subversion-yash-completion subversion-doc geany-plugins-tableconvert geany-plugins-spellcheck geany-plugins-shiftcolumn \
geany-plugins-utils geany-lang \
apk add mercurial mercurial-bash-completion mercurial-zsh-completion mercurial-doc terminator terminator-lang tmux screen meld meld-lang
``` ```
#### base gui devel ## How to use this guide
Just install alpine, and try to login as root using that command:
``` 1. at the Alpine installation: `sed -i 's|.*PermitRootLogin.*|PermitRootLogin yes|g' /etc/ssh/sshd_config;service sshd restart`
apk add geany geany-plugins-lang geany-plugins-addons geany-plugins-geanyextrasel geany-plugins-overview geany-plugins-geanyvc geany-plugins-treebrowser geany-plugins-tableconvert geany-plugins-spellcheck geany-plugins-shiftcolumn geany-plugins-utils geany-lang meld meld-lang 2. at the other OS just connect: `ssh -l root <ip>` change "`<ip>`" with the address of your device.
3. copy each separated by empty line, block of command, copy only blocks separate by empty line
4. and paste each separated by empty line block in the remnote (ssh), do not paste all the blocks at same time!
apk add terminator terminator-lang **CAUTION** Some Linux or/and Mac terminals have security cut/paste locks, so
``` if you paste, the first line will be preceded by garbage, check always the first char of your paste.
**WARNING** after finish, rerun: `sed -i -r 's|.*PermitRootLogin.*|PermitRootLogin no|g' /etc/ssh/sshd_config`
and restart ssh `service sshd restart` becouse security implications.
## Licensing clarifications
**CC BY-NC-SA**: the project allows reusers to distribute, remix, adapt, and build upon the material
in any medium or format for noncommercial purposes only, and only so long as attribution is given
to the creators involved. If you remix, adapt, or build upon the material, you must license the modified
material under identical terms, includes the following elements:
* **BY** Credit must be given to the creator of each content respectivelly, starting at the first contributor.
* **NC** Only noncommercial uses of the work are permitted, with exceptions if you fill an issue here!
* **SA** Adaptations must be shared under the same terms, you must obey this terms and do not change it.
## See also
* [README.md](README.md)
* [alpine-newbie-install.md](alpine-newbie-install.md)