.net core 官网地址

https://dotnet.microsoft.com/download

本次安装版本为.net core SDK v2.2.101

1、查看系统版本, 升级系统基本lib库

[root@test ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@test ~]# yum update     //可以执行此步骤,减少后面lib库依赖的痛苦。

2、下载.net core SDK v2.2.101 安装文件,并解压到指定目录

[root@test ~]#wget https://download.visualstudio.microsoft.com/download/pr/80e1d007-d6f0-402f-b047-779464dd989b/9ae5e2df9aa166b720bdb92d19977044/dotnet-sdk-2.2.101-linux-x64.tar.gz -P /usr/local/src
[root@test ~]#cd /usr/local/src
[root@test src]#mkdir -p /usr/local/dotnetcore
[root@test src]#tar -zxf dotnet-sdk-2.2.-linux-x64.tar.gz -C /usr/local/dotnetcore

3、添加net core环境变量

[root@test src]# vi /etc/profile

增加以下几行

#set dotnet core
export DOTNET_ROOT=/usr/local/dotnetcore
export PATH=$PATH:$DOTNET_ROOT

#生效环境变量

[root@test src]#source /etc/profile

4、查看dotnet 版本

[root@test src]# dotnet --version
dotnet: /usr/lib64/libstdc++.so.: version `GLIBCXX_3.4.18' not found (required by dotnet)
dotnet: /usr/lib64/libstdc++.so.: version `GLIBCXX_3.4.17' not found (required by dotnet)
dotnet: /usr/lib64/libstdc++.so.: version `CXXABI_1.3.5' not found (required by dotnet)
dotnet: /usr/lib64/libstdc++.so.: version `GLIBCXX_3.4.14' not found (required by dotnet)
dotnet: /usr/lib64/libstdc++.so.: version `GLIBCXX_3.4.15' not found (required by dotnet)

5、OMG,报错了。接下来才是重点,一步步解决到错误,首先查看GCC版本和默认动态库

5.1查看默认的gcc版本

[root@test src]# gcc --version
gcc (GCC) 4.4. (Red Hat 4.4.-)
Copyright (C) Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

5.2查看默认动态库

[root@test src]# strings /usr/lib64/libstdc++.so. | grep GLIBC
GLIBCXX_3.
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.2.5
GLIBC_2.
GLIBC_2.
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH ##低版本的gcc 不支持C++11的特性没有 GLIBCXX_3.4.14\GLIBCXX_3.4.15\GLIBCXX_3.4.17\GLIBCXX_3.4.18

此时有两种解决办法,首先,从其他地方拷贝一个libstdc++.so.6.0.19版本 ,或者其他高版本

上传文件到/usr/lib64 目录下

ln -sf libstdc++.so.6.0.19 libstdc++.so.6

此时在查看

[root@test src]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC

已经支持C++11 特性了。!!!

我上传一下我的编译好的libstdc++.so.6.0.19 文件,

链接:https://pan.baidu.com/s/1vgojWen8FNmlXaIupLcQjQ
提取码:7hfz

或者自己编译gcc,下面步骤是编译gcc 4.8.5

5.3因为在centos 7 安装直接安装官方文档即可,默认centos7 gcc版本是4.8.5 ,所以在此也选择升级到版本为4.8.5

GCC官网链接:https://gcc.gnu.org/

5.3.1下载gcc 4.8.5 安装包并解压

[root@test src]#wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.gz
[root@test src]#tar -zxf gcc-4.8..tar.gz

5.3.2 检查链接gcc升级依赖包mpfr-2.4.2、gmp-4.3.2、mpc-0.8.1

[root@test src]#cat gcc-4.8./contrib/download_prerequisites
#! /bin/sh # Download some prerequisites needed by gcc.
# Run this from the top level of the gcc source tree and the gcc
# build will do the right thing.
#
# (C) Free Software Foundation
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/. MPFR=mpfr-2.4.
GMP=gmp-4.3.
MPC=mpc-0.8. wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1
tar xjf $MPFR.tar.bz2 || exit
ln -sf $MPFR mpfr || exit wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1
tar xjf $GMP.tar.bz2 || exit
ln -sf $GMP gmp || exit wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz || exit 1
tar xzf $MPC.tar.gz || exit
ln -sf $MPC mpc || exit rm $MPFR.tar.bz2 $GMP.tar.bz2 $MPC.tar.gz || exit

5.3.3 按照脚本指示下载、解压、链接

[root@test src]# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
[root@test src]# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
[root@test src# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz

查看下载的文件

[root@test src]# ls *tar.*
gmp-4.3..tar.bz2 mpc-0.8..tar.gz mpfr-2.4..tar.bz2 [root@test src]# tar xjf mpfr-2.4..tar.bz2
[root@test src]# tar xjf gmp-4.3..tar.bz2
[root@test src]# tar -xzf mpc-0.8..tar.gz
[root@test src]# ln -sf mpfr-2.4. gcc-4.8./mpfr
[root@test src]# ln -sf gmp-4.3. gcc-4.8./gmp
[root@test src]# ln -sf mpc-0.8. gcc-4.8./mpc

5.3.4生成编译文件

[root@test src]cd gcc-4.8.
[root@test gcc-4.8.]# ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib ##如果没有报错,接着执行make ,如果多核心可以make -j4 ,过程比较长,可以看个小黄片,泡个咖啡等上半个小时。

[root@test gcc-4.8.5]#make -j4

[root@test gcc-4.8.5]#make install

5.3.5安装完GCC,检查一下

[root@test src]# ls /usr/local/bin| grep gcc
gcc
gcc-ar
gcc-nm
gcc-ranlib
x86_64-unknown-linux-gnu-gcc
x86_64-unknown-linux-gnu-gcc-4.8.5
x86_64-unknown-linux-gnu-gcc-ar
x86_64-unknown-linux-gnu-gcc-nm
x86_64-unknown-linux-gnu-gcc-ranlib

##此时证明安装gcc成功

[root@test src]#cp /usr/local/lib64/libstdc++.so.6.0.19 /usr/lib64/

[root@test src]#cd /usr/lib64/

[root@test lib64]#rm -f libstdc++.so.6

[root@test lib64]#ln -s libstdc++.so.6.0.19 libstdc++.so.6



5.3.6 再次检查dotnet core 版本

[root@test gcc-4.8.]# dotnet --version
Failed to load error: /lib64/libc.so.: version `GLIBC_2.' not found (required by /usr/local/dotnetcore/host/fxr/2.2.0/libhostfxr.so)
The library libhostfxr.so was found, but loading it from /usr/local/dotnetcore/host/fxr/2.2./libhostfxr.so failed
- Installing .NET Core prerequisites might help resolve this problem.
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 ###又提示报错,需要GLIBC_2.14支持

6.查看系统glibc支持的版本

[root@test src]# strings /lib64/libc.so. |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_PRIVATE ##可以看到最高的版本是GLIBC_2.,没有GLIBC_2.。我们在此解决一下

6.1 下载glibc

[root@test src]# cd /usr/local/lib
[root@test lib]# wget -c http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
[root@test lib]# tar -zxf glibc-2.14.tar.gz
[root@test lib]# cd glibc-2.14

6.2 在glibc源码目录建立构建目录,并make 安装

[root@test glibc-2.14]#mkdir build && cd build
[root@test build]# ../configure --prefix=/opt/glibc-2.14
[root@test build]#make j4
[root@test build]#make j4 localedata/install-locales     //如果不执行这一步,直接就导致了后面locale的设置问题
[root@test build]#make j4 install
 
 

6.3配置

[root@test glibc-2.14]cp /etc/ld.so.c* /opt/glibc-2.14/etc/
[root@test glibc-2.14]ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

注意


删除libc.so.6之后可能导致系统命令不可用的情况, 可使用如下方法解决:


#LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

如果上述更新失败可使用如下命令还原:


#LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 此项是系统升级前的版本
 

6.4查看版本库支持

[root@test build]# strings /lib64/libc.so. |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_PRIVATE ##已经支持 GLIBC_2.

6.5 再次检查dotnet core 版本

[root@test build]#dotnet --version
FailFast:
Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support. at System.Environment.FailFast(System.String) at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode() at System.Globalization.GlobalizationMode..cctor() at System.Globalization.CultureData.CreateCultureWithInvariantData() at System.Globalization.CultureData.get_Invariant() at System.Globalization.CultureInfo..cctor() at System.StringComparer..cctor() at System.AppDomain.InitializeCompatibilityFlags() at System.AppDomain.Setup(System.Object) Aborted (core dumped) ###又提示缺少ICU,真是一波三折啊

7.安装ICU,使用源码的方式安装icu. 我选择的是59.1版本,安装59.1可能有报错信息,如下:

make[1]: *** [stubdata.o] Error 1
make[1]: Leaving directory `/root/icu/source/stubdata'
make: *** [all-recursive] Error 2

换成56.1版本可以解决 下载地址http://download.icu-project.org/files/icu4c/56.1/icu4c-56_1-src.tgz

安装过程一样,软链接创建时候请注意不要直接copy

但是本次使用59.1安装

[root@test build]# cd /usr/local/src/
[root@test src]# wget http://download.icu-project.org/files/icu4c/59.1/icu4c-59_1-src.tgz
[root@test src]#tar -xzvf icu4c-59_1-src.tgz
[root@test src]#cd icu/source
[root@test source]#./configure --prefix=/usr/local/icu
[root@test source]#gmake && make install 参看是否安装成功:
[root@test source]#cd /usr/local/icu/bin
[root@test bin]#./icu-config --version
59.1 [root@test bin]#./icuinfo
./icuinfo: error while loading shared libraries: libicutu.so.: cannot open shared object file: No such file or directory 但是查看具体信息会提示缺少 libicutu.so.,其他缺少的dll,同样处理。 [root@test bin]# find / -name libicutu.so.
/lib64/libicutu.so.
/usr/local/icu/lib/libicutu.so.
/usr/local/src/icu/source/lib/libicutu.so. [root@test bin]# ln -s /usr/local/icu/lib/libicutu.so. /lib64/
[root@test bin]# ln -s /usr/local/icu/lib/libicui18n.so /lib64/
[root@test bin]# ln -s /usr/local/icu/lib/libicuuc.so. /lib64/
[root@test bin]# ln -s /usr/local/icu/lib/libicudata.so. /lib64/
[root@test bin]# ln -s /usr/local/icu/lib/libicui18n.so /lib64/libicui18n.so.59 [root@test bin]#ldd icuinfo
linux-vdso.so. => (0x00007fff4b739000)
libicutu.so. => /lib64/libicutu.so. (0x00007fb515db2000)
libicui18n.so. => /lib64/libicui18n.so. (0x00007fb515938000)
libicuuc.so. => /lib64/libicuuc.so. (0x00007fb51558a000)
libicudata.so. => /lib64/libicudata.so. (0x00007fb513a77000)
libpthread.so. => /lib64/libpthread.so. (0x0000003c7e400000)
libdl.so. => /lib64/libdl.so. (0x0000003c7e800000)
libstdc++.so. => /usr/lib64/libstdc++.so. (0x0000003c80c00000)
libm.so. => /lib64/libm.so. (0x0000003c7f000000)
libgcc_s.so. => /lib64/libgcc_s.so. (0x0000003c80000000)
libc.so. => /lib64/libc.so. (0x00007fb5136e8000)
/lib64/ld-linux-x86-.so. (0x0000003c7dc00000)

8.再次执行dotnet --version

[root@test bin]# dotnet --version
2.2.

看到这里,终于结束了。。。。好累!!!!

centos 6.5 安装dotnet core 2.2的更多相关文章

  1. centos 7 安装dotnet core

    dotnetcore 支持的Linux 版本请看官网:https://docs.microsoft.com/zh-cn/dotnet/core/linux-prerequisites?tabs=net ...

  2. 在CentOS 7上安装.NET Core R2跑Hello World

    前言 在上个月.NET Core出了最新版本预览版,只是在Window系统上试验了一下.原本想等发布正式版的时候在linux系统上试试,可能还需要一段时间,刚好有空可以折腾一下. 由于之前安装的Ubu ...

  3. 安装dotnet core

    CentOS 7.1下安装dotnet core .NET CORE的官方(http://dotnet.github.io/getting-started/)只提供了Windows, Ubuntu14 ...

  4. Linux - 安装 dotnet core 环境

    Linux -  安装 dotnet core 环境 系统环境:CentOS7 官方安装指导 https://www.microsoft.com/net/learn/get-started/linux ...

  5. CentOS 7.1, 7.2 下安装dotnet core

    .NET CORE的官方(http://dotnet.github.io/getting-started/)只提供了Windows, Ubuntu14.04, 及Docker(也是基于Ubuntu14 ...

  6. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (一) 安装dotnet core

    背景 根据我之前写的文章 将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目,我们将公司内部最核心的ORM框架迁移到net core 上面,并在win ...

  7. Windows 7 上面安装 dotnet core 之后 使用 应用报错的处理:api-ms-win-crt-runtime-l1-1-0.dll 丢失

    Windows2016 使用 dotnet core的使用 安装了就可以了 但是发现 windows 7 不太行 报错如图示 没办法简单百度了下 https://www.microsoft.com/z ...

  8. 使用alpine的docker镜像下 dind 的方式安装dotnet core 的一个非dockerfile的方法

    1. 下载dind的镜像 docker pull docker:dind 2. 执行该镜像 docker run -it --privileged --name some-docker -d dock ...

  9. linux下安装dotnet core

    windows下安装linux系统需要用到VMware 这个软件,可自行百度下载,然后安装centos7系统安装 centos下安装dotnetcore 在终端输入命令: sudo yum insta ...

随机推荐

  1. spark自定义函数之——UDAF使用详解及代码示例

    UDAF简介 UDAF(User Defined Aggregate Function)即用户定义的聚合函数,聚合函数和普通函数的区别是什么呢,普通函数是接受一行输入产生一个输出,聚合函数是接受一组( ...

  2. 次梯度(Subgradient)

    参考链接:https://closure11.com/subgradient/

  3. Spark SQL设计

  4. C# 创建DataTable并添加行和列

    DataTable dt=new DataTable dt.Columns.Add("numview", typeof(Int32)); dt.Columns.Add(" ...

  5. vc面试题目

    class B { public: B() { cout << "default constructor" << endl; } ~B() { cout & ...

  6. Java 局部变量

    Java 局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰符不能用于局部变量: 局部变量只在声明 ...

  7. springboot2.0整合springsecurity前后端分离进行自定义权限控制

    在阅读本文之前可以先看看springsecurity的基本执行流程,下面我展示一些核心配置文件,后面给出完整的整合代码到git上面,有兴趣的小伙伴可以下载进行研究 使用maven工程构建项目,首先需要 ...

  8. Java int和Integer包装类的区别和比较

    区别:                                                                                                  ...

  9. Postgraduate

    https://account.chsi.com.cn/passport/login?entrytype=yzgr&service=https%3A%2F%2Fyz.chsi.com.cn%2 ...

  10. dp转图论——cf1070A好题

    dp的状态转移很像一张有向图:每个状态为一个点,每中转移方案是一条有向边 本题要求是求出最小的数,那我们用状态[i,j]表示模i,数位和为j,那么从每个点出发的十条有向边代表[0,9]十个数 从每个状 ...