File management: Difference between revisions

From Alpine Linux
No edit summary
(1.Added krusader,spacefm,vifm,xfe & yazi FMs; 2.Added ext links Lomiri,PostmarketOS,GNOME Files,LXDE,Cinnamon; 3.Added links to pkgs,mostly in GVfs table; 4. Added that gvfs-dev is only available in AL 3.19.x-3.20.x [also available in v3.14-3.18]; see Discussion re more recent releases; 5.Style/grammar amendments)
 
Line 1: Line 1:
File management and storage access in Alpine Linux [[Desktop environments and Window managers|Desktop environments]] involves various components. In Alpine Linux, [[#File managers|file managers]] require additional software packages to:
File management and storage access in Alpine Linux [[Desktop environments and Window managers|desktop environments (DEs)]] involve various components. In Alpine Linux, [[#File managers|file managers]] require additional software packages to:-


* Automatically mount removable media
* Automatically mount removable media
Line 11: Line 11:
== File managers ==
== File managers ==


[https://en.wikipedia.org/wiki/File_manager File managers] provide a user interface to file management i.e manage files and folders. A partial list of file managers available in Alpine Linux is given below:
[https://en.wikipedia.org/wiki/File_manager File managers] provide a user interface for file management i.e to manage files and folders. A partial list of file managers available in Alpine Linux is given below:


{| class="wikitable" align="center" style="width:100%; border:1px #0771a6 solid; background:#f9f9f9; text-align:left; border-collapse:collapse;"
{| class="wikitable" align="center" style="width:100%; border:1px #0771a6 solid; background:#f9f9f9; text-align:left; border-collapse:collapse;"
Line 21: Line 21:
|{{pkg|caja}} ||Graphical||The file manager for the [[MATE|MATE desktop]]
|{{pkg|caja}} ||Graphical||The file manager for the [[MATE|MATE desktop]]
|-
|-
|{{pkg|clifm}} ||CLI||The shell-like, command line terminal file manager
|{{pkg|clifm}} ||CLI||The shell-like command line terminal file manager
|-
|-
|{{pkg|dolphin}} ||Graphical||File manager for [[KDE]] Plasma desktop  
|{{pkg|dolphin}} ||Graphical||File manager for [[KDE]] Plasma desktop  
|-
|-
|{{pkg|konqueror}} ||Graphical||[[KDE]] File Manager & Web Browser
|{{pkg|konqueror}} ||Graphical||[[KDE]] file manager and web browser
|-
|-
|{{pkg|lf}} ||TUI||Terminal filemanager written in Go with vim-style keybindings
|{{pkg|krusader}} ||GUI||Twin panel, Commander-style file manager
|-
|-
|{{pkg|lomiri-filemanager-app}} ||Graphical||Convergent file manager: for mobiles, desktops e.g. Lomiri DE, postmarketOS
|{{pkg|lf}} ||TUI||Terminal file manager written in Go with {{pkg|vim}}-style keybindings
|-
|-
|{{pkg|mc}} ||TUI||Filemanager/shell that emulates Norton Commander
|{{pkg|lomiri-filemanager-app}} ||Graphical||Convergent file manager: for mobiles, desktops e.g. [https://gitlab.com/ubports/development/core/lomiri Lomiri] DE, [https://postmarketos.org postmarketOS]
|-
|-
|{{pkg|nautilus}}||Graphical||[[Gnome|GNOME]] file manager also known as 'GNOME Files'
|{{pkg|mc}} ||TUI||Midnight Commander file manager/shell that emulates Norton Commander
|-
|-
|{{Pkg|nemo}} ||Graphical||File manager for Cinnamon desktop environment
|{{pkg|nautilus}}||Graphical||[[Gnome|GNOME]] file manager also known as [https://apps.gnome.org/Nautilus/ 'GNOME Files']
|-
|{{Pkg|nemo}} ||Graphical||File manager for [https://github.com/linuxmint/cinnamon Cinnamon] desktop environment
|-
|-
|{{pkg|nnn}} ||TUI||The unorthodox terminal file manager
|{{pkg|nnn}} ||TUI||The unorthodox terminal file manager
|-
|-
|{{pkg|pcmanfm}} ||Graphical||Extremely fast and lightweight file manager for LXDE
|{{pkg|pcmanfm}} ||Graphical||Extremely fast and lightweight file manager for [http://www.lxde.org LXDE]
|-
|-
|{{pkg|pcmanfm-qt}} ||Graphical|| Qt port of pcmanfm
|{{pkg|pcmanfm-qt}} ||Graphical|| Qt port of {{pkg|pcmanfm}}
|-
|-
|{{pkg|ranger}} ||TUI||VIM-inspired filemanager for the console
|{{pkg|ranger}} ||TUI||{{Pkg|vim}}-inspired file manager for the console
|-
|{{pkg|spacefm}} ||GUI|| File manager (GTK2 version) from a legacy {{pkg|pcmanfm}} fork
|-
|-
|{{pkg|thunar}} ||Graphical||File manager for [[Xfce]]
|{{pkg|thunar}} ||Graphical||File manager for [[Xfce]]
|-
|{{pkg|vifm}} ||TUI|| {{Pkg|vim}}-like file manager using {{Pkg|ncurses}}
|-
|{{pkg|xfe}} ||GUI|| Commander-like file manager for X
|-
|{{pkg|yazi}} ||TUI|| File manager written in Rust with asynchronous I/O, {{Pkg|vim}}-like input and bulk rename
|}
|}


== Disk management ==
== Disk management ==


Tools like [[#GVfs|GVfs]] and [[#Udisks|Udisks]] enable support for automatic mounting of removable storage and network storage. To mount encrypted devices ensure that appropriate packages like {{pkg|device-mapper}} and {{pkg|lvm2}} are installed.  
Tools like [[#GVfs|GVfs]] and [[#Udisks|Udisks]] enable support for automatic mounting of removable storage and network storage. To mount encrypted devices, ensure that appropriate packages such as {{pkg|device-mapper}} and {{pkg|lvm2}} are installed.  


=== Udisks ===  
=== Udisks ===  


[https://www.freedesktop.org/wiki/Software/udisks/ udisks] makes managing disks including removable drives like USB is much easier by providing a {{ic|udisks}} daemon and cli based tool {{ic|udisksctl}}. To install the {{pkg|udisks2}} package issue the command:{{Cmd|# apk add {{pkg|udisks2}}}}  
[https://www.freedesktop.org/wiki/Software/udisks/ udisks] makes managing disks, including removable drives such as USB, much easier by providing a {{ic|udisks}} daemon and the cli-based tool, {{ic|udisksctl}}. To install the {{pkg|udisks2}} package, issue the command:{{Cmd|# apk add {{pkg|udisks2}}}}  
To see the mounted disks:{{Cmd|$ udisksctl status}}  
To see the mounted disks:{{Cmd|$ udisksctl status}}  
To mount a disk {{Path|/dev/sdb1}}:{{Cmd|$ udisksctl mount -b /dev/sdb1}}
To mount a disk, {{Path|/dev/sdb1}}:{{Cmd|$ udisksctl mount -b /dev/sdb1}}
To unmount a disk {{Path|/dev/sdb1}}:{{Cmd|$ udisksctl unmount -b /dev/sdb1}}
To unmount a disk, {{Path|/dev/sdb1}}:{{Cmd|$ udisksctl unmount -b /dev/sdb1}}


=== GVfs ===
=== GVfs ===


Many GUI file managers rely on [https://gitlab.gnome.org/GNOME/gvfs GVfs], a userspace virtual filesystem implementation. GVfs comes with a set of backends for SFTP, SMB, HTTP, DAV, and many others. Depending on what devices you intend to mount, additional packages may be installed from the below list:
Many GUI file managers rely on [https://gitlab.gnome.org/GNOME/gvfs GVfs], a userspace virtual filesystem implementation. GVfs comes with a set of backends for SFTP, SMB, HTTP, DAV and many others. Depending on what devices you intend to mount, additional packages may be installed from the list below:-


{| class="wikitable" align="center" style="width:100%; border:1px #0771a6 solid; background:#f9f9f9; text-align:left; border-collapse:collapse;"
{| class="wikitable" align="center" style="width:100%; border:1px #0771a6 solid; background:#f9f9f9; text-align:left; border-collapse:collapse;"
Line 68: Line 78:
|Brief Notes
|Brief Notes
|-
|-
|    ntfs-3g      || Stable, full-featured, read-write NTFS (driver)
|    {{Pkg|ntfs-3g}}     || Stable, full-featured, read-write NTFS (driver)
|-
|-
|    gvfs-cdda    || CDDA support for gvfs
|    {{Pkg|gvfs-cdda}}   || CDDA support for gvfs
|-
|-
|    gvfs-afp   || AFP support for gvfs
|    {{Pkg|gvfs-afp}}    || AFP support for gvfs
|-
|-
|     gvfs-goa    ||GNOME Online Accounts support for gvfs
|   {{Pkg|gvfs-goa}}     || GNOME Online Accounts support for gvfs
|-
|-
|     gvfs-mtp    || MTP support for gvfs to mount android devices
|   {{Pkg|gvfs-mtp}}     || MTP support for gvfs to mount android devices
|-
|-
|     gvfs-smb   || Windows fileshare support for gvfs
|   {{Pkg|gvfs-smb}}    || Windows fileshare support for gvfs
|-
|-
|     gvfs-lang    || Languages for package gvfs
|   {{Pkg|gvfs-lang}}   || Languages for the gvfs package
|-
|-
|     gvfs-afc    || Apple mobile devices support for gvfs
|   {{Pkg|gvfs-afc}}     || Apple mobile devices support for gvfs
|-
|-
|     gvfs-nfs   || NFS support for gvfs
|   {{Pkg|gvfs-nfs}}    || NFS support for gvfs
|-
|-
|     gvfs-dev    || Backends for the gio framework in GLib (development files)
|   {{Pkg|gvfs-dev}}     || Backends for the gio framework in GLib (development files) - Alpine Linux v3.19-v3.20 only.{{Pill||v3.19.x-v3.20.x|orange|goldenrod}}
|-
|-
|     gvfs-archive || Archiving support for gvfs
|   {{Pkg|gvfs-archive}} || Archiving support for gvfs
|-
|-
|     gvfs-dav    || WebDAV support for gvfs
|   {{Pkg|gvfs-dav}}     || WebDAV support for gvfs
|-
|-
|     gvfs-fuse   || FUSE support for gvfs to mount external storage devices
|   {{Pkg|gvfs-fuse}}    || FUSE support for gvfs to mount external storage devices
|-
|-
|     gvfs-gphoto2 || gphoto2 support for gvfs
|   {{Pkg|gvfs-gphoto2}} || {{Pkg|gphoto2}} support for gvfs
|-
|-
|     gvfs-avahi ||DNS-SD support for gvfs
|   {{Pkg|gvfs-avahi}}  || DNS-SD support for gvfs
|}
|}


To list descriptions of all gvfs- packages:{{cmd|$ apk info -d gvfs-*}}
To list descriptions of all ''gvfs-'' packages:{{cmd|$ apk info -d gvfs-*}}


== Automounting removable storage ==
== Automounting removable storage ==


[[#GVfs|GVfs]] and [[#Udisks|Udisks]] enable automatic mounting of removable storage like USB drives and other external storage devices. To install them issue the command: {{Cmd|# apk add gvfs-fuse udisks2}}
[[#GVfs|GVfs]] and [[#Udisks|Udisks]] enable automatic mounting of removable storage like USB drives and other external storage devices. To install them, issue the command: {{Cmd|# apk add gvfs-fuse udisks2}}


In addition to the above packages, {{ic|fuse}} service supports automounting of a number of filesystems. Install the {{pkg|fuse-openrc}} package first.{{Cmd|# apk add fuse-openrc}}
In addition to the packages above, the {{ic|fuse}} service supports automounting of a number of filesystems. Install the {{pkg|fuse-openrc}} package first.{{Cmd|# apk add fuse-openrc}}


Start the fuse service OpenRC service as follows:{{Cmd|# rc-service fuse start}}
Start the fuse OpenRC service as follows:{{Cmd|# rc-service fuse start}}


If the desktop sessions are already in progress, they need to be restarted for the changes to take effect, i.e. log out and log in again.
If the desktop sessions are already in progress, they need to be restarted for the changes to take effect i.e. log out and log in again.


The fuse service can be added to start up automatically at boot time:{{Cmd|# rc-update add fuse}}
The fuse service can be added to start up automatically at boot time:{{Cmd|# rc-update add fuse}}
Line 117: Line 127:
== Network browsing ==
== Network browsing ==


For browsing of network shares that works seamlessly with file associations, install the gvfs packages for the required network protocols. For example, to browse in a SMB/cifs windows network:{{Cmd|# apk add gvfs-smb}}
For browsing of network shares that works seamlessly with file associations, install the {{Pkg|gvfs*}} packages for the required network protocols. For example, to browse in a SMB/cifs windows network:{{Cmd|# apk add gvfs-smb}}


== Enabling privilege escalation GUI ==
== Enabling privilege escalation GUI ==


When using File Managers, to enable the privilege escalation GUI for an [[Setting_up_a_new_user#Admin_user|admin user]], ensure the following:
When using file managers, to enable the privilege escalation GUI for an [[Setting_up_a_new_user#Admin_user|admin user]], implement the following:-
* Install appropriate [[Polkit#Authentication agents|Polkit authentication agent]] for the desktop environment  
* Install an appropriate [[Polkit#Authentication agents|polkit authentication agent]] for the desktop environment  
* Enable [[Polkit#Using polkit with elogind|polkit to be used with elogind]]
* Enable [[Polkit#Using polkit with elogind|polkit to be used with elogind]]
* Authentication agent is autostarted along with the desktop environment
* Authentication agent is autostarted along with the desktop environment
* A [[Display manager]] is used to start the desktop session(recommended)
* A [[Display manager|display manager]] is used to start the desktop session (recommended)


If the above steps are completed, When {{ic|admin://}} is typed in the address bar of [[File_management#File_managers|File Manager]], a password dialogue will appear.  
If the steps above are completed, whenever {{ic|admin://}} is typed in the address bar of the [[File_management#File_managers|file manager]], a password dialogue will appear.  


== Troubleshooting ==
== Troubleshooting ==
Line 135: Line 145:
''Error mounting /dev/sda1: GDBus.Error:org.freedesktop.UDisks2.Error.NotAuthorized: Not authorized to perform operation (polkit authority not available and caller is not uid 0)''   
''Error mounting /dev/sda1: GDBus.Error:org.freedesktop.UDisks2.Error.NotAuthorized: Not authorized to perform operation (polkit authority not available and caller is not uid 0)''   


If [[Polkit]] is not available, the above error will occur.  In this case either install and enable [[Polkit]] or using [[Setting up a new user#doas|doas]] is recommended.
If [[Polkit|polkit]] is not available, then the error above will occur.  In this case, either install and enable [[Polkit|polkit]], or using [[Setting up a new user#doas|doas]] is recommended.


== See also ==
== See also ==


* [[Polkit]]
* [[Polkit]]
* [https://wiki.archlinux.org/title/File_manager_functionality Archwiki]
* [https://wiki.archlinux.org/title/File_manager_functionality Archwiki - File manager functionality]
* [[Default applications|Change default application]] associated with a filetype
* [[Default applications|Change default application]] associated with a filetype


[[Category:Storage]]
[[Category:Storage]]
[[Category:Desktop]]
[[Category:Desktop]]

Latest revision as of 07:53, 2 September 2025

File management and storage access in Alpine Linux desktop environments (DEs) involve various components. In Alpine Linux, file managers require additional software packages to:-

  • Automatically mount removable media
  • Browse storage across shared networks
  • Display and access partitions using different filesystems with other installed operating systems

Prerequisites

  • Enable Polkit for privileged operations using a GUI

File managers

File managers provide a user interface for file management i.e to manage files and folders. A partial list of file managers available in Alpine Linux is given below:

Tool Graphical/TUI/CLI Brief Notes
caja Graphical The file manager for the MATE desktop
clifm CLI The shell-like command line terminal file manager
dolphin Graphical File manager for KDE Plasma desktop
konqueror Graphical KDE file manager and web browser
krusader GUI Twin panel, Commander-style file manager
lf TUI Terminal file manager written in Go with vim-style keybindings
lomiri-filemanager-app Graphical Convergent file manager: for mobiles, desktops e.g. Lomiri DE, postmarketOS
mc TUI Midnight Commander file manager/shell that emulates Norton Commander
nautilus Graphical GNOME file manager also known as 'GNOME Files'
nemo Graphical File manager for Cinnamon desktop environment
nnn TUI The unorthodox terminal file manager
pcmanfm Graphical Extremely fast and lightweight file manager for LXDE
pcmanfm-qt Graphical Qt port of pcmanfm
ranger TUI vim-inspired file manager for the console
spacefm GUI File manager (GTK2 version) from a legacy pcmanfm fork
thunar Graphical File manager for Xfce
vifm TUI vim-like file manager using ncurses
xfe GUI Commander-like file manager for X
yazi TUI File manager written in Rust with asynchronous I/O, vim-like input and bulk rename

Disk management

Tools like GVfs and Udisks enable support for automatic mounting of removable storage and network storage. To mount encrypted devices, ensure that appropriate packages such as device-mapper and lvm2 are installed.

Udisks

udisks makes managing disks, including removable drives such as USB, much easier by providing a udisks daemon and the cli-based tool, udisksctl. To install the udisks2 package, issue the command:

# apk add udisks2

To see the mounted disks:

$ udisksctl status

To mount a disk, /dev/sdb1:

$ udisksctl mount -b /dev/sdb1

To unmount a disk, /dev/sdb1:

$ udisksctl unmount -b /dev/sdb1

GVfs

Many GUI file managers rely on GVfs, a userspace virtual filesystem implementation. GVfs comes with a set of backends for SFTP, SMB, HTTP, DAV and many others. Depending on what devices you intend to mount, additional packages may be installed from the list below:-

Package Name Brief Notes
ntfs-3g Stable, full-featured, read-write NTFS (driver)
gvfs-cdda CDDA support for gvfs
gvfs-afp AFP support for gvfs
gvfs-goa GNOME Online Accounts support for gvfs
gvfs-mtp MTP support for gvfs to mount android devices
gvfs-smb Windows fileshare support for gvfs
gvfs-lang Languages for the gvfs package
gvfs-afc Apple mobile devices support for gvfs
gvfs-nfs NFS support for gvfs
gvfs-dev Backends for the gio framework in GLib (development files) - Alpine Linux v3.19-v3.20 only.

v3.19.x-v3.20.x

gvfs-archive Archiving support for gvfs
gvfs-dav WebDAV support for gvfs
gvfs-fuse FUSE support for gvfs to mount external storage devices
gvfs-gphoto2 gphoto2 support for gvfs
gvfs-avahi DNS-SD support for gvfs

To list descriptions of all gvfs- packages:

$ apk info -d gvfs-*

Automounting removable storage

GVfs and Udisks enable automatic mounting of removable storage like USB drives and other external storage devices. To install them, issue the command:

# apk add gvfs-fuse udisks2

In addition to the packages above, the fuse service supports automounting of a number of filesystems. Install the fuse-openrc package first.

# apk add fuse-openrc

Start the fuse OpenRC service as follows:

# rc-service fuse start

If the desktop sessions are already in progress, they need to be restarted for the changes to take effect i.e. log out and log in again.

The fuse service can be added to start up automatically at boot time:

# rc-update add fuse

When polkit is used with seatd, additional configuration is required for automounting to work.

Network browsing

For browsing of network shares that works seamlessly with file associations, install the gvfs* packages for the required network protocols. For example, to browse in a SMB/cifs windows network:

# apk add gvfs-smb

Enabling privilege escalation GUI

When using file managers, to enable the privilege escalation GUI for an admin user, implement the following:-

If the steps above are completed, whenever admin:// is typed in the address bar of the file manager, a password dialogue will appear.

Troubleshooting

Error due to missing polkit

Error mounting /dev/sda1: GDBus.Error:org.freedesktop.UDisks2.Error.NotAuthorized: Not authorized to perform operation (polkit authority not available and caller is not uid 0)

If polkit is not available, then the error above will occur. In this case, either install and enable polkit, or using doas is recommended.

See also