Instalace 2019 Arch Linuxu na Vultr Server
Úvod Arch Linux má menší, ale stále silnější následovníky než populárnější distribuce. Jeho filozofie je zcela odlišná, s výhodami an
Na Arch Linuxu jsou oficiálními repozitáři: core, extra a community. Tyto balíčky jsou již zkompilovány a instalují se prostřednictvím pacman
. Z velké části mohou běžní uživatelé ignorovat, že tato 3 oficiální úložiště jsou oddělená. Core obsahuje nejkritičtější balíčky, jako je jádro, bootovací proces, síťování, správa balíčků, openssh a tak dále. Má také přísnější požadavky na důkladnější testování před vydáním nových verzí. Extra obsahuje další oblíbené balíčky, které nejsou tak důležité, jako je X server, správci oken nebo webové prohlížeče. Komunita obsahuje méně oblíbené balíčky. Pouze důvěryhodní uživatelé (asi 60 aktivních uživatelů, o kterých hlasovali ostatní důvěryhodní uživatelé) mají přístup k provádění změn v oficiálních úložištích.
V roce 2019 je v oficiálních repozitářích na https://www.archlinux.org/packages asi 11 000 balíčků . V Linuxu je však k dispozici mnoho dalších programů. Existuje tedy AUR (Arch Linux User Repository), takže každý uživatel Archu může přidat nový program a stát se jeho správcem nebo přijmout „osiřelý“ balíček bez aktuálního správce. V AUR na https://aur.archlinux.org/ je asi 55 000 balíčků .
V porovnání s AUR existují 3 zásadní rozdíly:
PKGBUILD
skript Shell pro automatické vytvoření balíčku, nikoli kompilované binární soubory. (Někdy také obsahuje malé textové záplaty nebo skripty shellu install/upgrade/uninstall). To odvedlo ohromnou práci a umožnilo každému uživateli přispívat a zároveň zmírnilo možnost, že by někdo mohl distribuovat škodlivý kód. Komunita Arch je stále docela nápomocná ohledně problémů s balíčky AUR, ale je třeba poznamenat, že jejich použití je na vaše vlastní riziko. Protože vše, co poskytuje, je PKGBUILD
, je v konečném důsledku vaší odpovědností zkontrolovat a, které PKGBUILD
budete používat. (Je pravda, že mnoho uživatelů to nedělá a spoléhá se na to, že ostatní budou sledovat.)pacman
přímo neinteraguje s AUR, je vaší odpovědností aktualizovat balíčky AUR. Když pravidelně upgradujete celý systém prostřednictvím pacman
, nebude automaticky stahovat aktualizace PKGBUILD
souborů AUR , kompilovat je a instalovat je za vás.Ačkoli se tento článek zaměřuje na vytváření balíčků z AUR, stejné techniky lze použít k vytvoření balíčků z oficiálních repozitářů sami.
PKGBUILD
Ve srovnání se .spec
souborem, který používá mnoho jiných distribucí, PKGBUILD
je a krátký a jednoduchý shell skript. Ačkoli jsou některé balíčky složitější, mohou být jednoduše podobné následujícím:
pkgname=NAME
pkgver=VERSION
pkgrel=1
pkgdesc='DESCRIPTION'
url=http://example.com/
arch=('x86_64')
license=('GPL2')
source=(http://example.com/downloads/${pkgname}-${pkgver}.tar.gz)
sha256sums=('f0a90db8694fb34685ecd645d97d728b880a6c15c95e7d0700596028bd8bc0f9')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make install
}
Tento dokument odkazuje na:
PKGNAME
: Název balíčkuPKGVER
: Verze balíčku (téměř vždy se shoduje s číslem verze proti proudu)PKGREL
: Arch "verze" PKGBUILD
pro konkrétní PKGVER
(normálně 1, ale navýšeno, pokud je třeba provést změny PKGBUILD
mezi upstream vydáními)ARCH
: Architektury, na kterých může být balíček postaven (poněkud zastaralé, protože oficiální repozitáře Arch Linuxu podporují pouze "x86_64" (64bitové CPU), ale balíčky AUR mohou stále podporovat "i686" (32bitové CPU) nebo "jakékoli" označovat architekturu je irelevantní)PKGBUILD/ETC
: Jakékoli soubory skutečně v úložišti AUR; the PKGBUILD
a jakékoli další malé textové záplaty nebo skripty shellu pro instalaci/upgrade/odinstalaci. Nezahrnuje upstream soubory v source
poli.Ačkoli se AUR ukázal jako extrémně důvěryhodný, je dobré se na něj podívat, PKGBUILD/ETC
abyste se ujistili, že získává zdroj z místa, kterému jste ochotni důvěřovat; (například oficiální upstream umístění, které může pocházet z githubu – ale ne pouze z repozitáře github nějaké náhodné osoby, která nesouvisí s balíčkem upstream); a že PKGBUILD/ETC
neobsahuje žádný podezřelý kód.
PKGBUILD/ETC
Pokud oficiální úložiště neobsahují balíček, který chcete nainstalovat, vyhledejte jej na https://aur.archlinux.org/ . Doufejme, že zjistíte, že to, co hledáte, existuje, je aktuální a udržované.
Nejlepší způsob, jak získat PKGBUILD/ETC
z AUR, je naklonovat jej přes git
.
Nainstalujte git
, pokud již není:
# pacman -S git
Použijte "Git Clone URL" uvedenou na webu AUR pro daný balíček:
$ git clone https://aur.archlinux.org/fslint.git
Vstupte do adresáře a podívejte se na jeho obsah. (Vše, co zde uvedeny, s výjimkou . .. .git
je PKGBUILD/ETC
):
$ cd <PKGNAME>
$ ls -a
. .. .git PKGBUILD .SRCINFO
Pokud prozkoumáte PKGBUILD
, doufejme, že používá oficiální zdrojový kód upstream a provádí typické kroky k sestavení balíčku, takže vypadá důvěryhodně. .SRCINFO
Obsahuje pouze informace uvedené na internetových stránkách o balíčku, takže není znepokojující. Pokud jsou zde nějaké další soubory, nejsou (přímo) poskytovány upstreamem, takže PKGBUILD
by měly být prozkoumány soubory a způsob jejich použití v souboru , abyste se ujistili, že neobsahují nic podezřelého.
Ačkoli to vyžaduje mnohem méně často, můžete sestavit balíček již v oficiálních repozitářích, zahrnout do něj nový patch, sestavit novější verzi atd.
Získejte PKGBUILD/ETC
z jádra a dalších úložišť:
$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/packages.git "<PKGNAME>"
Z komunitního úložiště:
$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/community.git "<PKGNAME>"
PKGBUILD/ETC
Pokud PKGBUILD/ETC
je vydán upgradovaný , můžete se vrátit do tohoto adresáře vytvořeného pomocí git clone
a aktualizovat je:
$ git pull
Poté balíček znovu zkompilujte a upgradujte pomocí metody dle vašeho výběru níže.
Existuje mnoho způsobů, jak kompilovat balíčky. Nakonec vše používá makepkg
. Existují 2 oficiálně podporované způsoby:
makepkg
viz https://www.vultr.com/docs/using-makepkg-on-arch-linux .makepkg
v čistém prostředí chroot
, přejděte na https://www.vultr.com/docs/using-devtools-on-arch-linux .Existuje mnoho pomocných programů AUR (jako makepkg
wrapper), které nejsou oficiálně podporovány Archem, jako jsou aurutils
, yay
, a nedávno ukončené aurman
a yaourt
. I když používáte některý z těchto dalších pomocných programů, důrazně se doporučuje seznámit se s oficiálně podporovanými způsoby, jak být efektivnější, když se něco pokazí.
Zbytek tohoto dokumentu bude YOUR BUILDER
znamenat jakoukoli metodu, kterou zvolíte.
Můžete nastavit místní úložiště jako centrální umístění pro všechny balíčky, které vytvoříte.
Umístěte místní úložiště kamkoli budete chtít:
# mkdir /archLocalRepo
Spusťte YOUR BUILDER
bez jakýchkoli možností automatické instalace a zkopírujte balíček do místního úložiště.
# cp <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz /archLocalRepo
Přidejte nový balíček do indexu úložiště:
# repo-add /archLocalRepo/archLocalRepo.db.tar.gz /archLocalRepo/<PACKAGE-FILE-NAME>
Chcete-li odebrat balíček z indexu úložiště a samotného souboru balíčku:
# repo-remove /archLocalRepo/archLocalRepo.db.tar.gz <PKGNAME>
# rm /archLocalRepo/<PACKAGE-FILE-NAME>
Pokud potřebujete nahradit existující soubor balíčku, musíte samostatně odebrat nahrazovaný soubor a poté přidat nový. Nemůžete jednoduše zkopírovat nový soubor přes starý.
Nakonfigurujte pacman
použití místního úložiště úpravou /etc/pacman.conf
a na konec přidejte následující:
[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo
Musíte pacman
obnovit jeho znalosti o úložišti (včetně vašeho místního), databázích; pro zobrazení balíčků, které jste do něj přidali:
# pacman -Sy
Poté můžete balíček nainstalovat, ne jinak, než kdyby byl v oficiálním úložišti:
# pacman -S <PKGNAME>
Všimněte si, že pokud je balíček pouze závislostí jiného balíčku, který se chystáte instalovat, nemusíte jej instalovat přímo. Když nainstalujete tento další balíček, pacman
automaticky vyhledá a nainstaluje balíčky závislostí ve vašem místním úložišti.
Ve výchozím nastavení se YOUR BUILDER
kompiluje pomocí jednoho vlákna. Na systémech s více CPU můžete povolit použití více vláken, kde je to možné. Sestavovací systém bude kompilovat části zdrojového kódu paralelně, když to bude možné. Někdy části kódu vyžadují, aby další části, se kterými interaguje, byly již zkompilovány, takže ne vždy uvidíte tolik vláken, kolik je povoleno. Editovat /etc/makepkg.conf
.
Chcete-li povolit použití tolika vláken, kolik máte virtuálních jader, přidejte následující:
MAKEFLAGS="-j$(nproc)"
Poznámka: Toto spustí příkaz nproc
pokaždé, takže vždy použije aktuální počet jader v případě, že upgradujete server Vultr
Chcete-li povolit použití více virtuálních jader, ale ne všech z nich, jako je snížení dopadu na celkový výkon systému, přidejte konkrétní číslo. Pokud máte například 24 jader, můžete povolit použití 21:
MAKEFLAGS="-j21"
Pokud zadáte více vláken, než kolik máte virtuálních jader, snížíte výkon.
Je to poměrně vzácné, ale systémy sestavení některých balíčků mají problémy s paralelní kompilací, protože nejsou správně definovány závislosti mezi částmi kódu. PKGBUILD
Soubory těchto balíčků to obvykle zpracují za vás vyvoláním make -j1
, které přepíše výchozí nastavení, které jste nastavili. Pokud to potřebuje a chybí to, nahlaste to správci balíčku Arch.
PKGBUILD
Zdroj pole může obsahovat .asc
nebo .sig
soubory. Často jsou zahrnuty pomocí rozšíření závorky bash, takže je lze snadno přehlédnout:
source=("http://example.com/downloads/${pkgname}-${pkgver}.tar.gz{,.sig}")
Pokud je některý z těchto formátů souborů podpisů zahrnut ve zdrojovém poli, YOUR BUILDER
automaticky se pokusí ověřit podpis upstream zdrojového archivu. Klíč PGP podpisu musí být ve svazku klíčů uživatele; jinak se přeruší s chybou:
==> Verifying source file signatures with gpg...
<SOURCE-FILE> ... FAILED (unknown public key 1234567890ABCDEF)
==> ERROR: One or more PGP signatures could not be verified!
Je důležité pochopit, že klíč GPG lze zobrazit několika způsoby. Jeho otisk je 40 hexadecimálních znaků a je to, co byste měli vždy používat. Dlouhé ID klíče je posledních 16 číslic a krátké ID klíče je posledních 8 číslic. I když kratší je výhodný, umožňuje duplikáty, které ruší veškeré úvahy o ověřování podpisů. Ještě horší je, že útočníci jsou známí tím, že generují falešné klíče, které odpovídají menším klíčům pro vysoce profilované vývojáře.
Pokud jste balíček ještě nezkoušeli sestavit, stáhněte si zdroje, které budou obsahovat soubor s podpisem: (Pokud jste se pokusili sestavit, již tam bude)
$ makepkg --nobuild --noextract
Chcete-li získat úplný otisk prstu:
$ gpg <ASC-OR-SIG-FILENAME>
...
gpg: using RSA key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE
...
V ideálním případě byste měli tento otisk ověřit z upstreamu. Pro zajištění bezpečnosti by měl upstream poskytnout klíče svých správců někde na svých webových stránkách nebo ve zdroji. Pouhé hledání klíče na serveru klíčů ve skutečnosti nic nedělá. Útočník může snadno odeslat falešný klíč, protože servery klíčů neověřují pravost. Klíče mohou být podepsány jinými klíči, takže pokud již máte klíč, kterému důvěřujete, měli byste být celkem v bezpečí, když důvěřujete všem klíčům, které podepsaly.
To může být docela dost práce, zvláště když upstream nezveřejňuje svůj otisk prstu nebo jej neumístí někam, kde jej lze snadno najít. PKGBUILD
Bude obsahovat validpgpkeys
pole, které byly přidány do Arch správce. Pokud je balíček oficiálním úložištěm, znamená to, že jej tam umístil Důvěryhodný uživatel a měli byste být v naprostém bezpečí, že důvěřujete čemukoli uvedenému v poli. Pokud je balíček v AUR, pamatujte, že to znamená, že jej tam umístil jiný uživatel Archu. Pokud se obáváte, že tomu důvěřujete, můžete se vždy podívat do uživatele a zjistit, co v minulosti s Archem udělal.
Přidání otisku prstu na klíčenku:
$ gpg --recv-keys <FINGERPRINT>
Nyní můžete spustit aplikaci YOUR BUILDER
a bude důvěřovat otisku prstu.
Balíčky AUR se jmény končícími -git
, -svn
, -bzr
nebo -hg
jsou vývojové verze, které místo posledního vydání upstreamu používají nejnovější verzi systému kontroly verzí. Například a-git
balíček by používal nejnovější odevzdání upstreamu v hlavní větvi (nebo jejich ekvivalentní větvi.) To je skvělé pro spouštění oprav chyb a nových funkcí, které ještě nebyly vydány, a při práci s upstreamem na chybě, kterou hlásíte, včetně musíte u nich ověřit, že to není chyba, která byla opravena potvrzením, které ještě není ve verzi. Tyto balíčky by měly být považovány za potenciálně nestabilní. To znamená, že bohužel někdy neexistuje žádná alternativa, protože někteří upstream správci vydání nikdy neoznačují nebo mezi jednotlivými vydáními tagování příliš dlouho neoznačují a očekávají, že každý použije svůj nejnovější odevzdání. V závislosti na balíčku můžete být první osobou, která se pokusí spustit revizi. V závislosti na upstream vývojářích se jejich nejnovější potvrzení nemusí ani zkompilovat,
Je důležité pochopit běžnou chybu. Neoznačujte vývojový balíček AUR jako zastaralý jednoduše proto, že zobrazuje staré číslo verze! PKGBUILD
Soubory vývojových balíčků obsahují další funkci pkgver()
, která se používá k automatické analýze aktualizace PKGVER
ze zdrojového kódu upstreamu. Běžný formát pro -git
balíček je <TYPICAL-VERSION-NUMBER>.r<COMMITS-SINCE-LAST-RELEASE>.<GIT-COMMIT>-<PKGREL>
. Balíček může být uveden v AUR jako 5.0.0.r102.8d7b42ac21-1
, protože to je to, co PKGBUILD
obsahuje. Když však vytvoříte balíček, YOUR BUILDER
automaticky se aktualizuje, PKGVER
aby odrážel nově stažený zdrojový kód. Ve skutečnosti, pokud bylo vydáno mnoho nových verzí, ale v procesu sestavení se nic nezměnilo, takové PKGBUILD
uvedení staré verze by mohlo vést k vytvoření něčeho mnohem novějšího, jako je9.1.2.r53.2c9a41b723-1
. U těchto balíčků je verze uvedená na webu jednoduše nejnovější verzí v době, kdy musel správce AUR naposledy aktualizovat soubor PKGBUILD
.
Správci AUR NESMÍ pouze aktualizovat, PKGVER
aby odrážely nové verze. Měli by tak učinit pouze tehdy, když novější upstream commity ve skutečnosti vyžadují něco jiného PKGBUILD
ke změně.
Označte vývojový balíček AUR za zastaralý, pouze pokud víte, že je něco skutečně špatně. To znamená, že jste se ho skutečně pokusili použít a selhává při kompilaci nebo analýze správně naformátovaného nového souboru PKGVER
. Někdy se stanou věci, které donutí správce AUR aktualizovat soubor PKGBUILD
, jako je změna upstreamových závislostí, změna configure
možností, nové verze GCC vychytají chyby ve zdrojovém kódu, které předchozí ne, změní se umístění úložišť proti proudu nebo se upstream vývojáři změní tam, kde jejich typická verze je ve zdrojovém kódu porušujícíPKGVER
parsovací funkce. Pochopte, že i když selže při kompilaci nebo práci, může to znamenat, že správce AUR musí provést změny v procesu sestavování, nebo to může být problém se zdrojovým kódem, za který správce AUR nenese žádnou odpovědnost.
Než nahlásíte balíček jako zastaralý, přečtěte si část „Vývojové balíčky AUR“ výše!
Pokud upstream vydal novější verzi pro nevývojový balíček než v PKGBUILD
, můžete kliknout na "Označit balíček za neaktuální" a napsat zprávu správci. Pro balíčky oficiálního úložiště použijte https://packages.archlinux.org a pro balíčky AUR https://aur.archlinux.org . Užitečnou zprávou by bylo číslo nové verze a možná odkaz na oznámení o vydání nebo zdrojový kód. Funkce označování automaticky odešle vaši zprávu správci e-mailem.
Pokud u balíčku AUR neobdržíte žádnou odpověď po 2 týdnech, můžete kliknout na „Odeslat požadavek“ s typem „Orphan“, pokud chcete požádat Důvěryhodného uživatele, aby odstranil aktuálního správce a aby balíček osiřel, pokud správce nereaguje na žádost o sirotek. Obecně platí, že lidé podávají osiřelé žádosti pouze tehdy, pokud jsou schopni a ochotni balíček převzít, a pokud možno pouze tehdy, pokud již mají funkční proud PKGBUILD
.
Mezitím můžete často aktualizovat zastaralý balíček sami. Často stačí změnit a PKGBUILD
aktualizací PKGVER
na nové číslo verze a součty integrity se aktualizují. V updpkgsums
balíčku existuje program pacman-contrib
, který automaticky vypočítá součty a aktualizuje je PKGBUILD
za vás. Vyplatí se zkontrolovat poznámky k vydání upstream, abyste zjistili, zda se v nich nezmiňuje, že je třeba během procesu instalace nové verze něco změnit. Někdy proti proudu změny vyžadují více změn nebo generální opravy PKGBUILD/ETC
. Často source
pole vloží PKGVER
do něj, takže často není ani potřeba aktualizovat.
Úvod Arch Linux má menší, ale stále silnější následovníky než populárnější distribuce. Jeho filozofie je zcela odlišná, s výhodami an
Vultr vám poskytuje úžasnou funkcionalitu, která vám umožňuje používat váš vlastní obrázek kromě jejich vynikajících šablon, což vám umožňuje spouštět
Balíček Devtools byl původně vytvořen pro důvěryhodné uživatele, aby správně vytvářel balíčky pro oficiální úložiště. Může jej však používat i běžný uživatel
Pokud používáte přímo makepkg, poněkud to znečišťuje váš systém. Musí být nainstalována skupina balíčků base-devel. Tímto způsobem jsou ve výchozím nastavení potřeba pouze závislosti
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Přístup Sudo. Příkazy požadované ke spuštění jako root mají předponu # a jedna
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server, buď Apache nebo Nginx Sudo.
Preface Arch Linux je univerzální distribuce známá pro svou špičkovou technologii a flexibilní konfiguraci. Se snímky Btrfs můžeme pořídit
Na Arch Linuxu jsou oficiálními repozitáři: core, extra a community. Tyto balíčky jsou již zkompilovány a instalují se pomocí pacmana. Pro th
Tento tutoriál vysvětluje, jak nastavit server Minecraft pomocí Spigot na Arch Linuxu. Tento tutoriál předpokládá, že jste normální uživatel (ne root) a máte hav
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Přístup Sudo. Příkazy požadované ke spuštění jako root mají předponu #. Th
Předpoklady Server Vultr s aktuální verzí Arch Linuxu. Další informace naleznete v této příručce. Sudo přístup. Příkazy požadované ke spuštění jako root ar
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server, přístup k Apache nebo Nginx Sudo: Příkazy vyžadují
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server, přístup k Apache nebo Nginx Sudo: Příkazy vyžadují
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server s přístupem Apache nebo Nginx Sudo. Příkazy vyžadují
Tento tutoriál vysvětluje, jak nastavit server Mumble (Murmur) na Arch Linuxu. Vše, co se v tomto tutoriálu provádí, se provádí jako uživatel root. Instalace an
Tento tutoriál vysvětluje, jak nastavit Counter-Strike: Global Offensive server na Arch Linuxu. Tento tutoriál předpokládá, že jste se přihlásili standardním způsobem
Tento tutoriál vysvětluje, jak nastavit server Team Fortress 2 na Arch Linuxu. Předpokládám, že jste přihlášeni pomocí jiného uživatelského účtu než root, který má sudo přístup
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Přístup Sudo: Příkazy vyžadované ke spuštění jako root mají předponu # a jedna
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek) Přístup Sudo: Příkazy, které je třeba spouštět jako root, mají předponu # a jedna
Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.
Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.
Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.
Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.
Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…
Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.
Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.
Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.
V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.
Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více