Alpine – Tech_Curiosity https://blog.jackstoneindustries.com My Wanderings in the Tech World Sun, 07 Feb 2021 20:46:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.5 https://i0.wp.com/blog.jackstoneindustries.com/wp-content/uploads/2020/01/cropped-tech_curiousity_tb_med_plus.png?fit=32%2C32&ssl=1 Alpine – Tech_Curiosity https://blog.jackstoneindustries.com 32 32 171301701 Winapps Project on Alpine Linux Allows you to Run Windows Applications like they were Locally Installed https://blog.jackstoneindustries.com/winapps-project-on-alpine-linux-allows-you-to-run-windows-applications-like-they-were-locally-installed/?utm_source=rss&utm_medium=rss&utm_campaign=winapps-project-on-alpine-linux-allows-you-to-run-windows-applications-like-they-were-locally-installed Sun, 07 Feb 2021 20:46:14 +0000 https://blog.jackstoneindustries.com/?p=8841 I write technical documentation for my place of employ and I am accustomed to being able to utilize the full features of Microsoft Word for instance. Anyone who has ever had to do formatting or adding a table with the Office 365 online web application can attest that the lacking features make the online app at best, a lite version.

Enter WinApps by Fmstrat (https://github.com/Fmstrat/winapps). The idea behind WinApps is to create the reverse of the Windows Subsystem for Linux. With a valid Windows license (or by perhaps using the developers ISO which will expire every 60 days), you can set up your own Linux Subsystem for Windows. Designed for Ubuntu and Fedora the WinApps project will sweep the VM you setup looking for officially supported applications like an installed version of Office 365 for instance. With community powered logos available, WinApps will do the heavy lifting to “install” the logos and pathing on your system so that they are available to click on and use right from your Linux menu! So when you click on “cmd” you will actually see a Windows Command Prompt appear on your Linux desktop.

I liked this idea but I’m using Alpine. Ruh Roh Raggy, that’s a problem. Based on musl libc and busybox I wasn’t sure that this project would work. Turns out, you can make the project work just fine.

The instructions that are provided are really quite excellent. Scary things like KVM and QEMU are handled easily using Virt-Manager for initial VM setup and there is even a walk through for that. Wonderful. Really great project documentation.

There are some pitfalls though, especially since we are using Alpine which means we’re not of the systemd persuasion. So first things first, ensure you are running a desktop manager like XFCE. Otherwise the exercise is moot to start out with (ok maybe you could do this with Xserver only but why suffer that pain?). Then make sure your repositories file has edge repo listings in it like the example below. If not you can copy the ones from my file and place into yours.

cat /etc/apk/repositories
....outputs _>

#/media/usb/apks
http://dl-cdn.alpinelinux.org/alpine/v3.12/main
http://dl-cdn.alpinelinux.org/alpine/v3.12/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

<_ends_outputs....

Next make sure that at least the following are installed first and ensure that libvirtd starts at boot.

apk --no-cache add git freerdp virt-manager xf86-video-qxl libvirt qemu dbus;
rc-service libvirtd start;
rc-update add libvirtd;

Next we need to ensure that your user is added to the correct groups.

adduser <yourusername> libvirt;
adduser <yourusername> kvm;

The biggest pitfall is to come though. After going through all of that setup you find that you still can’t start your VM using virsh. This was a major stumbling block for me. Luckily the answer is simple.

First edit the libvirtd file:

nano /etc/libvirt/libvirt.conf

Uncomment the following line: “uri default – ‘qemu:///system'” and save the file.

Example of what the file looks like and where to uncomment in the file

The other part of this pitfall is that you must now copy this same file to the following place:

cp /etc/libvirt/libvirt.conf ~/.config/libvirt/

What this does is it allows your user to start the VM from the terminal successfully without using “sudo su”. This in turn means you can click on the icons from the desktop manager menu.

Example of how the icons will show in Alpine XFCE Desktop (with MojaveOS icon/theme set employed)

And now they will display as you expect.

The other issue you may run into is getting “tun” to load automatically for the bridged network setup. To fix this issue on Alpine you’ll want to do the following:

nano /etc/modules;

Add “tun” to the file and save. Reboot your system.

Example of what to add to /etc/modules

At this point the system should come up automatically when you log in and you should be able to click as needed on the commands.

Finally, here is what you can expect by clicking on those shiny new icons. Enjoy!

Examples of Command Prompt, Explorer, Powershell and Alpine Linux terminal window
Example of Microsoft Word opening as an application within Alpine Linux (XFCE Desktop, Mojave OS theme/icons)
]]>
8841