Πώς να μεταγλωττίσετε το Nginx από την πηγή στο Debian 10

Εισαγωγή

Το Nginx είναι ένα λογισμικό διακομιστή ιστού ανοιχτού κώδικα που έχει σχεδιαστεί με γνώμονα την υψηλή ταυτόχρονη χρήση, που μπορεί να χρησιμοποιηθεί ως διακομιστής HTTP/HTTPS, διακομιστής ανάστροφου διακομιστή μεσολάβησης, διακομιστής μεσολάβησης αλληλογραφίας, εξισορρόπησης φόρτου λογισμικού, τερματιστής TLS, διακομιστής προσωρινής αποθήκευσης και πολλά άλλα!

Είναι ένα πολύ αρθρωτό κομμάτι λογισμικού. Ακόμη και μερικά από τα φαινομενικά "ενσωματωμένα" μέρη του λογισμικού, όπως το GZIP ή το SSL, δημιουργούνται στην πραγματικότητα ως λειτουργικές μονάδες που μπορούν να ενεργοποιηθούν και να απενεργοποιηθούν κατά τη διάρκεια του χρόνου κατασκευής.

Διαθέτει βασικές (εγγενείς) λειτουργικές μονάδες και λειτουργικές μονάδες τρίτων (εξωτερικές) που δημιουργήθηκαν από την κοινότητα. Αυτήν τη στιγμή, υπάρχουν πάνω από εκατό λειτουργικές μονάδες τρίτων που μπορούμε να χρησιμοποιήσουμε.

Γραπτό σε C, είναι ένα γρήγορο και ελαφρύ λογισμικό.

Η εγκατάσταση του Nginx από τον πηγαίο κώδικα είναι σχετικά εύκολη - κατεβάστε την πιο πρόσφατη έκδοση του πηγαίου κώδικα Nginx, διαμορφώστε, δημιουργήστε και εγκαταστήστε την.

Θα χρειαστεί να επιλέξετε εάν θα κάνετε λήψη της κύριας ή μιας σταθερής έκδοσης, αλλά η κατασκευή τους είναι η ίδια.

Σε αυτόν τον οδηγό, θα συντάξουμε μια κύρια έκδοση του Nginx στο Debian 10 (buster). Θα χρησιμοποιήσουμε όλες τις διαθέσιμες μονάδες στην έκδοση ανοιχτού κώδικα του Nginx.

Γιατί να μεταγλωττίσετε και να εγκαταστήσετε το Nginx από την πηγή

Πιθανότατα ρωτάτε γιατί να μεταγλωττίσει κάποιος το Nginx από μια πηγή όταν μπορείτε να χρησιμοποιήσετε έτοιμα πακέτα. Ακολουθούν ορισμένοι λόγοι για τους οποίους μπορεί να θέλετε να μεταγλωττίσετε μόνοι σας συγκεκριμένο λογισμικό:

  • Για να ελέγξετε τις επιλογές διαμόρφωσης.
  • Για να εγκαταστήσετε το λογισμικό όπου θέλετε. Μπορείτε ακόμη να εγκαταστήσετε πολλές διαφορετικές εκδόσεις του ίδιου λογισμικού.
  • Για να ελέγξετε την έκδοση που εγκαθιστάτε. Οι διανομές δεν παραμένουν πάντα ενημερωμένες με τις πιο πρόσφατες εκδόσεις όλων των πακέτων, ιδιαίτερα με τα πρόσθετα σε πακέτα λογισμικού.
  • Για να κατανοήσετε καλύτερα πώς λειτουργεί το λογισμικό.

Σταθερή έναντι κύριας έκδοσης

Το Nginx Open Source είναι διαθέσιμο σε δύο εκδόσεις:

  • Mainline – Περιλαμβάνει τις πιο πρόσφατες δυνατότητες και διορθώσεις σφαλμάτων και είναι πάντα ενημερωμένο. Είναι αξιόπιστο, αλλά μπορεί να περιλαμβάνει κάποιες πειραματικές ενότητες και μπορεί επίσης να έχει κάποιο αριθμό νέων σφαλμάτων.
  • Σταθερό – Δεν περιλαμβάνει όλες τις πιο πρόσφατες δυνατότητες, αλλά έχει κρίσιμες διορθώσεις σφαλμάτων που πάντα αναφέρονται στην κύρια έκδοση.

Βασικές μονάδες έναντι λειτουργικών μονάδων τρίτων

Το Nginx έχει δύο τύπους λειτουργικών μονάδων που μπορείτε να χρησιμοποιήσετε: βασικές μονάδες και λειτουργικές μονάδες τρίτων.

Οι προγραμματιστές του πυρήνα Nginx δημιουργούν βασικές μονάδες και αποτελούν μέρος του ίδιου του λογισμικού.

Η κοινότητα δημιουργεί λειτουργικές μονάδες τρίτων και μπορείτε να τις χρησιμοποιήσετε για να επεκτείνετε τη λειτουργικότητα. Υπάρχουν πολλές χρήσιμες ενότητες τρίτων κατασκευαστών.

Στατικές μονάδες έναντι δυναμικών μονάδων

Στατικές μονάδες υπάρχουν στο Nginx από την πρώτη κιόλας έκδοση. Οι δυναμικές μονάδες παρουσιάστηκαν με το Nginx 1.9.11+ τον Φεβρουάριο του 2016.

Με τις στατικές ενότητες, ένα σύνολο μονάδων που αποτελούν ένα δυαδικό Nginx καθορίζεται κατά το χρόνο μεταγλώττισης από το ./configureσενάριο. Χρήση --with-foo_bar_moduleή --add-module=PATHσύνταξη στατικών μονάδων .

Για να μεταγλωττίσουμε μια βασική (τυπική) ενότητα ως δυναμική, προσθέτουμε =dynamic, για παράδειγμα --with-http_image_filter_module=dynamic.

Για να μεταγλωττίσουμε μια λειτουργική μονάδα τρίτου κατασκευαστή ως δυναμική, χρησιμοποιούμε --add-dynamic-module=/path/to/moduleσύνταξη και στη συνέχεια τη φορτώνουμε χρησιμοποιώντας την load_moduleοδηγία στο καθολικό πλαίσιο του nginx.confαρχείου.

Απαιτήσεις για την κατασκευή Nginx από την πηγή

Σε σύγκριση με κάποιο άλλο λογισμικό UNIX/Linux, το Nginx είναι αρκετά ελαφρύ και δεν έχει πολλές εξαρτήσεις βιβλιοθήκης. Η προεπιλεγμένη διαμόρφωση του build εξαρτάται από μόνο 3 βιβλιοθήκες που θα εγκατασταθούν: OpenSSL/LibreSSL/BoringSSL, Zlib και PCRE.

ΣΗΜΕΙΩΣΗ : Το Nginx μπορεί επίσης να μεταγλωττιστεί σε βιβλιοθήκες κρυπτογράφησης LibreSSL και BoringSSL αντί για OpenSSL.

Πριν ξεκινήσεις

Ελέγξτε την έκδοση του Debian.

lsb_release -ds # Debian GNU/Linux 10 (buster)

Δημιουργήστε έναν κανονικό χρήστη με sudoπρόσβαση.

adduser johndoe --gecos "John Doe" usermod -aG sudo johndoe

ΣΗΜΕΙΩΣΗ : Αντικαταστήστε το johndoeμε το όνομα χρήστη σας .

Μετάβαση σε νέο χρήστη.

su - johndoe

Ρυθμίστε τη ζώνη ώρας.

sudo dpkg-reconfigure tzdata

Ενημερώστε το λογισμικό του λειτουργικού σας συστήματος.

sudo apt update && sudo apt upgrade -y

Εγκαταστήστε τα απαραίτητα πακέτα.

sudo apt install -y software-properties-common ufw

Δημιουργήστε το Nginx από την πηγή

Το Nginx είναι ένα πρόγραμμα γραμμένο σε C, επομένως θα χρειαστεί πρώτα να εγκαταστήσετε ένα εργαλείο μεταγλώττισης. Εγκατάσταση build-essential, gitκαι tree.

sudo apt install -y build-essential git tree

Κατεβάστε την πιο πρόσφατη κύρια έκδοση του πηγαίου κώδικα Nginx και αποσυσκευάστε το αρχείο πηγαίου κώδικα. Ο πηγαίος κώδικας Nginx διανέμεται ως συμπιεσμένο αρχείο, όπως τα περισσότερα λογισμικά Unix και Linux.

wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz

Κατεβάστε τον υποχρεωτικό πηγαίο κώδικα των εξαρτήσεων Nginx και εξαγάγετε τον.

# PCRE version 8.43 wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.tar.gz # zlib version 1.2.11 wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz # OpenSSL version 1.1.1c wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz

Εγκαταστήστε προαιρετικές εξαρτήσεις Nginx.

sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev

Εκκαθάριση όλων των .tar.gzαρχείων. Δεν τους χρειαζόμαστε πια.

rm -rf *.tar.gz

Εισαγάγετε τον κατάλογο πηγής Nginx.

cd ~/nginx-1.17.2

Για καλή μέτρηση, παραθέστε καταλόγους και αρχεία που συνθέτουν τον πηγαίο κώδικα Nginx με tree.

tree -L 2 .

Αντιγράψτε τη σελίδα του εγχειριδίου στο /usr/share/man/man8/.

sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8 sudo gzip /usr/share/man/man8/nginx.8 ls /usr/share/man/man8/ | grep nginx.8.gz # Check that man page for Nginx is working man nginx

Για βοήθεια, μπορείτε να δείτε μια πλήρη λίστα με ενημερωμένες επιλογές χρόνου μεταγλώττισης Nginx εκτελώντας τα παρακάτω.

./configure --help # To see want core modules can be built as dynamic run: ./configure --help | grep -F =dynamic

Διαμόρφωση, μεταγλώττιση και εγκατάσταση του Nginx.

./configure --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --modules-path=/usr/lib/nginx/modules \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --user=nginx \ --group=nginx \ --build=Debian \ --builddir=nginx-1.17.2 \ --with-select_module \ --with-poll_module \ --with-threads \ --with-file-aio \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_xslt_module=dynamic \ --with-http_image_filter_module=dynamic \ --with-http_geoip_module=dynamic \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_auth_request_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_degradation_module \ --with-http_slice_module \ --with-http_stub_status_module \ --with-http_perl_module=dynamic \ --with-perl_modules_path=/usr/share/perl/5.26.1 \ --with-perl=/usr/bin/perl \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/cache/nginx/client_temp \ --http-proxy-temp-path=/var/cache/nginx/proxy_temp \ --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ --http-scgi-temp-path=/var/cache/nginx/scgi_temp \ --with-mail=dynamic \ --with-mail_ssl_module \ --with-stream=dynamic \ --with-stream_ssl_module \ --with-stream_realip_module \ --with-stream_geoip_module=dynamic \ --with-stream_ssl_preread_module \ --with-compat \ --with-pcre=../pcre-8.43 \ --with-pcre-jit \ --with-zlib=../zlib-1.2.11 \ --with-openssl=../openssl-1.1.1c \ --with-openssl-opt=no-nextprotoneg \ --with-debug make sudo make install

Μετά τη συλλογή, μεταβείτε στον ~κατάλογο του σπιτιού σας ( ).

cd ~

Συμβολικός σύνδεσμος /usr/lib/nginx/modulesπρος /etc/nginx/modules. Αυτό είναι ένα τυπικό μέρος για μονάδες Nginx.

sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules

Εκτυπώστε την έκδοση Nginx, την έκδοση μεταγλωττιστή και διαμορφώστε τις παραμέτρους του σεναρίου.

sudo nginx -V # nginx version: nginx/1.17.2 (Debian) # built by gcc 8.3.0 (Debian 8.3.0-6) # built with OpenSSL 1.1.1c 28 May 2019 # TLS SNI support enabled # configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . . # . . . # . . .

Δημιουργήστε μια ομάδα συστήματος Nginx και έναν χρήστη.

sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx # Check that user and group are created sudo tail -n 1 /etc/passwd /etc/group /etc/shadow

Ελέγξτε τη σύνταξη του Nginx και τα πιθανά σφάλματα.

sudo nginx -t # Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory) # Create NGINX cache directories and set proper permissions sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp sudo chmod 700 /var/cache/nginx/* sudo chown nginx:root /var/cache/nginx/* # Re-check syntax and potential errors. sudo nginx -t

Δημιουργήστε ένα αρχείο μονάδας συστήματος Nginx.

sudo vim /etc/systemd/system/nginx.service

Συμπληρώστε το /etc/systemd/system/nginx.serviceαρχείο με το ακόλουθο περιεχόμενο.

[Unit] Description=nginx - high performance web server Documentation=https://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target

Ενεργοποιήστε το Nginx για να ξεκινήσει κατά την εκκίνηση και εκκινήστε το Nginx αμέσως.

sudo systemctl enable nginx.service sudo systemctl start nginx.service

Ελέγξτε εάν το Nginx θα ξεκινήσει αυτόματα μετά από μια επανεκκίνηση.

sudo systemctl is-enabled nginx.service # enabled

Ελέγξτε την κατάσταση.

sudo systemctl status nginx.service

ΣΗΜΕΙΩΣΗ : Μπορείτε να επαληθεύσετε ότι το Nginx εκτελείται μεταβαίνοντας στον τομέα ή τη διεύθυνση IP του ιστότοπού σας σε ένα πρόγραμμα περιήγησης ιστού. Θα δείτε τη σελίδα καλωσορίσματος Nginx. Αυτός είναι ένας δείκτης ότι το Nginx είναι σε λειτουργία και λειτουργεί στο VPS σας.

Δημιουργήστε ένα προφίλ εφαρμογής UFW Nginx.

sudo vim /etc/ufw/applications.d/nginx

Αντιγράψτε/επικολλήστε το παρακάτω περιεχόμενο στο /etc/ufw/applications.d/nginxαρχείο.

[Nginx HTTP] title=Web Server (Nginx, HTTP) description=Small, but very powerful and efficient web server ports=80/tcp [Nginx HTTPS] title=Web Server (Nginx, HTTPS) description=Small, but very powerful and efficient web server ports=443/tcp [Nginx Full] title=Web Server (Nginx, HTTP + HTTPS) description=Small, but very powerful and efficient web server ports=80,443/tcp

Επιβεβαιώστε ότι τα προφίλ εφαρμογών UFW δημιουργούνται και αναγνωρίζονται.

sudo ufw app list # Available applications: # Nginx Full # Nginx HTTP # Nginx HTTPS # OpenSSH

Το Nginx, από προεπιλογή, δημιουργεί αντίγραφα ασφαλείας σε .defaultαρχεία /etc/nginx. Αφαιρέστε .defaultαρχεία από τον /etc/nginxκατάλογο.

sudo rm /etc/nginx/*.default

Τοποθετήστε την επισήμανση σύνταξης της διαμόρφωσης Nginx για τον επεξεργαστή Vim στο ~/.vim.

# For regular non-root user mkdir ~/.vim/ cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/ # For root user sudo mkdir /root/.vim/ sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/

ΣΗΜΕΙΩΣΗ : Κάνοντας το παραπάνω βήμα, θα έχετε μια ωραία επισήμανση σύνταξης κατά την επεξεργασία των αρχείων διαμόρφωσης Nginx στο πρόγραμμα επεξεργασίας Vim.

Δημιουργήστε conf.d, snippets, sites-availableκαι sites-enabledκαταλόγους /etc/nginx.

sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}

Αλλαγή δικαιωμάτων και ομαδικής ιδιοκτησίας αρχείων καταγραφής Nginx.

sudo chmod 640 /var/log/nginx/* sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log

Δημιουργήστε μια διαμόρφωση περιστροφής καταγραφής για το Nginx.

sudo vim /etc/logrotate.d/nginx

Συμπληρώστε το αρχείο με το ακόλουθο κείμενο, στη συνέχεια αποθηκεύστε και βγείτε.

/var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript }

Αφαιρέστε όλα τα ληφθέντα αρχεία από τον αρχικό κατάλογο.

cd ~ rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/

Περίληψη

Αυτό είναι. Τώρα, έχετε εγκαταστήσει την πιο πρόσφατη έκδοση του Nginx. Μεταγλωττίζεται στατικά έναντι ορισμένων σημαντικών βιβλιοθηκών όπως το OpenSSL. Συχνά, η έκδοση του OpenSSL που παρέχεται από το σύστημα είναι ξεπερασμένη. Χρησιμοποιώντας αυτήν τη μέθοδο εγκατάστασης με μια νεότερη έκδοση του OpenSSL, μπορείτε να επωφεληθείτε από τους σύγχρονους κρυπτογράφους όπως CHACHA20_POLY1305και τα πρωτόκολλα όπως το TLS 1.3 που είναι διαθέσιμα στο OpenSSL 1.1.1. Επιπλέον, με τη σύνταξη του δικού σας δυαδικού αρχείου, μπορείτε να προσαρμόσετε τη λειτουργικότητα που θα παρέχει το Nginx σας, κάτι που είναι πολύ πιο ευέλικτο από την εγκατάσταση ενός προκατασκευασμένου δυαδικού αρχείου.

Debian, Οδηγοί Linux, Διαχειριστής συστήματος, Διακομιστές Ιστού

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα