Namestite Plesk na CentOS 7
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
Redmine je brezplačno in odprtokodno spletno orodje za upravljanje projektov. Napisana je v Ruby on Rails in podpira več strežnikov baz podatkov za shranjevanje baze podatkov. To je aplikacija, bogata s funkcijami, ki podpira več projektov, ACL na podlagi vlog in sistem za sledenje težavam. Ima tudi podporo za Ganttov grafikon in koledar, upravljanje datotek, wiki in forum po projektu ter številne druge funkcije. Podpira sisteme za nadzor različic, kot so Git, SVN ali CVS. Prav tako je večjezičen, podpira kar 49 jezikov.
Za to vadnico bomo uporabili 192.168.1.1
kot javni naslov IP in redmine.example.com
kot ime domene, usmerjeno proti primerku Vultr. Poskrbite, da boste zamenjali vse pojavitve vzorčnega imena domene in naslova IP z dejanskim.
Posodobite svoj osnovni sistem z uporabo priročnika Kako posodobiti Ubuntu 16.04 . Ko je vaš sistem posodobljen, nadaljujte z namestitvijo odvisnosti.
Redmine je napisan v Ruby on Rails, zato bomo zahtevali, da se Phusion Passenger integrira s spletnim strežnikom Apache, da bo služil aplikaciji.
Namestite Apache.
sudo apt -y install apache2 apache2-dev libcurl4-openssl-dev
Za izdelavo Ruby in Passengerja bomo potrebovali tudi nekaj razvojnih orodij. Namestite potrebna orodja.
sudo apt -y install imagemagick libmagickwand-dev git build-essential automake libgmp-dev
Redmine podpira več vrst strežnikov baz podatkov, kot so MySQL, PostgreSQL in MSSQL. V tej vadnici bomo uporabili PostgreSQL za gostovanje strežnika baze podatkov Redmine.
PostgreSQL je objektno-relacijski sistem baz podatkov. Privzeto skladišče Ubuntu vsebuje staro različico PostgreSQL, zato dodajte repozitorij PostgreSQL v sistem.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Namestite strežnik baze podatkov PostgreSQL.
sudo apt -y install postgresql
Zaženite strežnik PostgreSQL in omogočite, da se samodejno zažene ob zagonu.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Spremenite geslo za privzetega uporabnika PostgreSQL.
sudo passwd postgres
Prijavite se kot uporabnik PostgreSQL.
sudo su - postgres
Ustvarite novega uporabnika PostgreSQL za Redmine.
createuser redmine
Namesto . Lahko uporabite katero koli uporabniško ime redmine
. PostgreSQL ponuja psql
lupino za izvajanje poizvedb v bazi podatkov. Preklopite na lupino PostgreSQL.
psql
Nastavite geslo za novoustvarjenega uporabnika za bazo podatkov Redmine.
ALTER USER redmine WITH ENCRYPTED password 'DBPassword';
Zamenjajte DBPassword
z varnim geslom. Ustvarite novo bazo podatkov za namestitev Redmine.
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
Izstopite iz psql
lupine.
\q
Preklopite na sudo
uporabnika.
exit
Namestite še nekaj potrebnih odvisnosti PostgreSQL.
sudo apt -y install libpqxx-dev protobuf-compiler
Z uporabo RVM bomo namestili najnovejšo različico Rubyja. Uporablja se za namestitev in upravljanje več različic Rubyja.
Dodajte repozitorij RVM.
sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update
Namestite RVM.
sudo apt -y install rvm
Ker moramo Ruby namestiti v celotnem sistemu, bomo začasno preklopili na root uporabnika.
sudo -i
Posodobite spremenljivke okolja.
echo "source /etc/profile.d/rvm.sh" | tee -a /etc/profile
source /etc/profile.d/rvm.sh
Namestite najnovejšo različico Rubyja.
rvm install 2.5.1
Opomba: Če uporabljate drugo različico Rubyja, se prepričajte, da ste ustrezno posodobili pot Ruby.
Uporabite nameščeno različico Rubyja.
rvm use 2.5.1 --default
Lahko preverite njegovo različico.
ruby -v
Videli boste podoben izhod.
root@vultr:~# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Install bundler
, ki je upravitelj odvisnosti za aplikacijo Ruby.
gem install bundler
Ruby je zdaj nameščen. Preden namestimo Redmine, bomo morali namestiti Phusion Passenger.
Zaženite naslednji ukaz, da namestite Passenger.
gem install passenger
Namestite modul Apache za Passenger.
passenger-install-apache2-module
Skript namestitvenega programa vam bo postavil nekaj vprašanj. Najprej vam bo zagotovil informacije o postopku namestitve. Nato vas bo pozval, da izberete jezik, ki ga boste uporabljali. Ker je naša aplikacija napisana v Ruby on Rails, v meniju izberite Ruby in pritisnite ENTERza nadaljevanje.
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬢ Python
⬡ Node.js
⬡ Meteor
Namestitveni program bo zdaj preveril zahteve. Namestitveni program ne bo naletel na manjkajoče odvisnosti in bo samodejno nadaljeval s prevajanjem in namestitvijo modula.
Ko je modul nameščen, vas bo pozval, da dodate modul v konfiguracijsko datoteko Apache.
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
To bomo za zdaj preskočili in dokončali pozneje v vadnici. Pritisnite, ENTERda preskočite ta korak.
Nazadnje bo skript namestitvenega programa preveril namestitev in videli boste opozorilo, da modul Passenger ni naveden v konfiguraciji Apache.
Validating installation...
* Checking whether this Passenger install is in PATH... ✓
* Checking whether there are no other Passenger installations... ✓
* Checking whether Apache is installed... ✓
* Checking whether the Passenger module is correctly configured in Apache... (!)
You did not specify 'LoadModule passenger_module' in any of your Apache
configuration files. Please paste the configuration snippet that this
installer printed earlier, into one of your Apache configuration files, such
as /etc/apache2/apache2.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
Zdaj, ko smo namestili modul Passenger za Apache, nadaljujte s prenosom in namestitvijo Redmine. Ponovno preklopite na sudo
uporabnika, saj nam ni treba več izvajati ukazov z uporabo root
uporabnika.
exit
Priporočljivo je, da za zagon aplikacije uporabite neprivilegiranega uporabnika, da ostane izolirana od preostalega sistema. Ustvarite novega uporabnika za Redmine in preklopite na novo ustvarjenega uporabnika.
sudo adduser --disabled-password --gecos "Redmine User" redmine
sudo su - redmine
Prenesite najnovejšo različico Redmine z uradne strani za prenos Redmine .
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
Izvlecite arhiv in preimenujte imenik zaradi udobja.
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
Kopirajte vzorčne konfiguracijske datoteke na njegovo proizvodno lokacijo.
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Odprite konfiguracijsko datoteko baze podatkov, ki smo jo pravkar kopirali, da vnesete podrobnosti baze podatkov.
nano config/database.yml
Privzeto je datoteka baze podatkov konfigurirana za MySQL. Poiščite konfiguracije za proizvodnjo in razvoj ter preizkusite, katera uporablja adapter MySQL. Komentirajte vse te vrstice.
#production:
# adapter: mysql2
# database: redmine
# host: localhost
# username: root
# password: ""
# encoding: utf8
#development:
# adapter: mysql2
# database: redmine_development
# host: localhost
# username: root
# password: ""
# encoding: utf8
#test:
# adapter: mysql2
# database: redmine_test
# host: localhost
# username: root
# password: ""
# encoding: utf8
Nadalje poiščite vrstice, ki so komentirane in imajo production
konfiguracijo za postgresql
adapter. Odkomentirajte te vrstice in posodobite ime baze podatkov in uporabniške poverilnice. Prepričajte se, da uporabljate pravilno zamik, ki je dva presledka.
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "DBPassword"
Konfigurirajte aplikacijo za uporabo konfiguracije PostgreSQL.
bundle config build.pg --with-pg-config=/usr/bin/pg_config
Namestite odvisnosti, ki jih zahteva aplikacija.
bundle install --path vendor/bundle --without development test
Na koncu namestitve boste videli naslednje sporočilo.
Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`
Naslednji ukaz ustvari tajne žetone, ki se uporabljajo za kodiranje podatkov seje.
bundle exec rake generate_secret_token
Napišite bazo podatkov PostgreSQL.
RAILS_ENV=production bundle exec rake db:migrate
Zaženite naslednji ukaz, ki zapiše privzete podatke v bazo podatkov PostgreSQL.
RAILS_ENV=production bundle exec rake redmine:load_default_data
Zgornji ukaz vas bo pozval, da izberete privzeti jezik, ki bo uporabljen z aplikacijo. Privzeta izbira je angleščina; izberite po svojih željah.
[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.
Namestitev aplikacije Redmine je zdaj končana. Spremenite lastništvo in dovoljenja imenikov in datotek.
mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
Konfigurirali smo vse, kar potrebujemo od neprivilegiranega uporabnika. Preklopite nazaj na sudo
uporabnika tako, da zaženete su - <username>
.
Dodajte modul Passenger za Apache v konfiguracijsko datoteko Apache. To bo samodejno naložilo modul za potnike.
echo "LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/apache2/apache2.conf
Opomba: Pot do modula Passenger se lahko spremeni, ko pride do nove izdaje Passengerja. Če želite poiskati pot do modula, uporabite sudo find / -name mod_passenger.so
ukaz.
Ustvarite novo datoteko navideznega gostitelja za vašo aplikacijo Redmine.
sudo nano /etc/apache2/sites-available/redmine.conf
Napolnite datoteko z naslednjo vsebino.
<VirtualHost *:80>
ServerName redmine.example.com
DocumentRoot /home/redmine/redmine/public
PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
PassengerUser redmine
<Directory /home/redmine/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Ne pozabite zamenjati redmine.example.com
s svojim dejanskim imenom domene. Prav tako se prepričajte, da sta pot do PassengerRoot
in PassengerDefaultRuby
pravilna. Pot do binarnih datotek se lahko spremeni, ko bo na voljo nova izdaja Ruby ali Passenger. Če želite poiskati te poti, zaženite naslednji ukaz.
passenger-config about ruby-command
Dobili boste naslednji rezultat.
user@vultr:~$ passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
Command: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
To use in Apache: PassengerRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
To use in Nginx : passenger_ruby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
To use with Standalone: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/bin/passenger start
## Notes for RVM users
Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config about ruby-command'.
Ko je datoteka virtualnega gostitelja ustvarjena. Aktivirajte konfiguracijo.
sudo a2ensite redmine
Znova zaženite spletni strežnik Apache.
sudo systemctl restart apache2
Zdaj lahko dostopate do svojega vmesnika Redmine na http://redmine.example.com
. Prijavite se z uporabniškim imenom admin
in geslom admin
. Ob vaši prvi prijavi vas bo Redmine pozval, da posodobite geslo.
Ker je naša namestitev Redmine na javnem strežniku, je priporočljivo uporabiti SSL za zaščito izmenjave podatkov s strežnika.
Dodajte repozitorij Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Namestite Certbot, ki je odjemalska aplikacija za Let's Encrypt CA.
sudo apt -y install certbot
Opomba: Če želite pridobiti potrdila od Let's Encrypt CA, mora biti domena, za katero naj bi bila generirana potrdila, usmerjena proti strežniku. Če ne, naredite potrebne spremembe v zapisih DNS domene in počakajte, da se DNS razširi, preden znova pošljete zahtevo za potrdilo. Certbot preveri avtoriteto domene, preden zagotovi potrdila.
Ustvarite SSL potrdila.
sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com
Ustvarjena potrdila bodo verjetno shranjena v /etc/letsencrypt/live/redmine.example.com/
. Potrdilo SSL bo shranjeno kot cert.pem
in zasebni ključ bo shranjen kot privkey.pem
.
Potrdila Let's Encrypt potečejo v 90 dneh, zato je priporočljivo, da nastavite samodejno obnavljanje potrdil s pomočjo opravil Cron.
Odprite datoteko opravila Cron za root
uporabnika.
sudo crontab -e
Dodajte naslednjo vrstico na konec datoteke.
30 5 * * * /usr/bin/certbot renew --quiet
Zgornje opravilo Cron se bo izvajalo vsak dan ob 5.30. Če potrdilo poteče, se samodejno podaljša.
Omogočite modul SSL za Apache.
sudo a2enmod ssl
Uredite datoteko navideznega gostitelja, ki smo jo prej ustvarili za Redmine.
sudo nano /etc/apache2/sites-available/redmine.conf
Spremenite datoteko navideznega gostitelja, da bo podobna naslednji.
<VirtualHost *:80>
ServerName redmine.example.com
Redirect permanent / https://redmine.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName redmine.example.com
DocumentRoot "/home/redmine/redmine/public"
<Directory "/home/redmine/redmine/public">
Options None
Require all granted
</Directory>
PassengerAppEnv production
PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
PassengerUser redmine
PassengerHighPerformance on
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/redmine.example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
<IfModule headers_module>
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
</IfModule>
</VirtualHost>
Shranite datoteko in zapustite urejevalnik.
Znova zaženite Apache, da bodo spremembe začele veljati.
sudo systemctl restart apache2
Zdaj lahko dostopate do Redmine prek HTTPS
na https://redmine.example.com
.
Čestitamo, uspešno ste namestili Redmine na vaš primerek Ubuntu 16.04. Začnite razvijati svoj projekt tako, da ustvarite ali uvozite svoj projekt.
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
Uvod Lets Encrypt je storitev overitelja potrdil, ki ponuja brezplačna potrdila TLS/SSL. Certbot poenostavlja postopek namestitve,
Uporaba drugega sistema? Jekyll je odlična alternativa WordPressu za bloganje ali deljenje vsebine. Ne zahteva nobenih baz podatkov in je zelo enostaven i
Uporaba drugega sistema? Če kupite strežnik Debian, morate vedno imeti najnovejše varnostne popravke in posodobitve, ne glede na to, ali spite ali ne
PHP in sorodni paketi so najpogosteje uporabljene komponente pri uvajanju spletnega strežnika. V tem članku se bomo naučili, kako nastaviti PHP 7.0 ali PHP 7.1 o
Squid je priljubljen brezplačen program za Linux, ki vam omogoča ustvarjanje spletnega proxyja za posredovanje. V tem priročniku boste videli, kako namestiti Squid na CentOS, da vas obrne
Uvod Lighttpd je razdelek Apache, katerega namen je biti veliko manj intenziven vir. Je lahek, od tod tudi njegovo ime, in je precej preprost za uporabo. Namestite
1. Virtualmin/Webmin Virtualmin je zmogljiva in prilagodljiva nadzorna plošča za spletno gostovanje za sisteme Linux in UNIX, ki temelji na dobro znani odprtokodni spletni bazi
Yii je okvir PHP, ki vam omogoča hitrejši in preprostejši razvoj aplikacij. Namestitev Yii na Ubuntu je enostavna, saj se boste naučili natančno
Screen je aplikacija, ki omogoča večkratno uporabo terminalskih sej v enem oknu. To vam omogoča simulacijo več terminalskih oken, kjer je ma
Ta vadnica pojasnjuje, kako nastaviti strežnik DNS z uporabo Bind9 v Debianu ali Ubuntuju. V celotnem članku ustrezno nadomestite your-domain-name.com. Ob th
Uvod Logrotate je pripomoček za Linux, ki poenostavlja upravljanje dnevniških datotek. Običajno se izvaja enkrat na dan prek opravila cron in upravlja bazo dnevnikov
VULTR je pred kratkim naredil spremembe na svoji strani in zdaj bi moralo vse delovati v redu iz škatle z omogočenim NetworkManagerjem. Če želite onemogočiti
Icinga2 je zmogljiv sistem za spremljanje in če se uporablja v modelu glavni-odjemalec, lahko nadomesti potrebo po nadzornih pregledih, ki temeljijo na NRPE. Glavni naročnik
Uporaba drugega sistema? Red5 je odprtokodni medijski strežnik, implementiran v Javi, ki vam omogoča zagon večuporabniških aplikacij Flash, kot je prenos v živo
V tem članku bomo videli, kako prevesti in namestiti Nginx mainline iz uradnih virov Nginxa z modulom PageSpeed, ki vam omogoča
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Vanilla forum je odprtokodna forumska aplikacija, napisana v PHP. Je popolnoma prilagodljiv, enostaven za uporabo in podpira zunanjost
Uporaba drugega sistema? Uvod Kanboard je brezplačen in odprtokodni program za vodenje projektov, ki je zasnovan za olajšanje in vizualizacijo
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več