【Ubuntu】安装常用软件包

news2025/1/12 6:50:57

安装java

直接输入java,如果没有安装的话会提醒你输入命令安装,类似

Command 'java' not found, but can be installed with:
sudo apt install jdkxxxxxxxxxxxxxx

然后选一个版本安装就好,我这里选的jdk17,安装完确认一下

ubuntu@VM-4-13-ubuntu:~$ java --version
openjdk 17.0.12 2024-07-16
OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu224.04)
OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu224.04, mixed mode, sharing)

安装python3

输入python看他的意思是有python3,输入python3后果然进入shell了,那就ok了。

ubuntu@VM-4-13-ubuntu:~$ python
Command 'python' not found, did you mean:
  command 'python3' from deb python3
  command 'python' from deb python-is-python3
ubuntu@VM-4-13-ubuntu:~$ python3
Python 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

下面那句是你想要输入python时候就运行python3,可以安装 python-is-python3包,安装后输入python就也可以了,不过保持着能运行就不动原则,我没有操作这个,这步可选
sudo apt install python-is-python3

安装pip

发现pip和pip3也没有,自动提示了安装的命令,还挺方便的

ubuntu@VM-4-13-ubuntu:~$ pip
Command 'pip' not found, but can be installed with:
sudo apt install python3-pip
ubuntu@VM-4-13-ubuntu:~$ pip3
Command 'pip3' not found, but can be installed with:
sudo apt install python3-pip
ubuntu@VM-4-13-ubuntu:~$ 

运行提示的 sudo apt install python3-pip 就可以了,发现pip和pip3都存在,并不是指向一个命令,输入pip list/pip3 list 都没什么问题

ubuntu@VM-4-13-ubuntu:~$ which pip
/usr/bin/pip
ubuntu@VM-4-13-ubuntu:~$ which pip3
/usr/bin/pip3
ubuntu@VM-4-13-ubuntu:~$ ls -lsa /usr/bin/pip
4 -rwxr-xr-x 1 root root 221 Mar  6  2024 /usr/bin/pip
ubuntu@VM-4-13-ubuntu:~$ ls -lsa /usr/bin/pip3
4 -rwxr-xr-x 1 root root 221 Mar  6  2024 /usr/bin/pip3

然后问题就来了,安装时候报错
pip install xxxx

ubuntu@VM-4-13-ubuntu:~$ pip install xxxx
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.12/README.venv for more information.

解释一下

这个错误信息是 Python 在 Ubuntu 系统上对于系统级包管理的保护机制。从 Python 3.7 开始,Python 包管理器 pip 被设计为默认不安装包到系统级路径,以避免潜在的系统冲突和安全问题。这个机制被称为 “externally-managed-environment”。

错误信息提供了几种解决方案:

  • 使用 apt 命令安装系统级 Python 包:
    sudo apt install python3-xyz

  • 创建虚拟环境:
    如果你想要安装的包不是 Debian 官方仓库中的,你可以创建一个虚拟环境。虚拟环境允许你在不影响系统其他部分的情况下安装和管理 Python 包。使用以下命令创建虚拟环境:

    python3 -m venv path/to/venv
    然后激活虚拟环境:

    source path/to/venv/bin/activate
    在虚拟环境中,你可以使用 pip 来安装包,这些包将只在这个虚拟环境中可用。

  • 使用 pipx 管理非 Debian 打包的 Python 应用:
    pipx 是一个工具,用于在隔离的环境中安装和运行 Python 应用程序。它会自动创建虚拟环境。使用以下命令安装 pipx:
    sudo apt install pipx
    pipx install xyz

  • 覆盖系统包:
    如果你确定要覆盖系统包,可以通过添加 --break-system-packages 选项来使用 pip 安装。但这样做可能会破坏你的 Python 安装或操作系统,因此不推荐这样做,除非你非常清楚你在做什么。

看下来还是最后一点最简单啊,哈哈,先按建议的来试试
pip list看了一眼没有pandas

ubuntu@VM-4-13-ubuntu:~$ python3
Python 3.12.3 (main, Jul 31 2024, 17:43:48) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'
>>> 
ubuntu@VM-4-13-ubuntu:~$ sudo apt install python3-pandas 
Reading package lists... Done
Building dependency tree... Done
.....
省略安装日志
.....
ubuntu@VM-4-13-ubuntu:~$ 
ubuntu@VM-4-13-ubuntu:~$ pip3 list |grep "pandas"
pandas                2.1.4+dfsg
ubuntu@VM-4-13-ubuntu:~$ 

ok搞定了,再试下最后一种方法,先卸载掉,重新安装一下
pip uninstall pandas
报上面的错,直接加上 –break-system-packages
pip uninstall pandas --break-system-packages
报错,权限不够,加sudo
sudo pip uninstall pandas --break-system-packages
卸载成功,emmm,好像不用重新安装了,–break-system-packages 也挺好用的,另外几种就不测试了,不喜欢维护每个环境

安装mysql

sudo apt install mysql-server-8.0
安装完之后就自己启动了

ubuntu@VM-4-13-ubuntu:~$ service mysql status
● mysql.service - MySQL Community Server
     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-09-10 13:45:19 CST; 1 day 1h ago
    Process: 2098809 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 2098818 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1969)
     Memory: 372.7M (peak: 379.7M)
        CPU: 3min 28.439s
     CGroup: /system.slice/mysql.service
             └─2098818 /usr/sbin/mysqld

然后sudo mysql登陆进去,这里不需要密码
在这里插入图片描述

ubuntu@VM-4-13-ubuntu:~$ sudo mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.39-0ubuntu0.24.04.2 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

我猜测原因是,linux当前用户是 root,mysql的root没密码,所以直接登录成功(因为不用root登录时候提示ubuntu这个用户不对)

ubuntu@VM-4-13-ubuntu:~$ mysql
ERROR 1045 (28000): Access denied for user 'ubuntu'@'localhost' (using password: NO)

改了root密码后,用sudo 也提示无法访问了

ubuntu@VM-4-13-ubuntu:~$ sudo mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

然后再回来说下改root密码流程,就2步 thisUpassword替换为你自己的密码
1.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'thisUpassword';
2.FLUSH PRIVILEGES;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'thisUpassword';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

然后exit退出,再使用客户端登录,这里就不用sudo了,直接指定用户名和密码就可以了

ubuntu@VM-4-13-ubuntu:~$ mysql -uroot -p
Enter password:

正常登录,搞定。如果你想新建其他用户的话,命令如下:
mysql> create user 'test'@'localhost' identified with mysql_native_password by '12345678';
mysql> grant all on *.* to 'test'@'localhost' with grant option;
mysql> flush privileges;

上面的localhost表示只能本地连接,如果你要远程连接的话改成 %
create user 'test'@'%' identified with mysql_native_password by '12345678';
如果已经创建好了,就更新一下属性
use mysql
update user set host='%' where user='test';

主要是这个表,改完记得刷新权限flush privileges;

mysql> select host,user from mysql.user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | test             |
| localhost | root             |
+-----------+------------------+

然后改一个配置 /etc/mysql/mysql.conf.d/mysqld.cnf 里面的这两行改成0.0.0.0,这个就不手把手教了

ubuntu@VM-4-13-ubuntu:/etc/mysql/mysql.conf.d$ cat /etc/mysql/mysql.conf.d/mysqld.cnf |grep "bind"
bind-address		= 127.0.0.1
mysqlx-bind-address	= 127.0.0.1

改完重启一下MySQL ,service mysql restart
然后就是防火墙了,云服务器一般会带,开放一下3306。
在这里插入图片描述

应该就可以了,然后附一个官方文档

后续再补充…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习】注意力机制介绍,了解什么是注意力计算规则以及常见的计算规则,知道注意力机制的工作流程

1注意力机制介绍 1.1 注意力概念 我们观察事物时&#xff0c;之所以能够快速判断一种事物(当然允许判断是错误的), 是因为我们大脑能够很快把注意力放在事物最具有辨识度的部分从而作出判断&#xff0c;而并非是从头到尾的观察一遍事物后&#xff0c;才能有判断结果. 正是基于…

动物检测系统源码分享

动物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

el-tree父子不互相关联时,手动实现全选、反选、子级全选、清空功能

el-tree父子不互相关联时&#xff0c;手动实现全选、反选、子级全选、清空功能 1、功能实现图示 2、实现思路 当属性check-strictly为true时&#xff0c;父子节点不互相关联&#xff0c;如果需要全部选中或选择某一节点下的全部节点就必须手动选择每个节点&#xff0c;十分麻…

速卖通在哪些国家受欢迎?速卖通怎么选品?选品方式有哪些?

速卖通&#xff08;AliExpress&#xff09;是阿里巴巴集团旗下的一家跨境电商平台&#xff0c;也是全球第三大英文在线购物网站&#xff0c;为全球消费者提供了一个方便、多样化的购物平台&#xff0c;在中国跨境出口B2C平台中占据领先地位。相关数据统计&#xff0c;今年上半年…

砥砺前行 智护健康:衢州骨伤科医院建院十五周年庆典圆满启动

2024年9月12日&#xff0c;衢州骨伤科医院建院十五周年庆典圆满启动。作为邦尔骨科医院集团的第二家医院&#xff0c;衢州骨伤科医院创办于2009年&#xff0c;建院十五年来坚持集团宗旨与愿景&#xff0c;致力于将骨科领先技术和优质服务带给老百姓&#xff0c;现已成为区域领先…

input输入框之间有间隙的解决方案

1&#xff0c;浮动 浮动是处理元素排列方式的方法之一&#xff0c;使用浮动&#xff08;float&#xff09;可以帮助更好的排列元素位置 <p>源代码</p> <input type"text" name"name1" /> <input type"text" name"na…

JAVA宠物界的Uber同城遛狗兼职系统小程序源码

宠物界的Uber同城遛狗兼职系统&#xff0c;让爱宠自由奔跑&#xff01; &#x1f43e; 开篇&#xff1a;解锁宠物新生活方式 在这个快节奏的城市里&#xff0c;我们的爱宠是否也常常因为主人的忙碌而错失户外的欢乐时光&#xff1f;别担心&#xff0c;宠物界的“Uber”——同…

ArgoWorkflow教程(四)---Workflow 日志归档

上一篇我们分析了argo-workflow 中的 artifact&#xff0c;包括 artifact-repository 配置以及 Workflow 中如何使用 artifact。本篇主要分析流水线 GC 以及归档,防止无限占用集群中 etcd 的空间。 **【ArgoWorkflow 系列】**持续更新中&#xff0c;搜索公众号【探索云原生】订…

nlohmann::json中有中文时调用dump转string抛出异常的问题

问题描述 Winodows下C开发想使用一个json库&#xff0c;使用的nlohmann::json&#xff0c;但是遇到json中使用中文时&#xff0c;转成string&#xff0c;会抛出异常。 nlohmann::json contentJson;contentJson["chinese"] "哈哈哈";std::string test con…

从卫星和飞机等不同传感器方面由QGIS 遥感分析

在地理信息科学 (GIS) 中,遥感是指从远处获取有关地球表面特征信息的行为。遥感数据是从许多不同的平台获取而来,包括卫星、飞机和具有许多不同传感器的固定仪器,包括光谱图像(相机)和激光雷达。最常见的遥感数据形式是卫星和航空图像。 为了充分实现这些照片的价值,需要…

搜狗翻译+3款工具安利,让语言不再是加班路上的绊脚石

现在不管是开跨国会议、搞国际项目合作&#xff0c;还是平时发个邮件啥的&#xff0c;语言问题常常是让人加班的主要由头。不过还算幸运&#xff0c;随着科技不断发展&#xff0c;出现了一堆既高效又智能的翻译工具。这些工具老厉害了&#xff0c;不但能大大提升我们的工作效率…

线程--线程同步

这里写目录标题 同步概念线程同步概念数据混乱原因 互斥量原理锁的注意事项1、cpu时间轮片2、建议锁总结 使用锁来管理线程同步问题产生主要函数init、destorylock、unlock代码注意事项 条件变量二级目录二级目录二级目录 信号量二级目录二级目录二级目录 一级目录二级目录二级…

算法:数字化系统的智慧核心

在当今快速发展的数字化时代&#xff0c;算法在数字化系统中扮演着至关重要的角色。从数字孪生系统到物联网应用&#xff0c;算法不仅是技术进步的推动力&#xff0c;更是实现智能化、自动化的核心。本文将探讨数字化系统中算法的重要性&#xff0c;以及它们是如何被实现和集成…

spring容器创建bean过程中使用到的几个factory

文章目录 前述BeanFactoryFactoryBeanObjectFactory 前述 spring我们可以理解为一个帮我们管理bean的容器&#xff0c;使用spring框架之前创建bean都是通过new的方式&#xff0c;使用spring框架之后&#xff0c; 我们只需要告诉spring框架我们有那些bean&#xff0c;它会帮我们…

Linux:命令行参数

目录 一、命令行参数是什么&#xff1f; 二、命令行参数作用 三、命令行参数如何传递给main函数&#xff1f; 一、命令行参数是什么&#xff1f; C语言中的main函数&#xff0c;我们发现既可以带参数&#xff0c;也可以不带参数。带参数的main函数如下&#xff1a; 参数为一…

Matplotlib - Statistical Distribution作图

1. 前言 在数据分析和统计学中&#xff0c;绘制统计分布图是非常重要的&#xff0c;因为它帮助我们直观地理解数据的特性&#xff0c;并为进一步的分析提供基础。统计分布图能够揭示数据集的结构、趋势、集中趋势和离散程度等信息&#xff0c;从而使我们更容易做出合理的假设、…

监控系统添加vcenter上的esxi主机

监控系统的软件选择&#xff1a; 监控系统要求 快速搭建 能快捷地添加vcenter上的主机&#xff08;esxi&#xff09; 能实现动态添加主机监控 可供选择的监控软件 Prometheus vmware_exporter添加 vcenter及esxi监控&#xff0c;报奇怪的错误&#xff0c;解决时间比较长&a…

高阶数据结构之哈希表基础讲解与模拟实现

程序猿的读书历程&#xff1a;x语言入门—>x语言应用实践—>x语言高阶编程—>x语言的科学与艺术—>编程之美—>编程之道—>编程之禅—>颈椎病康复指南。 前言&#xff1a; 哈希表&#xff08;Hash Table&#xff09;是一种高效的键值对存储数据结构&…

C++(进阶) ─── 继承

目录 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6. 继承与静态成员 7.复杂的菱形继承及菱形虚拟继承 8.继…

ARCGIS PRO DSK MapTool

MapTool用于自定义地图操作工具&#xff0c;使用户能够在ArcGIS Pro中执行特定的地图交互操作。添加 打开MapTool1.vb文件&#xff0c;可以看到系统已经放出MapTool1类&#xff1a; Public Sub New()将 IsSketchTool 设置为 true 以使此属性生效IsSketchTool TrueSketchTyp…