Si të instaloni dhe konfiguroni Ruby me Rbenv, Rails, MariaDB, Nginx, SSL dhe Passenger në Ubuntu 17.04

Ruby on Rails është një kornizë e njohur në internet për Ruby që u zhvillua për të rritur produktivitetin e një programuesi. Megjithatë, marrja e gurëve të çmuar dhe varësive të ndryshme për të punuar së bashku mund të jetë e ndërlikuar ndonjëherë. Ky udhëzues do t'ju ndihmojë të krijoni një mjedis të plotë të Rails gati për prodhimin, duke përfshirë gurët e çmuar dhe vartësitë e përdorura zakonisht.

Kërkesat

  • Shembull Vultr me të paktën 512 MB RAM (preferohen 1024 MB).
  • Shembull Vultr që ekzekuton Ubuntu 17.04.

Stack i përdorur në këtë udhëzues

  • Nginx : një server i shpejtë dhe i fuqishëm në internet. (versioni 1.10.3)
  • Pasagjeri : një server aplikacioni që do të ndihmojë Nginx të shërbejë aplikacionin tuaj Ruby. (versioni 1.5.1.8)
  • Rbenv : një menaxher i versionit Ruby. (vergjet 1.1.1-2)
  • Rubin : (versioni 2.4.1)
  • MariaDB : një degë me burim të hapur të serverit MySQL (ver 10.2)
  • Certifikata SSL nga Let's Encrypt

Instalimi

Shto përdorues Sudo

Shënim : Rekomandohet shumë të mos instaloni asnjë nga këto shërbime si root, pasi mund të ekspozoheni ndaj një sulmi. Vendosja e një deployose një apppërdoruesi është një konventë e zakonshme:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Përditësoni dhe përmirësoni sistemin

Sigurohuni që po ekzekutoni të gjitha paketat më të fundit në Ubuntu VM tuaj:

sudo apt-get update && sudo apt-get upgrade -y

Instaloni Build System

Për të qenë në gjendje të përpiloni Ruby duke përdorur rbenv dhe gurë të tjerë të çmuar, duhet të instalohen paketa të ndryshme. Në varësi të versionit të Ruby që ju nevojitet, disa nga paketat mund të mos nevojiten.

Përpilimi
sudo apt-get install -y curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev
sudo apt-get install -y libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev
sudo apt-get install -y python-software-properties libffi-dev
sudo apt-get install -y build-essential openssl libreadline6 libreadline6-dev libreadline-dev
sudo apt-get install -y automake libtool bison pkg-config bison autoconf libc6-dev ncurses-dev
sudo apt-get install -y libapr1-dev libaprutil1-dev libx11-dev libffi-dev tcl-dev tk-dev
Paketa për mbështetje SSL

Këto janë të nevojshme për të përpiluar disa gurë të çmuar, si pasagjerët:

sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Versionimi

Komuniteti Ruby po përdor Git si një SCM të zgjedhur; por ato shtesë, si Mercurial ose Subversion, mund të instalohen gjithashtu:

sudo apt-get install -y git git-core
Drejtuesit e bazës së të dhënave për MySQL / MariaDB
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Nokogiri

Kërkohet për disa gurë të çmuar të njohur që kanë nevojë për libs amtare XML:

sudo apt-get install -y libxml2-dev libxslt-dev
Nyja.js

Shtoni depo zyrtare nga Node me versionin më të fundit si depot e paracaktuara të Ubuntu priren të mbeten prapa disa versioneve kryesore:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Paketat Opsionale

Këto paketa nuk kërkohen që sistemi të funksionojë, por është mirë t'i keni nëse keni nevojë të përdorni disa gurë të çmuar.

Grafikët dhe Imazhet

Këto biblioteka nuk janë të nevojshme dhe mund të anashkalohen nëse nuk planifikoni të përdorni gurë të çmuar të manipulimit të imazheve; të tilla si Rmagick:

sudo apt-get install -y imagemagick libmagickwand-dev libvips-dev

Drejtuesit e bazës së të dhënave për SQLite dhe PostgreSQL

Instaloni drejtuesit për SQLite ose PostgreSQL nëse keni nevojë të lidheni me baza të tjera të të dhënave ose preferoni një DB të thjeshtë, lokal:

sudo apt-get install -y libsqlite3-dev sqlite3  libpq-dev postgresql postgresql-contrib

Mjetet

Shërbimet që zakonisht nuk vijnë të para-instaluara në një instalim të ri të Ubuntu. Mos ngurroni të instaloni redaktuesin e tekstit të zgjedhur:

sudo apt-get install -y iotop htop nano vim

Instaloni serverin MariaDB

MariaDB është një server i fuqishëm relacional SQL, që është plotësisht i pajtueshëm me MySQL. Mënyra më e lehtë për të instaluar versionin më të fundit të MariaDB është përdorimi i depove zyrtare:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386] http://ftp.utexas.edu/mariadb/repo/10.2/ubuntu zesty main'
sudo apt update
sudo apt install -y mariadb-server

Ndiqni kërkesat dhe vendosni një fjalëkalim rrënjësor. Pas kësaj, verifikoni që mund të përdorni instalimin tuaj të ri:

mysql -V 

Do të shfaqë një rresht të ngjashëm me këtë:

mysql  Ver 15.1 Distrib 10.2.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5

Hyni në guaskën MySQL:

mysql -h localhost -u root -p 

Shënim : përdorni \qpër të dalë.


Instaloni Rbenv dhe Ruby

Rbenv

Instaloni Rbenv duke përdorur git. Kjo është metoda më e thjeshtë e instalimit dhe mundëson përditësime të lehta më vonë. Gjithashtu instaloni ruby-build, ai është përgjegjës për përpilimin e versioneve të ndryshme të Ruby:

cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

Shënim : Kur duhet të përditësoni thjesht cd ~/.rbenvdhe git pull.

Bëni Rbenv dhe Ruby-build të disponueshme në guaskë. Për të siguruar që linjat e eksportit të futen në fillim.bashrcskedarit, gjë që është e rëndësishme për komandat bash jo-ndërvepruese, përdorni këto rreshta:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.temp_bashrc
echo 'eval "$(rbenv init -)"' >> ~/.temp_bashrc
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.temp_bashrc

cat ~/.temp_bashrc ~/.bashrc > ~/.combined_bashrc && mv ~/.combined_bashrc ~/.bashrc && rm ~/.temp_bashrc

exec $SHELL

Kontrolloni nëse Rbenv dhe Ruby-build janë instaluar dhe janë të disponueshëm në shell:

rbenv install --list

Nëse rbenvnuk njihet, dilni dhe hyni përsëri në guaskë.

Krijoni një ~/.bash_profileskedar dhe drejtojeni atë në burimin e ~/.bashrcskedarit tuaj . Nëse ju duhet të ekzekutoni ndonjë komandë jo-interaktive të guaskës nga aplikacioni juaj Rails, si p.sh. konfigurimi i cron jobs nga whenevergur i çmuar, ai do të përdorë të njëjtin version të Ruby si guaska juaj interaktive. Kjo mund të ndihmojë në parandalimin e gabimeve të çuditshme. Shtoni këtë rresht në ~/.bash_profileskedar:

if [ -f $HOME/.bashrc ]; then
        source $HOME/.bashrc
fi

Rubin

Instaloni Ruby 2.4.1:

rbenv install 2.4.1

Shënim : Ky proces mund të zgjasë 5-15 minuta në varësi të burimeve në VM-në tuaj dhe nuk ka asnjë shirit progresi.

Bëjeni Rbenv të disponueshëm kudo.

rbenv global 2.4.1

Pasagjeri dhe Nginx

Shtoni çelësin PGP dhe mbështetjen HTTPS për apt:

sudo apt-get install -y dirmngr gnupg
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

Shtoni depon e pasagjerëve:

sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger zesty main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update

Instaloni modulet Passenger + Nginx:

sudo apt-get install -y nginx
sudo apt-get install -y libnginx-mod-http-passenger

Vizitoni shembullin tuaj Vultr duke përdorur emrin e domenit ose IP-në e tij për t'i testuar këto në këtë pikë. Nëse ata janë duke punuar, faqja juaj do të shfaqë faqen e paracaktuar të mirëseardhjes Nginx.

Konfiguro Rails, Aplikacionin dhe Konfiguro Pasagjerin

Instaloni Bundler dhe Rails:

gem install bundler rails --no-ri --no-rdoc

Konventa e Ubuntu/Debian është të konfiguroni aplikacionin tuaj në /var/www. Si parazgjedhje mund të shkruhet vetëm me rrënjë. Që konfigurimi të funksionojë, jepini pronësinë përdoruesit sudo deploy:

sudo chown deploy:deploy /var/www -R

Gjeneroni aplikacionin rails në /var/www/. Nëse tashmë keni një aplikacion që dëshironi të vendosni, git cloneatë këtu dhe më pas ekzekutoni bundle:

cd /var/www
rails new example --database=mysql
Konfiguro Pasagjerin që të tregojë te aplikacioni.
  1. Përgatitni Nginx.

    sudo nano /etc/nginx/nginx.conf
    
  2. Ndrysho përdoruesin në deploy.

    user deploy;
    
  3. httpseksionin e konfigurimit, duhet të ketë një linjë që i thotë Nginx të ngarkojë modulet duke përfshirë pasagjerin. Nëse mungon, mund ta shtoni menjëherë pas Virtual Host Configstitullit, por përpara sites-enabled.

    include /etc/nginx/conf.d/*.conf;
    
  4. Redakto/krijo passenger.confskedarin.

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
    
  5. Thuaji pasagjerit të përdorë konfigurimin tonë të Rbenv. Mund të përmbajë një rresht që tregon versionin Ruby të përfshirë me Passenger, thjesht fshijeni ose komentoni atë.

    passenger_ruby /home/deploy/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
    
  6. Konfiguro hostin virtual për të treguar aplikacionin në /var/www/example/.

    sudo nano /etc/nginx/sites-enabled/example.conf
    
    
    server {
      listen 80;
      server_name example.com www.example.com;
      root /var/www/example/public;
      passenger_enabled on;
    
      # When you are ready to switch to production mode - change this to `production`
      passenger_app_env development; # <-- !important      
    }
    
  7. Rinisni Nginx.

    sudo service nginx restart
    

Në këtë pikë aplikacioni juaj është gati për t'u përdorur në modalitetin e zhvillimit. Për të kaluar në modalitetin e prodhimit, duhet të ktheheni te konfigurimi juaj Nginx dhe të ndryshoni rails_envcilësimin në production.

Para se të kaloni në mënyrë të prodhimit, ju ende do të duhet të setup bazës së të dhënave tuaj të prodhimit example_production, database.ymldhe çelës sekret. Shikoni një mjet si Capistrano ose Mina për të shpejtuar procesin e vendosjes së aplikacionit tuaj. Është një praktikë e mirë të përdorni variablat ENV me një gur të çmuar si dotenv, dhe të mos i vendosni fjalëkalimet tuaja, çelësat sekretë dhe të tilla në depon tuaj të git.

Konfiguro SSL

Ka shumë shërbime atje që ofrojnë certifikata SSL për domenin tuaj, shumë janë me pagesë dhe një çift janë falas. Konfiguro SSL-në pavarësisht se çfarë shërbimi përdorni. Let's Encrypt është shumë e lehtë dhe falas për t'u përdorur. Let's Encrypt është një organizatë jofitimprurëse e mbështetur nga shumë gjigantë të teknologjisë.

Instalimi

Ekzekutoni komandat e mëposhtme dhe ndiqni udhëzimet.

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo certbot --nginx
sudo certbot renew --dry-run

Nëse shkoni te shembulli juaj Vultr tani duke përdorur HTTPS, do të shihni një uebsajt të sigurt.

Rinovimi

Certifikata juaj e sapo lëshuar do të skadojë dhe do të duhet të rinovohet periodikisht. Mënyra më e lehtë për ta bërë këtë është të konfiguroni një punë cron.

sudo crontab -e 
30 2 * * 1 /usr/bin/certbot renew 

Si hap i fundit, por opsional, rinisni VM-në tuaj dhe sigurohuni që të gjitha shërbimet të rifillojnë siç pritej.


Instaloni Plesk në CentOS 7

Instaloni Plesk në CentOS 7

Përdorimi i një sistemi të ndryshëm? Plesk është një panel kontrolli i pronarit të hostit në internet që lejon përdoruesit të administrojnë faqet e tyre të internetit personale dhe/ose të klientëve, bazat e të dhënave

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Hyrje Lets Encrypt është një shërbim i autoritetit certifikues që ofron certifikata falas TLS/SSL. Procesi i instalimit është thjeshtuar nga Certbot,

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

PHP dhe paketat e lidhura me to janë komponentët më të përdorur gjatë vendosjes së një serveri në internet. Në këtë artikull, ne do të mësojmë se si të konfigurojmë PHP 7.0 ose PHP 7.1 o

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Hyrje Lighttpd është një fork i Apache që synon të jetë shumë më pak intensiv me burime. Është i lehtë, prandaj emri i tij, dhe është mjaft i thjeshtë për t'u përdorur. Instaloni

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

1. Virtualmin/Webmin Virtualmin është një panel kontrolli i fuqishëm dhe fleksibël i hostimit në internet për sistemet Linux dhe UNIX i bazuar në bazën e mirënjohur të internetit me burim të hapur.

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Yii është një kornizë PHP që ju lejon të zhvilloni aplikacione më shpejt dhe më lehtë. Instalimi i Yii në Ubuntu është i thjeshtë, siç do të mësoni saktësisht

Përdorimi i ekranit në Ubuntu 14.04

Përdorimi i ekranit në Ubuntu 14.04

Screen është një aplikacion që lejon përdorimin e shumëfishtë të sesioneve të terminalit brenda një dritareje. Kjo ju lejon të simuloni dritare të shumta terminale ku është ma

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Ky tutorial shpjegon se si të konfiguroni një server DNS duke përdorur Bind9 në Debian ose Ubuntu. Gjatë gjithë artikullit, zëvendësoni emrin e domain-it tuaj në përputhje me rrethanat. Në

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Hyrje Logrotate është një mjet Linux që thjeshton administrimin e skedarëve të regjistrit. Zakonisht funksionon një herë në ditë përmes një pune cron dhe menaxhon bazën e regjistrave

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

VULTR kohët e fundit ka bërë ndryshime në fund të tyre dhe gjithçka duhet të funksionojë mirë tani me NetworkManager të aktivizuar. Nëse dëshironi të çaktivizoni

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Icinga2 është një sistem i fuqishëm monitorimi dhe kur përdoret në një model master-klient, ai mund të zëvendësojë nevojën për kontrolle monitorimi të bazuara në NRPE. Master-klien

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Në këtë artikull, ne do të shohim se si të përpiloni dhe instaloni Nginx mainline nga burimet zyrtare të Nginx me modulin PageSpeed, i cili ju lejon t

Si të instaloni Gitea në Debian 9

Si të instaloni Gitea në Debian 9

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga Git. Gitea është shkruar në Golang dhe është

Si të instaloni Gitea në Ubuntu 18.04

Si të instaloni Gitea në Ubuntu 18.04

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga git. Gitea është shkruar në Golang dhe është

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? MODX Revolution është një Sistem i Menaxhimit të Përmbajtjes (CMS) i shpejtë, fleksibël, i shkallëzuar, me burim të hapur, i shkallës së ndërmarrjes, i shkruar në PHP. Ajo i

Instalimi i Docker CE në Ubuntu 16.04

Instalimi i Docker CE në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Docker është një aplikacion që lejon vendosjen e programeve që ekzekutohen si kontejnerë. Ishte shkruar në programin popullor Go

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Golang është një gjuhë programimi e zhvilluar nga Google. Falë shkathtësisë, thjeshtësisë dhe besueshmërisë së tij, Golang është bërë një nga më të populluarit

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Çfarë është Lopa e Pistë (CVE-2016-5195)? Dobësia e Dirty Cow shfrytëzohet përmes mënyrës se si Linux përpunon kodin. Ai lejon që një përdorues i paprivilegjuar të gai

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Të kesh vetëm një përdorues, i cili është root, mund të jetë i rrezikshëm. Pra, le ta rregullojmë atë. Vultr na ofron lirinë për të bërë si të duam me përdoruesit dhe serverët tanë

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Nëse e keni harruar fjalëkalimin tuaj rrënjësor MySQL, mund ta rivendosni atë duke ndjekur hapat në këtë artikull. Procesi është mjaft i thjeshtë dhe funksionon në to

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë