SkillAgentSearch skills...

Sommelier

Installer for downloadable apps that run under wine, java, gamesys emulators, freedoom wads, or native linux apps, and for pre-downloaded game packages from gog.com

Install / Use

/learn @ColumPaget/Sommelier
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Build Status License: GPL v3

SYNOPSIS

Sommelier is an installer program that downloads and installs packages/programs that run under an emulator. As the name implies, the main target emulator is wine, (mostly 32-bit wine) though sommelier can also install some dosbox applications, a few linux native applications since version 4.7, and since version 4.0 some doom wads, scummvm games and numerous gog.com games. Sommelier downloads an application and any dependancies (MFC, VB6) that it may have. Downloads are checked against an expected sha256 sum. Each application is installed in it's own directory-structure (AKA 'wine-bottle') under ~/.sommelier, unless '-S' or '-system' options are used. Sommelier creates a .desktop file for each application in ~/.local/share/applications. If needed, registry entries are changed within the wine-bottle (e.g. some applications may need to be run in virtual-desktop mode, or may need to disallow window managing by the system window-manager. The wine-bottle approach allows registry changes to be made independantly for each application). The .desktop file is used to run the application by the 'sommelier run' command.

When installing native linux applications, sommelier tries to detect whether the system is a 32bit linux, or a 64bit one. It does this by checking which platform it was compiled for. This means you can run sommelier on a 32bit linux running on a 64bit processor, or even on a system that has a 64bit kernel but 32bit applications, and so long as sommelier has been compiled 32bit, it will install 32bit versions of apps. If sommelier is compiled for 64bit, it will install linux apps for 64bit rather than 32bit.

Sommelier can install many gog.com games, that either run under wine, native linux, dosbox, scummvm, or a neogeo emulator. If a game is in the list it means I've had it install and run successfully. For some reason I find fewer native games work for me than emulated games under wine. Unfortuantely you currently have to download all the files for a gog game with your browser and then install them with './sommelier install <game name> -url <path to installer>'.

Many wine apps from gog are 32-bit applications, so you'll need to 'apt get wine32' to run those on most 64-bit distros.

As of version 5.0 sommelier has been seen to install apps that are automatically imported in the XFCE, MATE and Moksha desktop environments, with the apps appearing in the system menu (unfortuantely most apps currently lack an icon to go with the entry).

The '-S' and '-system' command-line options are intended for use with native linux apps, and these are installed system-wide in a subdirectory of '/opt' rather than under '.sommelier' in the user's home directory. This will require sommelier to have write access to '/opt', which normally means running it as root. Applications run in this fashion aren't expected to be run by sommelier using 'sommelier run <name>' but instead to be added to the users PATH and run as normal native apps.

LICENSE

Sommelier is released under the GPLv3 license.

AUTHOR

Sommelier is written by Colum Paget. All patches/bugreports/requests should be sent to colums.projects@gmail.com, or handled through the project's github page.

INSTALL

The install consists of the main executable and a number of '.apps' files (wine.apps, msdos.apps, scummvm.apps, gog.com.apps) that configure installable applications.

The usual install process is:

./configure --enable-ssl
make
make install

This will place the sommelier executable in $(HOME)/bin and the '.apps' configuration files in $(HOME)/.sommelier. If $(HOME)/bin is not in your path then you may with to move the executable to somewhere that is. Note '--enable-ssl' is generally required so that sommelier can download https:// links

For a 'global' install that applies to all users do:

./configure --prefix=<prefix> --enable-ssl
make
make install_global

This will place the sommelier executable in <prefix>/bin and combine the '.apps' config files into <prefix>/etc/sommelier. This install method will also honor the $DESTDIR environment variable that is by package used creators to install under a specified 'root' directory so that everything under that directroy can be combined into a distributable package.

If you want to install the executable at one prefix, and the configuration at another, say putting the executable in /usr/local/bin but the config files in /etc/sommelier then you can do:

./configure --prefix=/ --exec-prefix=/usr/local --enable-ssl
make
make install_global

USAGE

Normally you will just want to do:

sommelier list

to see a list of applications, and then:

sommelier install <application>

to install one. Then the program can be run with:

sommelier run <application>

if sommelier installed a version of the application for the wrong platform use:

sommelier install <application> -platform <platform>

for gog games, or any installer that's at a specific path/url you can use:

sommelier install <application> -url <url>

gog game installers will expect to find any files they need (e.g. '.bin' files) in the same directory as themselves

various settings for an installed application can be changed using:

sommelier set <setting> <application>

if something is changed in the '.app' file that defines an application, then an installed application can be reconfigured to use the latest setup using:

sommelier reconfigure <application>

finally an application can be uninstalled with

sommelier uninstall <application>

DETAILED USAGE

sommelier addstore <url>                           add a remote store of apps at an ssh: or http: url
sommelier refresh                                  re-download files registered with 'addstore'
sommelier platforms                                print list of supported platforms
sommelier categories                               print list of application categories
sommelier list [options]                           print list of apps available for install. use -platform option to display apps for a given platform
sommelier install <name> [<name>] [options]        install an application by name
sommelier uninstall <name> [<name>]                uninstall an application by name
sommelier reconfig <name> [<name>]                 reconfigure an installed application (seek for executables, re-write desktop file)
sommelier reconfigure <name> [<name>]              reconfigure an installed application (seek for executables, re-write desktop file)
sommelier run <name>                               run an application by name
sommelier winecfg <name>                           run 'winecfg' for named wine application
sommelier regedit <name>                           run 'regedit' for named wine application
sommelier download <name>                          just download installer/package to current directory
sommelier set <setting string> <name> [<name>]     change settings of an installed application
sommelier autostart                                run programs from ~/.config/autostart

options are:
  -d                            print debugging (there will be a lot!)
  -debug                        print debugging (there will be a lot!)
  -c <config file>              specify a config (list of apps) file, rather than using the default
  -url                          supply an alternative url for an install (this can be an http, https, or ssh url, or just a file path. File paths must be absolute, not relative)
  -install-name <name>          Name that program will be installed under and called/run under
  -install-as <name>            Name that program will be installed under and called/run under
  -f                            force install even if expected sha256 doesn't match the download
  -force                        force install even if expected sha256 doesn't match the download
  -proxy <url>                  use a proxy for downloading installs
  -platform <platform>          platform to use when installing or displaying lists of apps
  -category <category>          category to use when displaying lists of apps
  -installed                    display only installed apps when displaying lists of apps, or only platforms with installed emulators when displaying platform list
  -k                            keep installer or .zip file instead of deleting it after install
  -S                            install app system-wide under /opt, to be run as a normal native app
  -system                       install app system-wide under /opt, to be run as a normal native app
  -n <name>                     specify name to install the app under, allows installing multiple instances of the same app
  -install-name <name>          specify name to install the app under, allows installing multiple instances of the same app
  -install-as <name>            specify name to install the app under, allows installing multiple instances of the same app
  -emu <emulator>               specify a specific emulator to use when installing an app (only for use with 'install' and 'reconfigure' verbs)
  -emulator <emulator>          specify a specific emulator to use when installing an app (only for use with 'install' and 'reconfigure' verbs)
  -icache <dir>                 installer cache: download installer to directory'dir' and leave it there
  -hash                         hash downloads even if they have no expected hash value
  -no-xrandr                    don't use xrandr to reset screen resolution after running and application
  -user-agent <agent string>    set user-agent to send when communicating over http
  -ua <agent string>            set user-agent to send 
View on GitHub
GitHub Stars5
CategoryDevelopment
Updated16d ago
Forks1

Languages

C

Security Score

90/100

Audited on Mar 15, 2026

No findings