Miért jobb fordítani, mint telepíteni a tárakból

Ebben a kis útmutatóban elmagyarázom (és megtanítalak), miért jobb, ha egy programot (mondjuk Firefox, Vlc stb.) A forráskódjából fordítasz, mintsem hogy letöltsd (a The Software Center, a Yumex, a Pacman stb. Oldaláról). ) és telepítse.

Először az elmélettel megyünk:

Mi az a "fordítás"?

A fordítás során a forráskódot (egy bizonyos programozási nyelven írt kódot, mondjuk C, C ++ stb.) Futtatható programká alakítják át működéséhez, azzal, hogy a processzor segítségével a kód generálásához használt nyelvet binárisra és assemblerre konvertálja. Gyakran csomagolásnak is hívják.

Miért jobb a "fordítás"?

Először a következőket kell ismerned, hogy megértsd miért. "Nyers" módon (egyszerű, nem túl profi stb.) Minden processzor (Pentium, Core, Atom stb.) És fajai (Intel, AMD, ARM stb.) Utasításokkal rendelkeznek (az összeíróban írt szoftverek) amely feldolgozza a modelljüket) (Core i7, Core i5, Atom x2, Phantom x8, Arm stb.), és általános utasításokkal is rendelkeznek, amelyek mindegyiküknek vannak.

Amikor letölti az adattárakból a Software Center / apt-get / Yumex / Yum / Pacman / stb. Oldalakon keresztül, egy automatikusan telepítő program azt mondja, hogy előrefordított az összes lehetséges processzor (Intel és Amd) működéséhez. Mivel egy előre lefordított programról van szó, az adott processzormodellre jellemző utasítások elvesznek (gondoljuk úgy, hogy ha egy olyan program, mint a Firefox vagy a Chrome, amelyeknek több mint 7 vagy 8 millió sora van a kóddal, akkor mindegyikhez meg kellett adniuk az összes speciális utasítást processzor a piacon, a kód mennyisége olyan nagy lenne, hogy az a program már nem lenne hatékony), nem hagyva mást, mint az alkotói márka általános típusait (Intel, Amd, Arm).

Amikor maga tölti le, csomagolja ki és fordítja le egy program forráskódját, a program a következő utasításokkal áll össze TU processzor, (ami nem azt jelenti, hogy nem egy másik gépen fog működni, csak azt, hogy kifejezetten és kizárólag a processzorára optimalizálják), ezzel felszabadítva és felszabadítva mindazt az energiát, amelyet a processzor képes az adott utasításainak köszönhetően.

Részletesebben: ezek a speciális utasítások szorosan kapcsolódnak az úgynevezett alaplap chipsetjéhez, ami nagy fejtörést okoz azoknak, akik Intel-szel rendelkezünk, amikor frissíteni akarjuk a processzort és az alaplapot.

Meglepődnél azon a hatalomon, amelyet a te amd atom x2 vagy te Intel Core belül, 2 Core Duo, i3, stb a régi PC-ről. Most már megértette, miért beszélnek sokat a Linux világában a híres Kernel (minden operációs rendszer szíve) összeállításáról? Képzelje el, ha egy teljes rendszert (grafikus környezet (Gnome, Kde stb.), Kernelt, gyakran használt programokat (Firefox, Vlc, Chrome, Wine stb.), Különösen a számítógépére fordít), összeállítja a sebesség és az optimalizálás minden szintjét .

Ezt a fordítási alapelvet a speciálisan a gépedre optimalizált kód megszerzéséhez az a disztribúció, mint a Gentoo és a derivatívák használják (amiről most nem fogok beszélni, a Fedora minimálist használom a Gnome 3, a kernel és más programok fordításával) ahol mindig összeállítják a rendszert, a frissítéseket és a programokat.

Az összeállítás hátrányai:

Már ismertettem az összes előnyét, de mint minden az univerzumban, ez ellen is van.

Összeállítási esetben azok;

  • Ehhez szükséges idő (Firefox i7 4790K-val (overclock nélkül, mivel nagyon rossz vagyok a feszültségekkel) 3 percet vesz igénybe, a Gnome Shell (a sáv semmi több) és a Gnome-Control-Center együtt kb. 2 percet vesz igénybe, mindkettőt ugyanakkor a Fedorában. De egy kevésbé hatékony processzorral rendelkező gépen ez az idő aránytalanul hosszú lehet).
  • A processzor teljes teljesítményének 100% -át az összes magjával maximálisan kihasználja, így a fogyasztás és a hő az egekbe szökik (ezt vegye figyelembe, ha túlhúzza magát, vagy ha különösen notebookról van szó), így kényelmes, ha előkészít egy társat vagy egy kávét. erre az alkalomra.
  • Talán hiányzik egy könyvtár (eszköz), amely egy programot használ, hogy ne hibázzon az összeállításban. Általában minden disztribúciónak vannak csomagjai vagy készletei ennek elkerülésére (tele vannak különféle könyvtárakkal és egyéb dolgokkal, amelyek lehetővé teszik a kernel számára, hogy a folyamat során a kellő módon kommunikáljon a processzorral).

Hogyan állíthatok össze?

A Debian (Ubuntu, Mint, Elementary stb.) Mind ennek származékai, ezért kövesse ezt

Itt egy normál használatra szánt program összeállításáról beszélek, nem pedig a rendszermagról.

aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor

A debian-policy-t tettem, de ha a disztró nem a Debian, és hibát ad, hogy nincs ilyen csomag, akkor hagyja figyelmen kívül. Tisztáznom kell, hogy sokáig nem használtam ezeket a rendszereket, ezért ha egy csomag már nincs a tárakban, ne okozzon problémát.

Fedora esetében:

sudo yum -y telepíti a kernel-fejléceket
kernel-devel
sudo yum groupinstall "Fejlesztő eszközök"
sudo yum groupinstall "Fejlesztési könyvtárak"

Itt elnézést kell kérnem azoktól, akik az Arch-ot (nem ismerem jól a disztribúciót) és az OpenSuse-t használják, mivel nem ismerem ezeket a disztribúciókat vagy a megfelelő csomagokat a helyes fordítás elvégzéséhez (és nem támasztottam alá azt, ami a hálózaton van, hogy e kettőnél nem tudom, hogy működnek-e).

Most, hogy megvan az összes szükséges követelmény, csak le kell töltenie a lefordítandó program forráskódját, a kiterjesztés szerint kibontja a terminál használatával (ne aggódjon, meghagyom a parancsokat), és amikor a mappába megy (mindig a terminállal), akkor a következőket teszi:

Ha lehetősége van konfigurálni magát az összetevők és mások kiválasztására:

./configure

Aztán beírja:

make

És végül a program telepítése a linuxra:

make install

Mindezt mindig root-nal (su a Fedora-ban, sudo su az Ubuntuban és származékai (Mint, Elementary Os stb.)

Parancsok a terminál segítségével történő kibontáshoz (a fájl kibontása abban a mappában történik, ahol a fájl található):

.Tar fájlok (kátrány) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Csomag | tar cvf file.tar / file / * Csomagolja ki | tar xvf file.tar Tartalom megtekintése | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (kátrány gzip-el ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Csomagolás és cipzár | tar czvf archive.tar.gz / archive / Kicsomagolni és kicsomagolni | tar xzvf file.tar.gz Tartalom megtekintése (nem kibontva) | tar tzvf fájl.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tömörítés | gzip -q fájl (A fájl tömöríti és átnevezi "file.gz" -re) Csomagolja ki | gzip -d file.gz (A fájl kibontja és "fájlként" hagyja Megjegyzés: A gzip csak fájlokat tömörít, könyvtárakat nem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tömörítés | bzip2 fájl | bunzip2 fájl (A fájl tömöríti és átnevezi "file.bz2" névre.) Csomagolja ki | bzip2 -d fájl.bz2 | bunzip2 file.bz2 (A fájl kibontja és "fájlként" hagyja) Megjegyzés: A bzip2 csak fájlokat tömörít, könyvtárakat nem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (kátrány bzip2-vel) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tömörítés | tar -c fájlok | bzip2> file.tar.bz2 Csomagolja ki | bzip2 -dc fájl.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (a tar legújabb verziói) Tartalom megtekintése | bzip2 -dc fájl.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tömörítés | zip file.zip / mayo / archives Csomagolja ki | unzip file.zip Tartalom megtekintése | kicsomagolja a -v fájlt.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tömörítés | rar -a file.rar / may / archives Csomagolja ki | rar -x file.rar Tartalom megtekintése | rar -v fájl.rar | rar -l fájl.rar

És ennyi. Üdvözlet Buenos Airesből, Argentína. Kellemes ünnepeket és új éveket kívánunk! :).


Hozzáadás előnyben részesített forrásként a Google-ben