Install Plesk on CentOS 7
Using a Different System? Plesk is a proprietary web host control panel that allows users to administer their personal and/or clients websites, databases
Redmine je bezplatný a otvorený zdrojový webový nástroj na správu projektov. Je napísaný v Ruby on Rails a podporuje viacero databázových serverov na ukladanie databázy. Ide o funkčne bohatú aplikáciu podporujúcu viacero projektov, rolové ACL a systém sledovania problémov. Má tiež podporu Ganttovho diagramu a kalendára, správu súborov, wiki projektu a fórum, ako aj mnoho ďalších funkcií. Podporuje systémy na správu verzií ako Git, SVN alebo CVS. Je tiež viacjazyčný a podporuje až 49 jazykov.
Táto príručka bola napísaná pre Redmine 3.4.4, ale môže sa vzťahovať aj na novšie verzie.
V tomto návode budeme používať 192.168.1.1
ako verejnú IP adresu a redmine.example.com
ako názov domény smerujúci k inštancii Vultr. Uistite sa, že ste nahradili všetky výskyty vzorového názvu domény a adresy IP skutočnými.
Aktualizujte svoj základný systém pomocou príručky Ako aktualizovať CentOS 7 . Po aktualizácii systému pokračujte v inštalácii závislostí.
Redmine je napísaný v jazyku Ruby on Rails, takže budeme vyžadovať, aby sa Phusion Passenger integroval s webovým serverom Apache, aby mohol slúžiť aplikácii. Nainštalujte Apache.
sudo yum -y install httpd httpd-devel libcurl-devel
Na zostavenie aplikácie Redmine budeme potrebovať aj nejaké vývojové nástroje. Nainštalujte požadované nástroje.
sudo yum -y install ImageMagick ImageMagick-devel git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel
Redmine podporuje viacero typov databázových serverov, ako sú MySQL, PostgreSQL a MSSQL. V tomto návode použijeme PostgreSQL na hosťovanie databázového servera Redmine.
PostgreSQL je objektovo-relačný databázový systém. Predvolené yum
úložisko obsahuje starú verziu PostgreSQL, preto pridajte úložisko PostgreSQL do systému.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Nainštalujte databázový server PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Inicializujte databázu.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Spustite server PostgreSQL a povoľte jeho automatické spustenie pri štarte.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Zmeňte heslo pre predvoleného používateľa PostgreSQL.
sudo passwd postgres
Prihláste sa ako používateľ PostgreSQL.
sudo su - postgres
Vytvorte nového používateľa PostgreSQL pre Redmine.
createuser redmine
Namiesto mena môžete použiť ľubovoľné používateľské meno redmine
. PostgreSQL poskytuje psql
shell na spúšťanie dotazov v databáze. Prepnite sa do prostredia PostgreSQL.
psql
Nastavte heslo pre novovytvoreného používateľa pre databázu Redmine.
ALTER USER redmine WITH ENCRYPTED password 'DBPassword';
Nahraďte DBPassword
ho bezpečným heslom. Vytvorte novú databázu pre inštaláciu Redmine.
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
Vyjdite z psql
ulity.
\q
Prepnúť na sudo
používateľa.
exit
Upravte pg_hba.conf
súbor, aby ste povolili autentifikáciu založenú na MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Nájdite nasledujúce riadky a zmeňte hodnoty peer
a ident
v METHOD
stĺpci na trust
a md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Po aktualizácii by konfigurácia mala vyzerať takto.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Reštartujte PostgreSQL, aby sa zmeny prejavili.
sudo systemctl restart postgresql-10
Nainštalujte niekoľko ďalších požadovaných závislostí PostgreSQL.
sudo yum -y install libpqxx-devel protobuf-devel
Na spustenie aplikácie sa odporúča použiť neprivilegovaného používateľa, aby bola izolovaná od zvyšku systému. Vytvorte nového používateľa pre Redmine a prepnite sa na novo vytvoreného používateľa.
sudo adduser redmine
sudo su - redmine
Najnovšiu verziu Ruby nainštalujeme pomocou správcu verzií Ruby alebo RVM. Používa sa na inštaláciu a správu viacerých verzií Ruby.
Pridajte GPG kľúč RVM na váš server.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Nainštalujte RVM.
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
Získajte zoznam dostupných verzií Ruby.
rvm list known
Uvidíte dlhý zoznam verzií Ruby.
[redmine@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
...
Nainštalujte najnovšiu verziu Ruby zo zoznamu.
rvm install 2.4
Použite nainštalovanú verziu Ruby.
rvm use 2.4
Jeho verziu si môžete overiť.
ruby -v
Uvidíte podobný výstup.
[redmine@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
Nainštalujte balík, ktorý je správcom závislostí pre aplikáciu Ruby.
gem install bundler
Ruby je teraz nainštalovaný. Pred inštaláciou Redmine budeme musieť nainštalovať Phusion Passenger.
Spustite nasledujúci príkaz a nainštalujte Passenger.
gem install passenger
Poskytnite povolenie na spustenie domovskému adresáru redmine
používateľa. Cestujúci potrebuje spustiť binárne súbory, aby mohol slúžiť aplikácii.
chmod o+x "/home/redmine"
Nainštalujte modul Apache pre cestujúcich.
passenger-install-apache2-module
The installer script will ask you some questions. First, it will provide you information about the installation process. Then it will ask you to select the language which you will be using. Since our application is written in Ruby on Rails, select Ruby from the menu and press "Enter
" to proceed further.
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬡ Python
⬡ Node.js
⬡ Meteor
The installer will now check for requirements. The installer will not encounter any missing dependencies and will automatically proceed to compile and install the module.
Once the module is installed, it will prompt you to add the module into the Apache configuration file.
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerDefaultRuby /home/redmine/.rvm/gems/ruby-2.4.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.
We will skip this for now and will complete it later in the tutorial as the user with which we are logged in now does not have sudo
permissions. Press "Enter
" to skip this step.
Finally, the installer script will validate the installation and you will see a warning saying the Passenger module is not specified in Apache configuration.
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/httpd/conf/httpd.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
Now that we have installed the Passenger module for Apache, proceed to download and install Redmine.
Download the latest version of Redmine from the official Redmine download page.
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
Extract the archive and rename the directory for sake of convenience.
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
Copy the example configuration files to its production location.
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Open the database configuration file we just copied to enter the database details.
nano config/database.yml
By default, the database file is configured for MySQL. Find the configurations for production and development, and test which uses the MySQL adapter. Comment out all of these lines.
#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
Furthur, find the lines which are commented, having production
configuration for the postgresql
adapter. Uncomment those lines and update the database name and user credentials. Make sure to use the correct indentation, which is two spaces.
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "DBPassword"
Configure the application to use the PostgreSQL configuration.
bundle config build.pg --with-pg-config=/usr/pgsql-10/bin/pg_config
Install the application dependencies required by the application.
bundle install --without development test
You will see the following message at the end of the installation.
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.
Use `bundle info [gemname]` to see where a bundled gem is installed.
The following command generates secret tokens that are used to encode the session data.
bundle exec rake generate_secret_token
Write the PostgreSQL database.
RAILS_ENV=production bundle exec rake db:migrate
Run the following command, which writes the default data into PostgreSQL database.
RAILS_ENV=production bundle exec rake redmine:load_default_data
The above command will ask you to choose the default language to be used with the application. The default choice is English; choose according to your preference.
[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.
Installation of the Redmine application is now finished. Change ownership and permissions of the directories and files.
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
We have configured everything we need from the non-privileged user. Switch back to the sudo
user by running su - <username>
.
Add the Passenger module for Apache into the Apache configuration file. This will automatically load the Passenger module.
echo "LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf
Create a new virtual host file for your Redmine application.
sudo nano /etc/httpd/conf.d/redmine.conf
Populate the file with the following content.
<VirtualHost *:80>
ServerName redmine.example.com
DocumentRoot /home/redmine/redmine/public
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
PassengerUser redmine
<Directory /home/redmine/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Make sure to replace redmine.example.com
with your actual domain name. Also, make sure that the path to the PassengerRoot
and PassengerRuby
are correct. The path to the binaries may change when there is a new release of Ruby or Passenger. To find these paths, run the following command.
sudo su redmine -c "passenger-config about ruby-command"
You will get following output.
[user@vultr ~]$ sudo su redmine -c "passenger-config about ruby-command"
passenger-config was invoked through the following Ruby interpreter:
Command: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
Version: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
To use in Apache: PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use in Nginx : passenger_ruby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use with Standalone: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/bin/passenger start
Once the Virtual host file is created, restart the Apache web server.
sudo systemctl restart httpd
Modify the firewall configuration to allow port 80
through the firewall.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
You can now access your Redmine interface on http://redmine.example.com
. Login with username admin
and password admin
. On your first login, Redmine will prompt you to update the password.
Since our Redmine installation is on a public facing server, it is recommended to use SSL to secure the exchange of the data from the server.
Install Certbot, which is the client application for Let's Encrypt CA.
sudo yum -y install epel-release
sudo yum -y install certbot mod_ssl
Before you can request for the certificates, you will need to allow port 80
and 443
or standard HTTP
and HTTPS
services through the firewall. Since we have already allowed port 80
earlier, let's allow port 443
.
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Note: To obtain certificates from Let's Encrypt CA, the domain for which the certificates are to be generated must be pointed towards the server. If not, make the necessary changes to the DNS records of the domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.
Generate the SSL certificates.
sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com
Vygenerované certifikáty budú pravdepodobne uložené v /etc/letsencrypt/live/redmine.example.com/
. Certifikát SSL bude uložený ako cert.pem
a súkromný kľúč bude uložený ako privkey.pem
.
Platnosť certifikátov Let's Encrypt vyprší o 90 dní, preto sa odporúča nastaviť automatické obnovovanie certifikátov pomocou úloh Cron.
Otvorte súbor úlohy Cron pre root
používateľa.
sudo crontab -e
Na koniec súboru pridajte nasledujúci riadok.
30 5 * * * /usr/bin/certbot renew --quiet
Vyššie uvedená úloha Cron sa spustí každý deň o 5:30. Ak platnosť certifikátu vyprší, automaticky sa obnoví.
Upravte súbor virtuálneho hostiteľa, ktorý sme predtým vytvorili pre Redmine.
sudo nano /etc/httpd/conf.d/redmine.conf
Upravte súbor virtuálneho hostiteľa tak, aby vyzeral takto.
<VirtualHost *:80>
Redirect permanent / https://www.example.com/
ServerName 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 /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.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>
Uložte súbor a ukončite editor.
Reštartujte Apache, aby sa zmeny prejavili.
sudo systemctl restart httpd
Teraz máte prístup systému Redmine počas HTTPS
dňa https://redmine.example.com
.
Gratulujeme, úspešne ste nainštalovali Redmine do svojej inštancie CentOS 7. Začnite rozvíjať svoj projekt vytvorením alebo importovaním projektu.
Using a Different System? Plesk is a proprietary web host control panel that allows users to administer their personal and/or clients websites, databases
Squid je populárny bezplatný linuxový program, ktorý vám umožňuje vytvoriť webový proxy server na presmerovanie. V tejto príručke uvidíte, ako nainštalovať Squid na CentOS, aby vás zmenil
Úvod Lighttpd je fork Apache, ktorého cieľom je byť oveľa menej náročný na zdroje. Je ľahký, odtiaľ jeho názov, a jeho použitie je celkom jednoduché. Installin
VULTR nedávno vykonal zmeny na ich konci a všetko by teraz malo fungovať dobre po vybalení so zapnutým NetworkManagerom. Ak chcete deaktivovať
Icinga2 je výkonný monitorovací systém a pri použití v modeli master-client môže nahradiť potrebu monitorovacích kontrol založených na NRPE. Hlavný klient
Používate iný systém? Apache Cassandra je bezplatný a otvorený systém správy databáz NoSQL, ktorý je navrhnutý tak, aby poskytoval škálovateľnosť, vysokú
Používate iný systém? Microweber je open source drag and drop CMS a online obchod. Zdrojový kód Microweber je umiestnený na GitHub. Tento návod vám to ukáže
Používate iný systém? Mattermost je open source, samostatne hosťovaná alternatíva k službe posielania správ Slack SAAS. Inými slovami, s Mattermostom môžete cca
Čo budete potrebovať Vultr VPS s aspoň 1 GB RAM. Prístup SSH (s oprávneniami root/administrátor). Krok 1: Inštalácia BungeeCord Najprv veci
Ovládací panel Plesk obsahuje veľmi peknú integráciu pre Lets Encrypt. Lets Encrypt je jedným z mála poskytovateľov SSL, ktorí rozdávajú kompletné certifikáty
Lets Encrypt je certifikačná autorita, ktorá sa venuje bezplatnému poskytovaniu certifikátov SSL. cPanel vytvoril úhľadnú integráciu, takže vy a váš klient
Používate iný systém? Concrete5 je open source CMS, ktorý ponúka mnoho charakteristických a užitočných funkcií, ktoré pomáhajú redaktorom jednoducho vytvárať obsah
Používate iný systém? Review Board je bezplatný a otvorený zdrojový nástroj na kontrolu zdrojového kódu, dokumentácie, obrázkov a mnohých ďalších. Je to webový softvér
V tejto príručke sa dozviete, ako nastaviť HTTP autentifikáciu pre webový server Nginx spustený na CentOS 7. Požiadavky Na začiatok budete potrebovať
YOURLS (Your Own URL Shortener) je open source aplikácia na skrátenie adresy URL a analýzu údajov. V tomto článku sa budeme zaoberať procesom inštalácie
Používate iný systém? Úvod ArangoDB je open source databáza NoSQL s flexibilným dátovým modelom pre dokumenty, grafy a hodnoty kľúča. to je
Úvod Adresár /etc/ hrá rozhodujúcu úlohu v spôsobe fungovania systému Linux. Dôvodom je skutočnosť, že takmer každá konfigurácia systému
Mnoho systémových administrátorov spravuje veľké množstvo serverov. Keď je potrebné pristupovať k súborom cez rôzne servery, prihlásenie do každého z nich samostatne ca
Tento tutoriál sa bude zaoberať procesom inštalácie herného servera Half Life 2 na systém CentOS 6. Krok 1: Inštalácia predpokladov Aby ste mohli nastaviť ou
Laravel GitScrum alebo GitScrum je nástroj na zvýšenie produktivity s otvoreným zdrojom určený na pomoc vývojovým tímom implementovať metodiku Scrum podobným spôsobom.
Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.
Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.
Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.
Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.
Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…
Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.
Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.
Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.
V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.
Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac