​如果按照官方文档的步骤手动安装.Net5 会有一个坑:

在 Linux 上手动安装 .NET - .NET | Microsoft Docs

在使用systemd打包.Net5服务的时候,无法运行,报错如下图:

查询系统日志发现对dotnet访问没有权限,dotnet已设置权限755并且service的配置文件中User已配置为本人用户

奇怪的是作为本人用户登录在终端中使用dotnet是有权限的。

好一番寻找发现,systemd会阻止位于用户的主目录(Home)中二进制文件的运行。

linux - Failed at step EXEC spawning... Permission denied - Server Fault

我一下就想起来安装dotnet的时候完全闭眼copy的微软文档的命令。打开微软文档一看,果不其然,安装目录是{home_path}/dotnet!!

因此重新安装,首先下载源代码至/usr/local/src/

 sudo wget -P /usr/local/src/  https://download.visualstudio.microsoft.com/download/pr/e10f8ecd-eb2c-42a0-a217-98a18517e12c/436b90a4d5be20456b210c406c0f7718/dotnet-sdk-5.0.405-linux-x64.tar.gz

创建名为dotnet主目录并将二进制文件解压至该目录

sudo mkdir ../dotnet
sudo tar zxvf dotnet-sdk-5.0.404-linux-x64.tar.gz -C ../dotnet

打开~/.bashrc文件,末尾添加如下两行配置DOTNET_ROOT环境变量

export DOTNET_ROOT=/usr/local/dotnet/
export PATH=$PATH:$DOTNET_ROOT

保存并运行

source .bashr

用whereis命令查看dotnet已经在规范的目录中了

[学习笔记].Net5项目打包到Linux系统服务时遇到的坑的更多相关文章

  1. Maven学习笔记-02-Maven项目打包配置与测试

    一 Maven项目打包配置 1 为整个项目统一指定字符集 <properties> <project.build.sourceEncoding>UTF-</project ...

  2. android菜鸟学习笔记16----Android项目打包安装过程(Run as Android Application)

    右击项目名称,Run as Android Appication之后,Android项目打包安装过程: 1.打包生成.apk文件: 1)把源码中的.java文件编译生成.class文件 2)将所有的. ...

  3. thinkphp学习笔记3—项目编译和调试模式

    原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...

  4. Linux 学习笔记之超详细基础linux命令(the end)

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 14---------------- ...

  5. Linux 学习笔记之超详细基础linux命令 Part 14

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13---------------- ...

  6. Linux 学习笔记之超详细基础linux命令 Part 13

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12---------------- ...

  7. Linux 学习笔记之超详细基础linux命令 Part 12

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 11---------------- ...

  8. Linux 学习笔记之超详细基础linux命令 Part 11

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10---------------- ...

  9. Linux 学习笔记之超详细基础linux命令 Part 10

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...

  10. Linux 学习笔记之超详细基础linux命令 Part 9

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8----------------- ...

随机推荐

  1. Rsync+Inotify 实现数据同步

    Rsync 是UNIX及类UNIX-Like平台下一款强大的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync 可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效 ...

  2. LyScript 通过PEB结构解析堆基址

    LyScript中默认并没有提供获取进程堆基址的函数,不过却提供了获取PEB/TEB的函数,以PEB获取为例,可以调用dbg.get_peb_address(local_pid)用户传入当前进程的PI ...

  3. socket编程 [补档-2023-07-10]

    Linux网络编程 1.socket编程 socket是一种通信机制,用于在网络中不同计算机之间进行数据传输,当然也可用用于进程间通信.在linux中,有文件描述符这么个东西,我们可以通过socket ...

  4. TP5发送短信限制

    <?php //发送手机验证码 function smsCode() { //dump($this->request->post()); //请求方式验证 /*if (!$this- ...

  5. 小团队如何妙用 JuiceFS

    早些年还在 ENJOY 的时候, 就已经在用 JuiceFS, 并且一路伴随着我工作过的四家小公司, 这玩意对我来说, 已经成了理所应当不可或缺的基础设施, 对于我服务过的小团队而言, 更是实实在在的 ...

  6. LeetCode组合总和I~IV和背包问题小结

    一.组合总和问题 最近在看leetcode的组合问题,一共四道,总结一下共通之处与不同之处. 原题链接: 组合总和 组合总和II 组合总和III 组合总和IV 对比如下,为了便于对比,将原题目的叙述方 ...

  7. 尴尬:在zoom中找不到会议密码

    临时要开一个zoom会议,点击"新会议"进入,然后邀请其他与会者. "会议" - "复制邀请链接", 得到一行这样的信息(会议号已模糊处理) ...

  8. 图像列表组件(TImageList)

    TImageList 组件是一组同样尺寸的图像列表,每一个图像由它的Index值查询. 1.TImageList组件的典型用法 图形列表用于建立和管理大量的图像,主要是配合菜单或者工具栏按钮的使用.图 ...

  9. Linux sed输出文件内容的某几行

    命令: sed -n "开始行,结束行p" 文件名 sed -n '70,75p'   文件名             # 输出第70行到第75行的内容 sed -n '6p;26 ...

  10. Hive3.1.2安装部署

    一.安装Hive3.1.2 备注:在安装Hive3.1.2之前,请首先安装Hadoop3.1.3. 1. 下载并解压Hive安装包 tar -zxvf ./apache-hive-3.1.2-bin. ...