What is the difference between 1. sudo apt-get install mono-runtime and 2. sudo apt-get purge --remove mono-complete followed by sudo apt-get install mono-complete on an Ubuntu linux 16.04 instance?

I was told earlier today that the difference between mono-runtime and mono-complete could be related to whether MySQL inserts successfully take place in favor of mono-complete.

Another hypothesis is that the the difference between mono-runtime and mono-complete could be related to the Mono implementation of System.Windows.Forms.dll with respect to responding to button clicks or presses which start MySQL database manipulation operations(i.e. DML).

I have used strace before. So I could post snippets of strace output upon request.

In some quarters, sudo apt-get install mono-complete means install the Mono Rumtime environment. But that is not what I mean here.


mono-complete's description is

Mono is a platform for running and developing applications based on the ECMA/ISO Standards. Mono is an open source effort led by Xamarin. Mono provides a complete CLR (Common Language Runtime) including compiler and runtime, which can produce and execute CIL (Common Intermediate Language) bytecode (aka assemblies), and a class library.

This is a metapackage and pulls in the Mono runtime, development tools and all libraries.

Install this package if you want to run software for Mono or Microsoft .NET which you are not installing from a Debian package.

mono-complete pulls in mono-runtime and all the available Mono libraries, including whatever Mono libraries provide database support (including MySQL support presumably). So you'd expect database-using .NET software to work with mono-complete.

mono-runtime only contains the .NET VM and JIT and AOT code generators. If you only have that installed, not much .NET code will work, and database-using .NET software certainly won't.

  • After I installed mono-runtime yesterday, I installed mysql-server, mysql-client , mysql-workbench and mysql dotnet connector 4.5 in cache for Ubuntu 16.04. Still, I observed that no MySQL database operations in mono ./BuildCameraList took place until we installed mono-complete. May I ask why that is? Thank you. – Frank May 10 '16 at 19:24
  • Is there a linux utility which traces: mono C# executable operation? – Frank May 10 '16 at 20:01
  • I imagine the MySQL database operations required libmysql6.4-cil, but I take it you've figured that out yourself ;-). – Stephen Kitt May 10 '16 at 21:18
  • I found out that libmono-system-data4.0-cil for /usr/lib/mono/4.5/System.Data.dll is also required in addition to libmysql6.4-cil. – Frank May 11 '16 at 2:47

Here is an answer to supplement Stephen Kitt's nice answer above for Ubuntu Linux 16.04:

  1. monodis --assemblyref ./Target.exe (C#)

  2. sudo apt install apt-file

  3. apt-file update

  4. for each assembly or DLL listed in step 1:

    For example, apt-file search MySQL.Data

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.