Installing latest mono on Centos 6 - mono

I am new to Linux (literally new- used it a couple of times) and I tried to install mono via yum; but I have gotten an outdated version that don't support .NET 4
How can I install mono 2.10.8?

Well, this is what I came up with and it worked for me:
based on this article:
$yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget
$cd /usr/local/src
$wget http://download.mono-project.com/sources/mono/mono-3.0.1.tar.bz2
$tar jxf mono-3.0.1.tar.bz2
$cd mono-3.0.1
$./configure --prefix=/opt/mono
$make && make install
Then I downloaded the MonoDevelop IDE and compiled my program using Mono framework.
Then in Centos I called my program:
/opt/mono/bin/mono /root/MyFolder/MyProgramDir/myProgram.exe "$#"

Here's a Hello World Console Application on CentOS 6.5, compiled with the Mono "mcs" command and run with the Mono "mono" command. The first section was taken directly from Andrew's answer. +1 for Andrew! I added some additional steps because I am using the command line, not a Linux GUI.
yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget
cd /usr/local/src
wget http://download.mono-project.com/sources/mono/mono-3.0.1.tar.bz2
tar jxf mono-3.0.1.tar.bz2
cd mono-3.0.1
./configure --prefix=/opt/mono
make && make install
Adding mono bin to "PATH" environment variable:
[root#localhost bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root#localhost bin]# export PATH=/opt/mono/bin:$PATH
[root#localhost bin]# echo $PATH
/opt/mono/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root#localhost bin]#
Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello Mars!");
}
}
}
Compile and Run:
Elon Musk's retirement party is planned for December 16, 2025!
Compile *.sln file:

Under CentOS 5 it's probably best to compile Mono from source to get a recent version.
It just so happens I have already written a complete set of instructions for doing this here (If you'll pardon me linking to one of my own pages):
http://wiki.phonicuk.com/Installing-Mono-in-CentOS-5-x.ashx
Edit:
The above link is dead, best instructions are now at http://www.mono-project.com/docs/compiling-mono/compiling-from-git/

Mono packaging has always been in need of Love in the Fedora/RedHat world, so go figure if you're using CentOS.
Mono's Download page lists OpenSUSE, Debian and Ubuntu: http://www.go-mono.com/mono-downloads/download.html
I would use one of those options instead if you want to do something serious, otherwise you're on your own.
(Novell used to offer pre-built packages from CentOS here, but all links there seem broken now. Furthermore, these seemed to be the "enterprisey" version, and anyway if you're going CentOS instead of RH you're already avoiding that sub-world I'm guessing...)

Related

Installing janus-gateway error on CentOS7

I want to install janus-gateway on CentOS7.
I read the following document and tried installation.
https://github.com/meetecho/janus-gateway/blob/master/README.md
git clone https://github.com/meetecho/janus-gateway.git
cd janus-gateway
sh autogen.sh
./configure --prefix=/opt/janus
However, configuring janus-gateway will cause an error. The error is as follows.
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for pkg-config... /bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for JANUS... no
configure: error: Package requirements (
glib-2.0 >= 2.34
libconfig
nice
jansson >= 2.5
libssl >= 1.0.1
libcrypto
) were not met:
No package 'nice' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables JANUS_CFLAGS
and JANUS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
I installed libnice(libnice-0.1.3-4.el7.x86_64) in the following way.
yum install libnice
How can I solve it?
Thank you.
try this and rebuild
echo "export PKG_CONFIG_PATH=/usr/lib/pkgconfig" >> ~/.bashrc
source ~/.bashrc
Disclaimer: I am using Ubuntu 18.04 when testing this.
If you are using Ubuntu system and trying to install Janus and running this code
./configure --prefix=/opt/janus
And then getting this error: No package 'nice' found
Make sure you have been installation of the nice from aptitude.
sudo install aptitude
aptitude install libmicrohttpd-dev libjansson-dev \
libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev \
libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \
libconfig-dev pkg-config gengetopt libtool automake
For some reason installation of nice using the answer from Frank, Ahmet or Zallfire doesn't work in Ubuntu. It has to be installed using aptitude.
You should download libnice source code to install.
https://gitlab.freedesktop.org/libnice/libnice
You need the development libnice.
yum install libnice-devel

openssl / ctls trouble with vapor 2

How can I fix these OpenSSL / TLS issues I'm getting with Vapor 2? They are preventing me from compiling my project on the command line and in Xcode.
During SPM build:
note: you may be able to install ctls using your system-packager:
brew install ctls
note: you may be able to install ctls using your system-packager:
brew install openssl
Upon failure of SPM build:
Linking ./.build/debug/Run
ld: library not found for -lcrypto for architecture x86_64
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: build had 1 command failures
error: exit(1): /Library/Developer/Toolchains/swift-3.1-DEVELOPMENT-SNAPSHOT-2017-03-07-a.xctoolchain/usr/bin/swift-build-tool -f /Users/tanner/Desktop/PackageConfig/.build/debug.yaml
Also in SPM:
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "shim.h"
^
/Users/tanner/Desktop/PackageConfigTwo/.build/checkouts/ctls.git-9210868160426949823/shim.h:4:10: error: 'openssl/conf.h' file not found
#include <openssl/conf.h>
^
/Users/tanner/Desktop/PackageConfigTwo/.build/checkouts/crypto.git-7980259129511365902/Sources/Crypto/Cipher/Cipher+Method.swift:1:8: error: could not build Objective-C module 'CTLS'
import CTLS
^
In Xcode:
/Users/tanner/PackageConfig/.build/checkouts/ctls.git-9210868160426949823/shim.h:4:10: 'openssl/conf.h' file not found
/Users/tanner/PackageConfig/.build/checkouts/crypto.git-7980259129511365902/Sources/Crypto/Cipher/Cipher+Method.swift:1:8: Could not build Objective-C module 'CTLS'
ld: library not found for -lssl
This error means OpenSSL is either not installed or not being properly linked. There are three solutions to this problem.
Option 1: Use Vapor Toolbox (Recommended)
Install the latest version of the Vapor toolbox.
If you have already installed the toolbox, try uninstalling it first:
which vapor
rm -rf /path/to/vapor
1.1 Install (macOS)
Add Vapor's Homebrew Tap
brew tap vapor/homebrew-tap
Update Homebrew and install the toolbox.
brew update
brew install vapor
1.2 Install (Ubuntu)
Add Vapor's APT repo.
Quick Script
eval "$(curl -sL https://apt.vapor.sh)"
Manual
wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | sudo apt-key add -
echo "deb https://repo.vapor.codes/apt $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vapor.list
Install
sudo apt-get update
sudo apt-get install vapor
1.3 Done
You should now have access to the vapor program and all required dependencies should be installed.
vapor build
vapor xcode
swift build and related commands should now also work normally.
swift build
swift package generate-xcodeproj
Option 2: Install Vapor's CTLS Package
2.1 Install (macOS)
Add Vapor's Homebrew Tap
brew tap vapor/homebrew-tap
Update Homebrew and install CTLS
brew update
brew install ctls
Restart your terminal, re-generate your Xcode project (if using Xcode), and try again.
2.2 Install (Ubuntu)
Add Vapor's APT repo.
Quick Script
eval "$(curl -sL https://apt.vapor.sh)"
Manual
wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | sudo apt-key add -
echo "deb https://repo.vapor.codes/apt $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vapor.list
Update APT and install CTLS.
sudo apt-get update
sudo apt-get install ctls
2.3 Done
swift build and other commands should now work normally.
Option 3: Manually Install and Link OpenSSL or Equivalent
3.1 Install (macOS)
Install OpenSSL (or any other similar SSL library)
brew install openssl
brew install libressl
3.2 Install (Ubuntu)
Install OpenSSL (or any other similar SSL library)
sudo apt-get install libssl-dev
3.3 Finding Linker Flags
You can use pkg-config (available on brew and apt) to find linker flags or most packages.
pkg-config <package-name> --cflags
pkg-config <package-name> --libs
However, OpenSSL installed through Homebrew cannot be linked and thus does not work with pkg-config. These flags should work:
include: /usr/local/opt/openssl/include
libs: /usr/local/opt/openssl/lib
Note, some libraries will be installed into /usr/include and /usr/lib which does not require explicit linker flags. OpenSSL through APT is installed this way.
3.4 Using Linker Flags
Linker flags can be added during swift build
swift build -Xswiftc -I/path/to/include -Xlinker -L/path/to/lib
They can also be added during Xcode project generation.
swift package -Xswiftc -I/path/to/include -Xlinker -L/path/to/lib generate-xcodeproj
#tanner0101 your suggestions here https://github.com/vapor/vapor/issues/937 have not resolved the issue for me. I get the CTLS is missing error not only on High Sierra but also on Ubuntu inside a Docker container.
The project is manually executable but MySQL does not work. I think that this https://github.com/vapor/vapor/issues/954 and this https://github.com/uchicago-cloud/mpcs51033-2017-spring-forum/issues/54 are not just deployment on Heroku issues.

Cannot start OpenDebug because Mono (or a Mono version >= 3.10.0) is required

I have downloaded and install vscode in ubuntu 14.0 lts, and include existing node.js project. First think I have to do with vscode is debugging my app, for that I have go to debug (ctrl+shift+D) penal, configure launch.json file with "name" and "program"="app.js" properties. Put debug point in app.js file and click on run button. Here I am getting error "Cannot start OpenDebug because Mono (or a Mono version >= 3.10.0) is required". How to solve it?
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install mono-complete
mono --version # Mono JIT compiler version 4.0.1 (tarball Tue Apr 28 11:47:58 UTC 2015)
Source: http://www.mono-project.com/docs/getting-started/install/linux/
Mono, cross platform, open source .NET framework, needs to be installed in the system. Please visit Mono - Download section and its corresponding installation guide to install.
Once installed you should be able to perform the debug operations.

Update Mono via CentOS

Hello i have CentOS and im trying my damnedest to update Mono i have version 1.2.4 at the moment some how, and im trying to compile something via xbuild and it isn't working im thinking because im using to old a version of mono.
Please BEFORE you link me ANY guide, if it links to the ftp.novell directory it no longer works, that directory is all scrapped. So i dont even know where to get a proper tarball for it now because on their site it only shows opensuse and such? Not CentOS like there used to be.
Can anyone help me with this :\
What version of CentOS are you using? 4?
The instructions below were tested on CentOS 5.9. They will also work fine on the latest CentOS version (6.4 as of this writing) and I imagine they would work with older versions as well.
Head over to /usr/src as root
su
cd /usr/src
Ensure GCC and friends are installed (to build the Mono source code)
yum install gcc gcc-c++ bison
Grab and unpack the Mono source code
wget http://download.mono-project.com/sources/mono/mono-3.0.7.tar.bz2
tar -xvjf mono-3.0.7.tar.bz2
Build and install Mono
cd mono-3.0.7
./configure --prefix=/usr
make && make install
Verify that you have a working Mono installation with mono --version and mcs --version
Build the GDI+ compatibility layer (required for System.Drawing)
yum install glib2-devel libX11-devel pixman-devel fontconfig-devel freetype-devel libexif-devel libjpeg-devel glib2-devel libtif-devel libpng-devel giflib-devel
cd /usr/src
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
tar -xvjf libgdiplus-2.10.tar.bz2

installing Mod_Mono and Xsp4 on CentOS 6.3

I've gotten Mono 3.0.1 installed, but I'm running into tons of dependency issues trying to install Mod_Mono and Xsp4, Has anyone gotten this to work? If so what were some of the steps you had to take? Is there a central location for this?
Thank you so much for taking the time to read my question and happy coding!
Enviroment:
Centos 6.3 basic install
Apache/2.2.15
Installation steps:
#Install required software
yum -y install httpd httpd-devel make glib2-devel libpng-devel libjpeg-devel
giflib-devel libtiff-devel libX11-devel gcc* fontconfig-devel bison gettext bzip2
libtool automake autoconf wget unzip
directory we will be installing mono in
mkdir -p /opt/mono
cd /tmp
Download & extract source
wget http://download.mono-project.com/sources/mono/mono-2.10.2.tar.bz2
wget http://download.mono-project.com/sources/xsp/xsp-2.10.2.tar.bz2
wget http://download.mono-project.com/sources/mod_mono/mod_mono-2.10.tar.bz2
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
tar -xjf mono-2.10.2.tar.bz2
tar -xjf xsp-2.10.2.tar.bz2
tar -xjf mod_mono-2.10.tar.bz2
tar -xjf libgdiplus-2.10.tar.bz2
compile and install libgdiplus
cd libgdiplus-2.10
./configure --prefix=/opt/mono
make ; make install
compile and install mono
cd ../mono-2.10.2
./configure --prefix=/opt/mono --with-libgdiplus=/opt/mono
make ; make install
Set enviroment vars(make sure to also modify ~/.bash_profile)
export PATH=$PATH:/opt/mono/bin
export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig
compile and install xsp
cd ../xsp-2.10.2
./configure --prefix=/opt/mono
make ; make install
compile and install mod_mono
cd ../mod_mono-2.10
./configure --prefix=/opt/mono --with-mono-prefix=/opt/mono
make ; make install
mv /etc/httpd/conf/mod_mono.conf /etc/httpd/conf.d/
Currently working with mono and xsp4:
[root]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root]# mono --version
Mono JIT compiler version 4.5.0
[root]# xsp4 --version
xsp4.exe 2.10.2.0
Chazt3n solution is ok, except I had to do some changes to make it work:
I changed the mono version from 4.0 to 4.5 in file: /opt/mono/bin/mod-mono-server4
I ran this command: cp /opt/mono/lib/mono/4.0/xsp4.exe /opt/mono/lib/mono/4.5/
Works well now, thanks.