尝试在 ubuntu 20.04 上安装 php-mbstring

Trying to install php-mbstring on ubuntu 20.04

我正在尝试创建一个新的 laravel 项目并遇到此消息

Creating a "laravel/laravel" project at "./example-app"
Installing laravel/laravel (v8.5.22)
  - Installing laravel/laravel (v8.5.22): Extracting archive
Created project in /home/alifirhas/0_Work/Belajar/postgresql/example-app
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/framework[v8.40.0, ..., 8.x-dev] require ext-mbstring * -> it is missing from your system. Install or enable PHP's mbstring extension.
    - Root composer.json requires laravel/framework ^8.40 -> satisfiable by laravel/framework[v8.40.0, ..., 8.x-dev].

To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/8.0/cli/php.ini
    - /etc/php/8.0/cli/conf.d/10-opcache.ini
    - /etc/php/8.0/cli/conf.d/10-pdo.ini
    - /etc/php/8.0/cli/conf.d/20-calendar.ini
    - /etc/php/8.0/cli/conf.d/20-ctype.ini
    - /etc/php/8.0/cli/conf.d/20-exif.ini
    - /etc/php/8.0/cli/conf.d/20-ffi.ini
    - /etc/php/8.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/8.0/cli/conf.d/20-ftp.ini
    - /etc/php/8.0/cli/conf.d/20-gettext.ini
    - /etc/php/8.0/cli/conf.d/20-iconv.ini
    - /etc/php/8.0/cli/conf.d/20-phar.ini
    - /etc/php/8.0/cli/conf.d/20-posix.ini
    - /etc/php/8.0/cli/conf.d/20-readline.ini
    - /etc/php/8.0/cli/conf.d/20-shmop.ini
    - /etc/php/8.0/cli/conf.d/20-sockets.ini
    - /etc/php/8.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/8.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/8.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/8.0/cli/conf.d/20-tokenizer.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

看来我必须在我的电脑上安装 php-mbstring,所以我 运行 命令

sudo apt-get install php-mbstring 

我在这个帖子中发现:

但是还有一个错误信息

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 php-mbstring : Depends: php8.0-mbstring but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

这是我运行sudo apt install php7.4-mbstring

时的错误码
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 php7.4-mbstring : Depends: libonig5 (>= 6.8.1) but it is not installable
E: Unable to correct problems, you have held broken packages.

我尝试了什么

那么有人知道如何安装php-mbstring吗?或者我如何制作 laravel 项目?

希望大家能帮我解决这个问题。我已经在这个问题上工作了将近 8 个小时,但仍然找不到解决方案。

对我有用的是指定版本,不要忘记更新:

sudo apt update
sudo apt install php7.4-mbstring

您尝试过系统更新吗?

sudo apt-get upgrade

今天刚用到,希望对你也有帮助。

原来我必须为我的系统启用 universe 存储库,就像这样

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"

sudo apt-get update #to update my system

正如 Jarad 在本帖中所说 Cannot install php-mbstring on ubuntu 18.04。然后我就可以 运行

sudo apt-get install php-mbstring 

但事实证明,我必须具体说明我要安装的版本。如果我只是 运行 php-mbstring,将只为 php 8.0 安装 mbstring,而不是系统上安装的版本。我必须具体一点,然后我 运行 命令

sudo apt-get install php7.4-mbstring 

(我搬到了php7.4)

而且 运行 非常完美。也感谢@Nico Haase 和@Peter Krebs 的帮助。