ubuntu20.04安装gfortran-6/libgfortran.so.3

在Ubuntu 20.04上运行GAMIT的doy命令时遇到libgfortran.so.3库缺失的问题。由于20.04不支持gfortran-6,因此需要添加bionic源,更新包列表,并安装gfortran-6。通过设置gcc默认版本为6,最终成功安装并运行了gfortran-6,从而解决了doy命令的执行问题。

当我尝试在ubuntu20.04上运行GAMIT下的doy命令时,显示:

root@DESKTOP-LF0EAC9:/etc/apt# doy
doy: error while loading shared libraries: libgfortran.so.3: cannot open shared object file: No such file or directory

其中libgfortran.so.3依赖于gfortran-6,则尝试安装gfortran-6:

root@DESKTOP:/etc/apt# apt install gfortran-6
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gfortran-6

这里的问题是ubuntu20.04不支持g+±6,添加以下源至/etc/apt/sources.list,添加源方式见链接

deb http://gb.archive.ubuntu.com/ubuntu/ bionic main universe

运行

sudo apt-get update

安装gcc++ -6

apt-get install g++-6

设置gcc默认版本

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 6

安装gfortran-6

 apt install gfortran-6

安装成功,运行doy

root@DESKTOP-LF0EAC9:/etc/apt# doy 2020 001
Date 2020/01/01  0:00 hrs, DOY   1 JD  2458849.5000 MJD  58849.0000
GPS Week  2086 Day of week  3, GPS Seconds 259200 Day of Week Wed
Decimal Year 2020.000000000 GRACE Seconds 631108800.0

运行成功

<think>我们分析一下错误信息:命令:`cp /mnt/hgfs/Ubuntu20.04--arm--share/1.txt/`错误信息:`cp:missing destinationfile operandafter &#39;/mnt/hgfs/Ubuntu20.04--arm--share/1.txt/&#39;`提示:`Try &#39;cp --help&#39;for moreinformation.`问题原因:1.`cp`命令需要两个操作数:源文件(或目录)和目标位置。2.上面的命令只提供了一个路径(源文件路径),没有指定目标路径。3.注意:源文件路径末尾有一个斜杠`/`,这可能会引起歧义,但在这里不是主要问题。具体分析:命令格式应为:`cp [选项]源文件目标文件`或`cp[选项]源文件...目标目录`上面的命令只给出了源文件(`/mnt/hgfs/Ubuntu20.04--arm--share/1.txt/`),没有给出目标文件或目录。解决方案:在命令后面加上目标路径。例如,如果要将文件复制到当前目录(即`~/Desktop/3.7.1/demo`),可以这样: ```bashcp /mnt/hgfs/Ubuntu20.04--arm--share/1.txt./```或者指定一个具体的文件名:```bashcp/mnt/hgfs/Ubuntu20.04--arm--share/1.txt ./newfile.txt```注意:源文件路径末尾的`/`可能会被忽略(如果`1.txt`是文件,则加上`/`会变成目录?但实际上,如果`1.txt`是文件,路径末尾的`/`会导致错误,因为文件不能以斜杠结尾。所以这里可能是用户输入错误,将文件路径末尾多打了一个斜杠。因此,正确的源文件路径应该是`/mnt/hgfs/Ubuntu20.04--arm--share/1.txt`(没有末尾的斜杠)。因此,更准确的命令应该是:```bashcp/mnt/hgfs/Ubuntu20.04--arm--share/1.txt ./ ```如果源文件路径末尾的斜杠是误输入,那么需要去掉斜杠。否则,如果源路径是一个目录(但这里命名为1.txt,可能是文件),那么需要确认它到底是文件还是目录。总结错误原因:1.缺少目标路径。2.源文件路径末尾的斜杠可能是多余的(如果源是文件则不能加斜杠)。修复步骤:1.检查源文件路径是否正确(确认是文件还是目录,以及路径是否存在)。2.在命令中补充目标路径。示例命令:```bashcp/mnt/hgfs/Ubuntu20.04--arm--share/1.txt ~/Desktop/3.7.1/demo/ ```如果源文件路径末尾的斜杠是多余的,则去掉:```bashcp/mnt/hgfs/Ubuntu20.04--arm--share/1.txt ~/Desktop/3.7.1/demo/ ```</think>### 问题分析及解决方法 #### 错误原因 您遇到的错误 `cp: missing destination file operand after ...` 是因为: 1. **缺少目标路径参数** `cp` 命令需要两个参数:源文件路径 + 目标路径,您只提供了源文件路径 `/mnt/hgfs/Ubuntu20.04--arm--share/1.txt/` 2. **路径结尾多余的斜杠** 源文件路径末尾的 `/` 表示目录,但 `1.txt` 应是文件而非目录,这会导致路径解析错误 #### 正确解决方案 1. **移除路径末尾的斜杠** ```bash cp /mnt/hgfs/Ubuntu20.04--arm--share/1.txt ./ # 复制到当前目录 ``` 或指定具体目标文件名: ```bash cp /mnt/hgfs/Ubuntu20.04--arm--share/1.txt ./newfile.txt ``` 2. **如果确实是目录** 当需要复制整个目录时,添加 `-r` 递归参数: ```bash cp -r /mnt/hgfs/Ubuntu20.04--arm--share/1.txt/ ./target_dir/ ``` #### 验证步骤 ```bash # 检查源文件是否存在 ls -l /mnt/hgfs/Ubuntu20.04--arm--share/1.txt # 正确执行复制 cp /mnt/hgfs/Ubuntu20.04--arm--share/1.txt ~/Desktop/3.7.1/demo/ ```
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值