简体   繁体   English

尝试在 ubuntu 20.04 上安装 php-mbstring

[英]Trying to install php-mbstring on ubuntu 20.04

I'm just trying to create a new laravel project and faced with this message我只是想创建一个新的 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.

Looks like I have to install php-mbstring on my computer, so I run the command看起来我必须在我的电脑上安装 php-mbstring,所以我运行命令

sudo apt-get install php-mbstring 

as i found in this thread: laravel/framework requires ext-mbstring正如我在这个线程中发现的: laravel/framework requires ext-mbstring

But there is another error message但是还有另一个错误信息

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.

This is the error code when i run sudo apt install php7.4-mbstring这是我运行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.

What have I tried我试过什么

  • Reinstalled php7.4 on my computer then try to install mbstring, but fail在我的电脑上重新安装 php7.4 然后尝试安装 mbstring,但失败
  • Update my php version to version -8 then try to install mbstring, but fail将我的 php 版本更新到版本 -8 然后尝试安装 mbstring,但失败
  • Do what is in this thread: https://askubuntu.com/questions/1064634/unable-to-install-php-mbstring , but fail执行此线程中的操作: https ://askubuntu.com/questions/1064634/unable-to-install-php-mbstring,但失败

So does anyone know how to install php-mbstring?那么有人知道如何安装 php-mbstring 吗? or how can i make a laravel project?或者我怎样才能制作一个 laravel 项目?

I hope you guys can help me with this problem, please.我希望你们能帮我解决这个问题,拜托。 I've been working on this problem for almost 8 hours and still can't find a solution.我已经在这个问题上工作了将近 8 个小时,但仍然找不到解决方案。

Turns out i have to enabled universe repository to my system, like this原来我必须为我的系统启用 Universe 存储库,就像这样

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

sudo apt-get update #to update my system

As Jarad said in this thread Cannot install php-mbstring on ubuntu 18.04 .正如 Jarad 在此线程中所说, Cannot install php-mbstring on ubuntu 18.04 And then i can just run然后我就可以跑了

sudo apt-get install php-mbstring 

But turns out, i have to be specific what version that i want to install.但事实证明,我必须具体说明我要安装的版本。 If i just run php-mbstring , will just install mbstring for php 8.0 not version installed on system.如果我只是运行php-mbstring ,只会为 php 8.0 安装 mbstring,而不是系统上安装的版本。 I have to be specific, then i run command我必须具体,然后我运行命令

sudo apt-get install php7.4-mbstring 

(I moved to php7.4) (我搬到了php7.4)

And it run perfectly.它运行完美。 Also thank you @Nico Haase and @Peter Krebs for helping.还要感谢@Nico Haase 和@Peter Krebs 的帮助。

What works for me is to specify the version, and don't forget to update:对我有用的是指定版本,并且不要忘记更新:

sudo apt update
sudo apt install php7.4-mbstring

Have you tried a system update?你试过系统更新吗?

sudo apt-get upgrade

I used this just today, hope it helps you as well.我今天才用这个,希望对你也有帮助。

I came to this issue today for php8.0-mbstring module, and I found that the correct repository i not available in my system so my method was this and it worked for me, hope it will hep you too:我今天为 php8.0-mbstring 模块遇到了这个问题,我发现我的系统中没有正确的存储库,所以我的方法是这样的,它对我有用,希望它也能帮助你:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get install php8.0-mbstring

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM