【Ubuntu】安装常用软件包

安装java

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

bash 复制代码
Command 'java' not found, but can be installed with:
sudo apt install jdkxxxxxxxxxxxxxx

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

bash 复制代码
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了。

bash 复制代码
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也没有,自动提示了安装的命令,还挺方便的

bash 复制代码
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 都没什么问题

bash 复制代码
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

bash 复制代码
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

bash 复制代码
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

安装完之后就自己启动了

bash 复制代码
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登陆进去,这里不需要密码

bash 复制代码
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这个用户不对)

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

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

bash 复制代码
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;

bash 复制代码
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了,直接指定用户名和密码就可以了

bash 复制代码
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;

bash 复制代码
mysql> select host,user from mysql.user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | test             |
| localhost | root             |
+-----------+------------------+

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

bash 复制代码
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。

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

后续再补充...

相关推荐
vip4517 分钟前
Linux 经典面试八股文
linux
大霞上仙9 分钟前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
孤客网络科技工作室1 小时前
VMware 虚拟机使用教程及 Kali Linux 安装指南
linux·虚拟机·kali linux
颇有几分姿色2 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
AndyFrank3 小时前
mac crontab 不能使用问题简记
linux·运维·macos
筱源源3 小时前
Kafka-linux环境部署
linux·kafka
算法与编程之美3 小时前
文件的写入与读取
linux·运维·服务器
xianwu5434 小时前
反向代理模块
linux·开发语言·网络·git
Amelio_Ming4 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
Ven%5 小时前
centos查看硬盘资源使用情况命令大全
linux·运维·centos