- 1 Really not in Mageia ?
- 2 Universal package formats
- 3 Using foreign rpm directly
- 4 Repackaging rpm
- 5 Binary files
- 6 Compiling the program yourself
- 7 Running MSWindows programs
- 8 Running DOS programs
- 9 Emulators
- 10 Game environments (and some apps too)
- 11 Common issues
- 12 Even more ways...
Really not in Mageia ?
First, check if what you are looking for really is not packaged. It can be under another name that you search for, also remember the name of packages is most often all lower-case. Or you can use another program, i.e. depending on what desktop environment you install, you have different readers for pdf installed per default, for example, Okular for Plasma.
If you do not find a program you need, please ask in our forum.
The proprietary drivers
The proprietary drivers i.e for graphics and wifi are shipped in the non-free media. I.e. for Nvidia enable the nonfree and nonfree_update repos, and in MCC when you configure your Nvidia video card you will be asked if you want to use nouveau or the Nvidia driver.
Patent encumbered software
A lot of audio and video codecs that are restricted from free use in smaller or larger part of the world, and programs with such built in, are in the tainted repos.
Optimally you should check if you can legally use some particular package from there, depending on usage and in which part of the world you are, before installing it.
If you want to update everything installed to the versions from the tainted repos: enable both tainted and tainted_updates, on 64-bit systems also the 32-bit versions, and as root issue urpmi --auto-select
Normal package handling in Mageia
If you do not know the default package management in Mageia, please first see:
About using the command line see URPMI.
More on package management in Mageia
Overview of news: Package management
You may use DNF as package manager: see above link and Using DNF. It will use the same rpm database as urpmi in the background, BUT: they use different methods to track orphans = if you use both you should never use either's functionality to remove orphans, see Removing_packages.
Mageia may switch to use DNF per default in Mageia 7 and onwards.
Universal package formats
There exist several ways to package software to make it easily installable on a lot of Linux distributions.
Appimages are kind of self-contained archives that can be downloaded and run directly without installation or the need for root rights; Just download one file, make it executable (i.e chmod a+x FreeCAD*.AppImage, and run it ./FreeCAD* ! (Command examples for when you open a console in the folder where you have downloaded the Appimage, i.e press F4 in Dolphin for the terminal.)
Examples: We have FreeCAD (a very capable mechanical CAD in heavy development) and Slic3r (3D printer CAM), but you may be interested in having the development versions to get extra features. You may still have the Mageia packaged version installed, or more than one version in appimage format. https://forums.mageia.org/en/viewtopic.php?f=7&t=12200
Programs can be found at https://flathub.org/ , links above, or at the program authors sites.
Flatpack provides a sandbox environment.
Install flatpak from our repo. Easy, see https://flatpak.org/setup/Mageia/ When you start installing programs it will download a lot of dependencies and use quite a lot space in /var/lib/flatpak, example: after installing only KiCAD (which is rather big) as flatpak, /flatpak was 4GB.
Example usage: How to install Spotify using flatpak.
Java jar files
Generally the most versatile also works on Microsoft and Apple systems. Some may need many dependencies, while some have everything included. Example: FriBok (Swedish invoice and accounting)
In general, just start a java program with java -jar thejarfile.jar
Nice to know: the .jar file is an archive that can be opened in i.e Ark, so you can i.e edit internal configuration files (i.e. I personalized my invoice formatting).
Using foreign rpm directly
With the normal caveat that it may not find its dependencies, there is also the (small) risk that the rpm may perform some pre/post-install scripts that do something you do not want.
Sometimes you just have to though. Here is an example installing a Canon printer driver using the vendor rpm but without using their install script.
rpm packages from other Mageia release
In Mageia development release "Cauldron", there may exist a newer version you need of a program. You can then often download that rpm and rebuild it to suit the Mageia release you run, see How_to_do_your_own_backports.
Foreign .rpm packages
An rpm from another distro can often be rebuilt for Mageia. Please refer to Packagers RPM tutorial. A good source for the best suitable package candidates is Fedora.
Programs packaged for Debian/Ubuntu/... in .deb format can often be converted using the program alien, which you can install from Mageia repo.
Example: How to repackage and install Spotify
Some have an installer script. It may be a good idea to look into the script to see what it does - you may want it in some other way, or not need to run it.
Some programs are just a binary file you set executable permission on, and run. Other may come as a .sh script with embedded/compressed binary at the end, that it unpacks when you run it. Other programs may come like a compressed folder tree you unpack where you want it, read any documents like readme and help files you find in it, and run the executable.
Like always it is good to start non-Mageia packaged programs the first time from the command line in a terminal so you see any messages, like missing dependencies.
In user home
Often programs are best installed in users /home. Example: Eagle CAD (Proprietary printed circuit CAD)
For all users, i.e Acrobat Reader
These programs should end up in the /usr/local/ directory. This directory is intended for non-official packages.
Compiling the program yourself
The familiar trilogy:
./configure make make install
... Optionally making an rpm
Instead of that triology above, you can use checkinstall to generate an rpm:
./configure make checkinstall
You will then get an rpm that can be installed using urpmi, and can also be uninstalled when you want to. If the tarball already includes a good spec file, it is even easier:
rpmbuild -tb ballname.tar.gz
Mageia has the development suite so you may load the source in QtCreator and compile and launch it from there, also for debug, edit, development.
Or for just compiling it you can use qmake, see example for shematic program QElectroTech.
Running MSWindows programs
Wine can be used to translate system calls between MSWindows programs and the Linux system. It works for a lot of programs but not all. See https://www.winehq.org/ and https://wiki.winehq.org/Main_Page.
Install wine from our repos (wine64 if you run 64 bit Mageia, and then also wine32 (32 bit support)). You may also want wine-mono and wine-gecko / wine64-gecko.
Configure wine by starting winecfg and launch programs directly by issuing wine PROGRAM [ARGUMENTS...].
Running DOS programs
In our repo you can find dosbox, and dosemu with the graphical extension xdosemu. There also is an image "dosemu-freedos" of FreeDOS, which is a free/libre alternative to MS DOS, for use with (x)dosemu. They use certain special features of the Linux kernel and the 80386+ processor. For more info read the package descriptions and search the net.
Run "anything" for PC by using another OS
Emulate one or more other PC simultaneously and install the operating systems you need, and easily stop, start, clone, archive them.
The most desktop friendly is VirtualBox from our repos. Using that you can install almost any PC operating system in a virtual PC, so you can install DOS, Windows XP, ...
An alternative to VirtualBox is VMware
Emulate non-PC computers
Fancy old games? We have some emulators for DOS and various game consoles and old home computers, for which you can find games and other software on the internet or you maybe have them. Search for packages containing "emulator" in all packages summaries.
Game environments (and some apps too)
You can install steam from our repo, and it provides an environment which can download and run games, and other software. A lot of software is available for more than one operating system. Here is a list of apps for Linux.
Often foreign .rpm, converted .deb, binaries, .jar files, and some universal packages are dependant on one or more libraries. Usually, Mageia has them all, but under different names.
Try launching the program in a text terminal (i.e in konsole in Plasma), and it will often tell you what file it can not find. Then you can use urpmf or diskdrake to search for it in a Mageia package and install that. If we have it in another place or slightly different version, you may be successful with symlinking or copying.
One common difference is that on Mageia the 64 bit libs are named lib64* but the rpm may need/look for the lib without the name "64".
o Flatpack provides a kind of sandboxing in itself.
o Firejail provides sandboxing for many programs, and is good for Appimage programs. It is now April 2018 packaged in Cauldron and if not yet backported to Mageia 6 see above how to do it yourself. You need packages firejail and also firetools for configuring. Basic simple usage: prefix your program with "firejail". Using firetools: launch firetools and you see a pane with default quickstart links, and at top left two configuration links. Also see here.
o Systems run under emulators like VirtualBox only share folders that you configure for sharing and can be read-only.
Even more ways...
Just short mentions, not to elaborate on here:
- There exist great plugins for web browsers and other programs, macros for some programs, ...
- You can execute command line scripts and the sort in various languages...
- Mageia can handle virtual appliances/containers like lxc and Docker, and have tools for it too, as well as Virt-Manager for KVM virtual machines. We have xen, and we can probably list some more...
- On Mageia you can install Nextcloud server which in turn can run a lot of plugin web applications like shared calendar, etc.
- Apache can run other things too, like Urpmi-proxy