Wear A Fedora
Recently I decided to give Fedora Linux a try, and out of my surprise, everything just works smoothly from installation to service running up. Whenever something goes wrong, there is alwaysg documentation1, how-to guides2, manuals and logs for reference. This post intends to write down some topics that I've been playing with in the last several days. Note that the version I've installed is Fedora Workstation with GNOME Desktop, so the out-of-box experience could be different with other Editions or Spins.
1. File Sharing in Fedora
1.1. WebDAV
To enable file sharing through WebDAV, go to Settings -> Sharing
and
Enable File Sharing
. An unintuitive part here is the "File Sharing
Address" provided is dav://fedora
, which isn't quite helpful.
The real address is http://local_ip:port
, where local_ip
could
be found through ifconfig
, and port
could be found through
lsof | grep http
.
1.2. Samba
In order to create a Samba share, follow detailed steps of the how-to guide3, which could be summarized as:
- Install package
samba
- Enable and start the
smb
service - Allow
Samba
acccess from other computers - Add a
Samba
user, or create a dedicated group forSamba
share - Create a dedicated directory to be shared by
Samba
- Update SELinux context for the shared directory
- Modify
/etc/samba/smb.conf
for sharing configurations - Restart the
smb
service for the config changes to take effect
A lot of steps are involved, but the concepts should be straightforward.
2. Remote Desktop Control
Remote Desktop access could be enabled in Fedora through Settings. As for RDP client, there is GNOME Connections4.
3. Virtualization and Containerization
GNOME Boxes5 provides GUI for virtualization, while Podman6 provides an alternative choice to Docker.
For Boxes
, an interesting behavior is that if the default "Firmware"
option is chosen, i.e. BIOS
, then the boxed OS will have IP address
from 192.168.0.0/16
, with broadcast address mapped to virbr0
in
local machine. In this case, we can ssh
into the boxed OS through
its IP address. On the other hand, If the "Firmware" is set to UEFI
,
then the boxed OS will have IP address from 10.0.0.0/8
.
4. PostgreSQL
For PostgreSQL, follow the quick doc7 for detailed steps, which could be summarized as:
- Install packages
postgresql-server
andpostgresql-contrib
- Enable and start the
postgresql
service - Initialize database with
postgresql-setup
- Create password for the
postgres
user - (Optional) Allow PostgreSQL port access
- (Optional) Update SELinux contex
- Update
/var/lib/pgsql/data/postgresql.conf
to allow network connections - Update
/var/lib/pgsql/data/pg_hba.conf
to allow access to database server
Note that when using TRAMP mode in Emacs, sometimes it could change
user/group of the modifed file from postgres
to current wheel
user
– in which case, the service restart command will fall. Whenever this
happens, check the PostgreSQL log to see whether it's caused by
incorrect file permission.
5. Games
5.1. VCMI
VCMI8 is the GPL licensed re-implementation of HOMM 3, yet it
is only available in software center through flatpak by default. In
order to install the RMP package, add the RMP Fusion9
repository first10, then install
vcmi
11.
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm sudo dnf update sudo dnf install vcmi
After VCMI is installed, put game data into $HOME/.local/share/vcmi
and have fun.
6. Misc. Configs
6.1. Passwords and Keys
Among all the GNOME applications pre-installed, Passwords and Keys
is missing and requires manual installation, which is a bit confusing,
since Chromium
will complain if the user password has been changed
through passwd
without going throug the GNOME settings. And when this
error happens, install Passwords and Keys
and cleanse Log In
data
with old password.
6.2. Network: Static IP
In order to enable static IP of current machine, go to Network config
and conifigure IPv4 manually by setting both IP address, Subnet mask
(which is typically 255.255.255.0
), and Gateway
(e.g. 192.168.1.1
). Also, consider to go to router config and bind
the IP with machine MAC address.