Alpine Linux:如何配置GUI的图形桌面环境:x Desktop Environment
alpine linux 真是不错。小巧、迅捷!
官方的各个版本的alpine镜像内没有带图形环境的。那我们如何构建自己的桌面图形环境呢?
其实:这个问题,在起官网的wiki内有指南,我们根据那些相关文档就可以自己搭建!
--------------------------------------------------------------------
step 1:
localhost:~# setup-xorg-base
fetch http://mirrors.cloud.tencent.com/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://mirrors.cloud.tencent.com/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
Executing busybox-1.31.1-r9.trigger
Executing eudev-3.2.9-r1.trigger1025-r0)
OK: 101 MiB in 60 packageslibs (3.6.2-r1)
(1/63) Installing libevdev (1.8.0-r0)
(2/63) Installing mtdev (1.1.5-r2)
(3/63) Installing libinput-libs (1.14.3-r0)
(4/63) Installing xf86-input-libinput (0.29.0-r0)
(5/63) Installing encodings (1.0.5-r0)
(6/63) Installing font-alias (1.0.3-r1)
(7/63) Installing libfontenc (1.1.4-r0)
(8/63) Installing libbz2 (1.0.8-r1)
(9/63) Installing libpng (1.6.37-r1)
(10/63) Installing freetype (2.10.1-r0)
(11/63) Installing mkfontscale (1.2.1-r1)
(12/63) Installing expat (2.2.9-r1)
(13/63) Installing fontconfig (2.13.1-r2)
(14/63) Installing pkgconf (1.6.3-r0)
(15/63) Installing util-macros (1.19.2-r1)
(16/63) Installing font-misc-misc (1.1.2-r1)
(17/63) Installing font-cursor-misc (1.0.3-r1)
(18/63) Installing xkeyboard-config (2.28-r0)
(19/63) Installing libxau (1.0.9-r0)
(20/63) Installing libbsd (0.10.0-r0)
(21/63) Installing libxdmcp (1.1.3-r0)
(22/63) Installing libxcb (1.13.1-r0)
(23/63) Installing libx11 (1.6.9-r0)
(24/63) Installing libxkbfile (1.1.0-r0)
(25/63) Installing xkbcomp (1.4.2-r0)
(26/63) Installing libxext (1.3.4-r0)
(27/63) Installing libice (1.0.10-r0)
(28/63) Installing libsm (1.2.3-r0)
(29/63) Installing libxt (1.2.0-r0)
(30/63) Installing libxmu (1.1.3-r0)
(31/63) Installing xauth (1.1-r0)
(32/63) Installing libmount (2.34-r1)
(33/63) Installing libsmartcols (2.34-r1)
(34/63) Installing findmnt (2.34-r1)
(35/63) Installing mcookie (2.34-r1)
(36/63) Installing xmodmap (1.0.10-r0)
(37/63) Installing mcpp-libs (2.7.2-r1)
(38/63) Installing mcpp (2.7.2-r1)
(39/63) Installing xrdb (1.2.0-r0)
(40/63) Installing xinit (1.4.1-r0)
(41/63) Installing mesa (19.2.7-r0)
(42/63) Installing libxdamage (1.1.5-r0)
(43/63) Installing libxfixes (5.0.3-r2)
(44/63) Installing libxxf86vm (1.1.4-r2)
(45/63) Installing libpciaccess (0.16-r0)
(46/63) Installing libdrm (2.4.100-r0)
(47/63) Installing mesa-glapi (19.2.7-r0)
(48/63) Installing libxshmfence (1.3-r0)
(49/63) Installing mesa-gl (19.2.7-r0)
(50/63) Installing libxfont2 (2.0.4-r0)
(51/63) Installing libepoxy (1.5.4-r0)
(52/63) Installing libffi (3.2.1-r6)
(53/63) Installing wayland-libs-server (1.17.0-r0)
(54/63) Installing mesa-gbm (19.2.7-r0)
(55/63) Installing pixman (0.38.4-r0)
(56/63) Installing xorg-server (1.20.6-r0)
(57/63) Installing xf86-video-modesetting (0.9.0-r6)
(58/63) Installing libgcc (9.2.0-r3)
(59/63) Installing libstdc++ (9.2.0-r3)
(60/63) Installing libxml2 (2.9.10-r1)
(61/63) Installing llvm9-libs (9.0.0-r1)
(62/63) Installing mesa-xatracker (19.2.7-r0)
(63/63) Installing xf86-video-vmware (13.3.0-r0)
Executing busybox-1.31.1-r9.trigger
Executing mkfontscale-1.2.1-r1.trigger
Executing fontconfig-2.13.1-r2.trigger
OK: 190 MiB in 123 packages
* Caching service dependencies ... [ ok ]
* Starting udev ... [ ok ]
* Generating a rule to create a /dev/root symlink ... [ ok ]
* Populating /dev with existing devices through uevents ... [ ok ]
* Waiting for uevents to be processed ... [ ok ]
localhost:~#
step 2:
localhost:~# apk add xf86-input-keyboard xf86-input-mouse xf86-video-vmware xf86-input-vmmouse
(1/3) Installing xf86-input-keyboard (1.9.0-r1)
(2/3) Installing xf86-input-mouse (1.9.3-r1)
(3/3) Installing xf86-input-vmmouse (13.1.0-r4)
Executing busybox-1.31.1-r9.trigger
Executing eudev-3.2.9-r1.trigger
OK: 191 MiB in 128 packages
localhost:~#
step 3:
localhost:~# apk add dbus
(1/3) Installing dbus-libs (1.12.16-r2)
(2/3) Installing dbus (1.12.16-r2)
Executing dbus-1.12.16-r2.pre-install
(3/3) Installing dbus-openrc (1.12.16-r2)
Executing busybox-1.31.1-r9.trigger
OK: 192 MiB in 131 packages
localhost:~# rc-service dbus start
* Caching service dependencies ... [ ok ]
* Starting System Message Bus ...
localhost:~# rc-update add dbus * service dbus added to runlevel default
step 4:
localhost:~# apk add lightdm
(1/49) Installing libintl (0.20.1-r2)
(2/49) Installing pcre (8.43-r0)
(3/49) Installing glib (2.62.4-r0)
(4/49) Installing icu-libs (64.2-r0)
(5/49) Installing nspr (4.24-r0)
(6/49) Installing readline (8.0.1-r0)
(7/49) Installing mozjs60 (60.9.0-r0)
(8/49) Installing linux-pam (1.3.1-r1)
(9/49) Installing polkit (0.116-r0)
Executing polkit-0.116-r0.pre-install
(10/49) Installing accountsservice (0.6.55-r0)
(11/49) Installing ttf-cantarell (0.111-r0)
(12/49) Installing libxrender (0.9.10-r3)
(13/49) Installing cairo (1.16.0-r2)
(14/49) Installing libcroco (0.6.13-r1)
(15/49) Installing shared-mime-info (1.15-r0)
(16/49) Installing libjpeg-turbo (2.0.4-r0)
(17/49) Installing tiff (4.1.0-r0)
(18/49) Installing gdk-pixbuf (2.40.0-r0)
(19/49) Installing libxft (2.3.3-r0)
(20/49) Installing fribidi (1.0.8-r0)
(21/49) Installing graphite2 (1.3.13-r1)
(22/49) Installing harfbuzz (2.6.4-r0)
(23/49) Installing pango (1.44.7-r0)
(24/49) Installing librsvg (2.46.4-r0)
(25/49) Installing hicolor-icon-theme (0.17-r1)
(26/49) Installing gtk-update-icon-cache (2.24.32-r1)
(27/49) Installing libxcomposite (0.4.5-r0)
(28/49) Installing libxcursor (1.2.0-r0)
(29/49) Installing libxi (1.7.10-r0)
(30/49) Installing libxrandr (1.5.2-r0)
(31/49) Installing atk (2.34.1-r0)
(32/49) Installing avahi-libs (0.7-r4)
(33/49) Installing gmp (6.1.2-r1)
(34/49) Installing nettle (3.5.1-r0)
(35/49) Installing p11-kit (0.23.18.1-r0)
(36/49) Installing libtasn1 (4.15.0-r0)
(37/49) Installing libunistring (0.9.10-r0)
(38/49) Installing gnutls (3.6.10-r0)
(39/49) Installing cups-libs (2.2.12-r1)
(40/49) Installing gtk+2.0 (2.24.32-r1)
Executing gtk+2.0-2.24.32-r1.post-install
(41/49) Installing adwaita-gtk2-theme (3.28-r1)
(42/49) Installing gnome-themes-extra (3.28-r1)
(43/49) Installing adwaita-icon-theme (3.34.3-r0)
(44/49) Installing libgpg-error (1.36-r2)
(45/49) Installing libgcrypt (1.8.5-r0)
(46/49) Installing iso-codes (4.4-r0)
(47/49) Installing libxklavier (5.4-r5)
(48/49) Installing lightdm (1.30.0-r0)
Executing lightdm-1.30.0-r0.pre-install
(49/49) Installing lightdm-openrc (1.30.0-r0)
Executing busybox-1.31.1-r9.trigger
Executing dbus-1.12.16-r2.trigger
Executing fontconfig-2.13.1-r2.trigger
Executing shared-mime-info-1.15-r0.trigger
Executing gdk-pixbuf-2.40.0-r0.trigger
Executing gtk-update-icon-cache-2.24.32-r1.trigger
Executing mkfontscale-1.2.1-r1.trigger
OK: 332 MiB in 180 packages
localhost:~#
localhost:~# rc-service lightdm start
* Caching service dependencies ... [ ok ]
* /run/lightdm: creating directory
* /run/lightdm: correcting owner
* Starting Display Manager ... [ ok ]
localhost:~# rc-update add lightdm
* service lightdm added to runlevel default
localhost:~#
localhost:/var/log/lightdm# apk add lightdm-gtk-greeter
(1/1) Installing lightdm-gtk-greeter (2.0.7-r0)
Executing busybox-1.31.1-r9.trigger
Executing gtk-update-icon-cache-2.24.32-r1.trigger
OK: 389 MiB in 235 packages
localhost:/var/log/lightdm#
step 5:
localhost:/etc/apk# apk add xfce4 (1/38) Installing libxfce4util (4.14.0-r0) (2/38) Installing exo-libs (0.12.11-r0) (3/38) Installing xcb-util (0.4.0-r1) (4/38) Installing startup-notification (0.12-r3) (5/38) Installing xfconf (4.14.1-r0) (6/38) Installing libxfce4ui-gtk3 (4.14.1-r0) (7/38) Installing exo (0.12.11-r0) (8/38) Installing libxfce4ui (4.14.1-r0) (9/38) Installing garcon (0.6.4-r0) (10/38) Installing desktop-file-utils (0.24-r0) (11/38) Installing libexif (0.6.21-r3) (12/38) Installing libgudev (233-r0) (13/38) Installing libnotify (0.7.8-r0) (14/38) Installing libxres (1.2.0-r1) (15/38) Installing libwnck3 (3.32.0-r1) (16/38) Installing xfce4-panel (4.14.1-r0) (17/38) Installing thunar (1.8.11-r0) Executing thunar-1.8.11-r0.post-install (18/38) Installing ca-certificates (20191127-r0) (19/38) Installing nghttp2-libs (1.40.0-r0) (20/38) Installing libcurl (7.67.0-r0) (21/38) Installing lcms2 (2.9-r1) (22/38) Installing openjpeg (2.3.1-r2) (23/38) Installing poppler (0.82.0-r1) (24/38) Installing poppler-glib (0.82.0-r1) (25/38) Installing tumbler (0.2.7-r1) (26/38) Installing ttf-dejavu (2.37-r1) (27/38) Installing xfce4-appfinder (4.14.0-r0) (28/38) Installing libusb (1.0.23-r0) (29/38) Installing upower (0.99.11-r0) (30/38) Installing xfce4-power-manager (1.6.5-r0) (31/38) Installing iceauth (1.0.8-r0) (32/38) Installing dbus-x11 (1.12.16-r2) (33/38) Installing xfce4-session (4.14.0-r0) (34/38) Installing xfce4-settings (4.14.1-r0) (35/38) Installing xfdesktop (4.14.1-r0) (36/38) Installing libxpresent (1.0.0-r0) (37/38) Installing xfwm4 (4.14.0-r0) (38/38) Installing xfce4 (4.14_pre1-r0) Executing busybox-1.31.1-r9.trigger Executing eudev-3.2.9-r1.trigger Executing fontconfig-2.13.1-r2.trigger Executing gtk-update-icon-cache-2.24.32-r1.trigger Executing mkfontscale-1.2.1-r1.trigger Executing desktop-file-utils-0.24-r0.trigger Executing ca-certificates-20191127-r0.trigger OK: 389 MiB in 233 packages localhost:/etc/apk#
step 6:重启
step 7:在控制台中执行:startx 或 startxfce4
--------------------------------------------------------------------
http://wiki.alpinelinux.org/wiki/Tutorials_and_Howtos 之第5章 : 5 Desktop Environment
里面详细描述了以下桌面环境的安装配置,我们参照执行即可:
Desktop Environment
- Awesome(wm) Setup
- EyeOS (Cloud Computing Desktop)
- Gnome Setup
- MATE Setup
- Oneye (Cloud Computing Desktop - Dropbox Alternative)
- Owncloud (Cloud Computing Desktop - Dropbox Alternative)
- (to be merged with OwnCloud (Your personal Cloud for storing and sharing your data on-line))
- Remote Desktop Server
- Suspend on LID close
- XFCE Setup and Desktop Ideas
- Installing Adobe flash player for Firefox
- Sound Setup
- Printer Setup
- Default applications
-------------------------------------------------------------------------------------------------------------------------------
我成功搭建了 mate、xfce4、remote desktop server (隐含 vino VNC 环境)环境。
提示:
1: 安装xfce4桌面环境,特别要注意需要安装 xfce4-notifyd 组件,否则应用的弹出信息看不到! 比如后续安装xrdp就一致无法成功,原因在此。
2:必须安装一个linux的x登录shell环境:如 lxdm,否则只能手工startx。todo:alpine内容如何直接执行startx代替默认的openrc 文本登录界面,待解决。
3:lxdm安装后,需要通过rc-update add lxdm服务,否则如同2,不能自动打开lxdm的登录界面
4:lxdm 如何让root或其他用户登录,并自动运行某些服务或程序?
修改:/etc/lxdm/lxdm.conf 文件实现自动用户登录
1 [base] 2 ## uncomment and set autologin username to enable autologin 3 autologin=root 4 5 ## uncomment and set timeout to enable timeout autologin, 6 ## the value should >=5 7 # timeout=10 8 9 ## default session or desktop used when no systemwide config 10 # session=/usr/bin/startlxde 11 12 ## uncomment and set to set numlock on your keyboard 13 # numlock=0 14 15 ## set this if you don't want to put xauth file at ~/.Xauthority 16 # xauth_path=/tmp 17 18 # not ask password for users who have empty password 19 # skip_password=1 20
修改:/etc/lxdm/PostLogin 文件实现登录用户后,自动运行服务或程序。我自动开启xrdp服务的配置如下
#!/bin/sh
#
# Note: this is a sample and will not be run as is.
rc-service xrdp restart
rc-service xrdp-sesman restart
rc-service vino restart
ok。到此结束!