环境准备apt install fish

root@autodl-container-ccb94787cb-fe1dffd6:~/workspace# apt install fish

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

E: Unable to locate package fish

你遇到的错误:

E: Unable to locate package fish

说明在你的系统中 APT 无法找到 fish,这通常是因为:

❌ 常见原因与解决方案

1. 你的系统没有配置有效的软件源(最常见原因)

尤其是你使用的是 autodl-container(可能是基于 Ubuntu 的 Docker 容器),默认可能:

  • 没有配置网络
  • 使用了 apt 但未更新源
  • 源地址是错误的或已失效

解决方案:更新软件源并安装 fish

执行以下命令:

# 1. 更新软件包列表(非常重要)
apt update

# 2. 如果提示 "E: Could not open lock file /var/lib/dpkg/lock",说明有其他进程在用,先等一下或 kill
# 如果卡住,可以尝试:
#   sudo kill $(lsof -t -i:80)  # 临时杀掉占用进程,但谨慎使用

# 3. 安装 fish
apt install -y fish

🔥 关键:apt update 必须先执行!

🛠 如果 apt update 也失败了?

检查网络是否正常:

ping -c 4 google.com

如果失败 → 说明容器网络有问题。

🐳 如果你在 Docker 容器中(如 autodl):

1. 确保容器启动时有网络权限

启动命令中需要加:

--network=host
# 或者
--cap-add=NET_ADMIN

2. 手动修改源(推荐:换为国内镜像)

编辑源列表文件:

nano /etc/apt/sources.list

替换为阿里云源(Ubuntu 20.04 / 22.04 均适用):

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

📌 注意:jammy 是 Ubuntu 22.04 的代号,如果你是 20.04,请改为 focal

查看系统版本:

cat /etc/os-release

✅ 完整修复流程(推荐)

# 1. 更新源文件(替换为阿里云)
cat > /etc/apt/sources.list << 'EOF'
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
EOF

# 2. 更新包列表
apt update

# 3. 安装 fish
apt install -y fish

✅ 验证是否安装成功

fish --version
# 应输出类似:fish, version 3.6.1

然后运行:

fish

进入 Fish shell!

📌 附加建议:使用 fish 的方式

安装后建议设置为默认 shell(可选):

chsh -s /usr/bin/fish

⚠️ 注意:chsh 需要你在容器内有用户权限,且系统支持。

✅ 总结

E: Unable to locate package fish

通常是

apt update

没执行或源错误

无法

apt update

检查网络 + 手动替换为阿里云源

安装成功但

fish

找不到

确保

/usr/bin/fish

存在,用

which fish

检查

如果你告诉我你的系统是 Ubuntu 20.04 还是 22.04,我可以给你精准的 sources.list 内容 😊

现在试试运行:

apt update && apt install -y fish

应该就能成功安装啦!🎉

全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
后测速成辅导一两个月...:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务