O'rnatish ubuntu make. Dasturlarni manbadan kompilyatsiya qilish va o'rnatish. Bu bilan ovora bo'lishga vaqtim yo'q, yana o'rnatganim ma'qul, hammasi oddiy va tushunarli

Xulosa shuki, "make install" yoki "sudo make install" ko'rinishidagi bu buyruqni zamonaviy distributorlarda ishlatib bo'lmaydi.

Ammo o'rnatish qo'llanmalarida dasturlarning mualliflari ushbu buyruqni ishlatishingiz kerakligini yozadilar, siz aytishingiz mumkin. Ha, yozadilar. Ammo bu faqat ular sizning qanday taqsimotingiz borligini yoki umuman tarqatishmi yoki yo'qligini bilmasligini anglatadi, ehtimol siz sektaga qo'shilgansiz va LFS o'qishni chekgansiz va endi o'zingizning xtonik tizimingiz uchun ularning yaratilishini tuzishga qaror qildingiz. Make install - bu ko'pincha noto'g'ri bo'lsa ham, buni qilishning universal usuli.

Lirik chekinish

Ma'lumki, normal ishlashi uchun ko'pgina dasturlar nafaqat kompilyatsiya qilinishi, balki tizimga to'g'ri o'rnatilishi ham kerak. Dasturlar ma'lum joylarda kerakli fayllarni topishni kutadi va ko'pchilik *nix tizimlarida bu joylar kompilyatsiya vaqtida kodga qattiq kodlangan. Ushbu jihatga qo'shimcha ravishda, linux/freebsd/whatever-da o'rnatish jarayonining Windows va MacOS-dan asosiy farqi shundaki, dastur shunchaki bir nechta fayllarni Program Files yoki /Applications-dagi alohida katalogga joylashtirmaydi, balki " bo‘ylab tarqaladi” fayl tizimi. Kutubxonalar lib-ga, bajariladigan fayllar qutiga, konfiguratsiyalar va boshqalarga, turli xil ma'lumotlar var-ga o'tadi va hokazo. Agar siz to'satdan uni yangilashingiz kerak bo'lsa, unda bularning barchasi birinchi navbatda qandaydir tarzda tozalanishi kerak, chunki ... foydalanish yangi versiya Eski fayllarning qoldiqlari oldindan aytib bo'lmaydigan oqibatlarga olib kelishi mumkin, ko'pincha yaxshi emas. Ushbu hodisaning ehtimoli unchalik yuqori emas, lekin bu sizga ishlab chiqarish serverida kerakmi?

Xo'sh?

Shunday qilib, agar siz o'rnatishni to'g'ridan-to'g'ri make install orqali amalga oshirgan bo'lsangiz, dasturiy ta'minotni olib tashlash yoki yangilash odatiy holdir qila olmaysiz. Bundan tashqari, eski versiyaning yangi versiyasini o'rnatish katta ehtimollik bilan bo'ladi konfiguratsiyalardagi o'zgarishlaringizni qayta yozadi. make install o'zi aytilgan narsani to'liq bajaradi - fayllarni kerakli joylarga o'rnatadi, biror narsa borligiga e'tibor bermaydi. Ushbu jarayondan so'ng, qaerga va hazm bo'ladigan shaklda joylashtirilganligi haqida hech qanday ma'lumot olish mutlaqo mumkin emas. Ba'zan, albatta, Makefile o'chirish harakatini qo'llab-quvvatlaydi, lekin bu unchalik keng tarqalgan emas va u to'g'ri ishlashi haqiqat emas. Bundan tashqari, o'chirilmagan manba daraxtini saqlash va o'chirish uchun qurish qoidalari qandaydir g'alati.

Qanday kurashish kerak?

Distribyutsiyalardagi paketlar ba'zan yangilanib turadiganligi sababli, bu muammoni hal qilish uchun ular shunday narsalarni o'ylab topishdi paket menejeri. Uni ishlatganda, o'rnatish quyidagicha amalga oshiriladi:
  1. ma'lum bir tarzda shakllangan arxiv olinadi
  2. undan nima ekanligi, qaysi versiya ekanligi, nimaga bog'liqligi, nimaga zidligi, o'rnatish/o'chirish/konfiguratsiya qilish uchun biron-bir skriptni ishga tushirish zarurligi va hokazolar haqida ma'lumotlar olinadi.
  3. To'g'ridan-to'g'ri o'rnatish bosqichlari davom etmoqda
  4. Qaerda va nima etkazib berilganligi haqidagi barcha ma'lumotlar paket menejeri ma'lumotlar bazasiga qo'shiladi.

Bunday holda, yangilashda siz keraksiz narsalarni og'riqsiz olib tashlashingiz mumkin va shu bilan birga tizimda konfiguratsiya sifatida belgilangan fayllar o'zgarganligini ko'rishingiz va yangi versiyada ularning mazmuni boshqacha bo'lsa, nima qilish kerakligini so'rashingiz mumkin. Bundan tashqari, paket menejeri boshqa paketni o'rnatishda bir paketning fayllarini qayta yozishga ruxsat bermaydi. Umuman olganda, u juda ko'p foydali narsalarni qila oladi.

Agar siz johillik/dangasalik tufayli ko'rsatmalardan nusxa ko'chirgan va joylashtirishni amalga oshirsangiz, unda tizimda paket menejeri bilmagan fayllar paydo bo'ladi. Bu shuni anglatadiki, agar ilgari sanab o'tilgan narsalar siz uchun etarli bo'lmasa.

Nima qilish kerak?

Siz, albatta, manba daraxtini shunday sozlashingiz mumkinki, hamma narsa /opt/mycoolapp/-da o'rnatiladi va keyin, agar kerak bo'lsa, uni qo'lda o'chiring, lekin bu erda juda ko'p yoqimsiz narsalar paydo bo'lishi mumkin. dastur kutubxonalaringizni yuklay olishini kutadi va yuklovchi ular joylashgan katalog haqida hech narsa bilmaydi, dastur muallifi buni kutishi mumkin, masalan, agar u faylni $ prefiks/share ichiga qo'ysa. /xsessions/, keyin displey menejeri uni oladi. Pkgconfig va boshqalar uchun yo'llarni eslatib o'tmaslik kerak.

Shunday qilib, siz paketni yig'ishingiz kerak.

Bu bilan ovora bo'lishga vaqtim yo'q, yana o'rnatganim ma'qul, hammasi oddiy va tushunarli!

Tinchlaning, tinchlaning. U bizning oyoqlarimizga bog'langan. Hamma narsa birinchi qarashda ko'rinadigan darajada qo'rqinchli va murakkab emas.
o'rnatishni tekshiring
Make install o'rniga ishga tushirilgan ushbu ajoyib yordamchi dastur bir nechta savollarni beradi, shundan so'ng u paketni tuzadi va o'rnatadi. Hammasi shu, yangilash paytida siz eski keraksiz narsalarni tozalashda hech qanday muammoga duch kelmaysiz.
Deb paketini qo'lda yaratish
Agar siz bunday avtomatlashtirishga ishonishga moyil bo'lmasangiz (ba'zida bu hali ham buzilib ketadi) yoki siz bir nechta o'zgartirishlar kiritmoqchi bo'lsangiz, lekin paketlarni qurishning oddiy jarayoni bilan shug'ullanish uchun hali ham dangasa bo'lsangiz, paketni qo'lda yig'ishingiz mumkin. Men uni tizimlar uchun qurish usulini beraman Debian ma'lumotlar bazasi, chunki men ular bilan yaxshi tanishman. Bu mafkuraviy jihatdan to'g'ri emas, lekin chiqish qo'shimcha ob'ektlardan foydalanmasdan butunlay to'g'ri paketdir. Bu quyidagicha amalga oshiriladi.
Birinchidan, biz dasturiy ta'minotni configure yoki autogen.sh uchun oldindan belgilangan --prefix=/usr va --exec-prefix=/usr parametrlari bilan yig'amiz.
Keyinchalik, biz uni vaqtinchalik katalogga o'rnatamiz. Biz yozamiz:

Fakeroot o'rnatishni DESTDIR=`pwd`/tempinstall qiling
Shundan so'ng biz yangi yaratilgan katalogdagi barcha fayllar to'plamini olamiz. Aytgancha, biz hozir soxta muhitdamiz, ya'ni siz hech qanday cheklovlarsiz fayllar egasini va kirish huquqlarini o'zgartirishingiz mumkin, ammo jismonan siz tizimning egasi bo'lib qolasiz. Fakerot sessiyasi ichidagi dasturiy ta'minot o'zgartirilgan ma'lumotlarni oladi, bu esa to'g'ri huquqlarga ega fayllarni arxivlash imkonini beradi.
Keyin, "paket ildizida" DEBIAN katalogini yarating va /etc ga DEBIAN/conffiles ichiga kirishi kerak bo'lgan barcha fayllar ro'yxatini qo'shing:

Cd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/conffiles
Keyin biz quyidagi tarkibga ega DEBIAN/nazorat faylini yaratamiz:

Agar kerak bo'lsa, u erda preinst, postinst, prerm va postrm skriptlarini ham yaratishingiz mumkin.

Hammasi shu, biz dpkg -b tempinstall dasturini qilamiz va chiqish tempinstall.deb bo'lib, uni to'g'ri o'rnatish, yangilash yoki o'chirish uchun dpkg -i dan foydalanishingiz mumkin.

Manba kod paketini oldindan yaratishning "to'g'ri" jarayoni ushbu eslatma doirasidan tashqarida va shuning uchun tavsiflanmaydi, lekin sizning maqsadlaringiz uchun odatda kerak emas.

Xulosa

Ko'rib turganingizdek, bu erda hech qanday murakkab narsa yo'q, ammo ushbu qadamlarni bajarish sizni kelajakda juda ko'p muammolardan xalos qiladi.

Bundan tashqari, boshqa tizimlar o'rnatilishi kerak qo'shimcha dasturlar. Operatsiya xonalarida Windows tizimlari hamma narsa juda oddiy, qoida tariqasida, dasturiy ta'minotni o'rnatishga yordam beradigan setup.exe o'rnatuvchisi mavjud. Ammo Linuxda narsalar biroz boshqacha. Linuxda dasturlarni qanday o'rnatish mumkin? Endi bu savolga qaraylik.

Linuxda bir necha turdagi o'rnatish paketlari mavjud va har bir tarqatish o'z paket formatiga ega. Fedora, Mandriva, Red Hat va Suse distributivlari Red Hat tomonidan ishlab chiqilgan standart Linux RPM o'rnatilishidan foydalanadi. RPM paket fayli odatda nomlanadi program_name-version.rpm.

Yana bir mashhur format - DEB. Debian, Ubuntu, Knoppix va Mepis da qo'llaniladi. Ismi bor program_name-version.deb.

Va biz arxivga yaqinlashdik. Odatda bu .tar , .tar.gz , .tgz kengaytmalari. Ular paketdan chiqarilishi va keyin o'rnatilishi/kompilyatsiya qilinishi kerak.

Dasturni o'rnatish jarayonini superuser sifatida bajarishingiz kerak.

Tez navigatsiya

Debian, Ubuntu da dasturlarni o'rnatish

DEB paketlari bilan ishlash uchun juda ko'p vositalar mavjud, lekin eng ko'p ishlatiladigani apt-get bo'lib, u standart vositalar to'plamiga kiritilgan. Ilovani o'rnatish uchun buyruqni kiriting:

apt-get install package_name

O'chirish uchun:

apt-get paket_nomini olib tashlang

APT o'rnatish uchun mavjud bo'lgan barcha paketlarning mahalliy ma'lumotlar bazasini va ularni qaerdan olish mumkin bo'lgan havolalarni saqlaydi. Ushbu ma'lumotlar bazasi vaqti-vaqti bilan buyruq bilan yangilanishi kerak:

apt-get yangilanishi

Kompyuterda eskirgan paketlarni (dasturlarni) yangilash uchun quyidagi buyruqlarni kiriting:

apt-get yangilash; apt-get yangilash

Fedora, Red Hat-da dasturlarni o'rnatish

APT ga o'xshash yordamchi dastur yum. Paketni sozlangan ombordan yuklab olish va o'rnatish uchun buyruqni yozing:

yum paket_nomini o'rnating

yum paket_nomini olib tashlang

Mahalliy yum ma'lumotlar bazasi saqlanmaydi, shuning uchun yangilashning hojati yo'q. Yangilanishlarni o'rnatish uchun quyidagi buyruqdan foydalaning:

yum yangilash

Yangilash uchun maxsus narsani tanlang:

yum paket_nomini yangilang

Mandriva-da dasturlarni o'rnatish

Mandriva paketlar bilan ishlash uchun urpmi deb nomlangan o'ziga xos vositalar to'plamiga ega. O'rnatish uchun:

urpmi paket_nomi

O'chirish uchun:

urpme paket_nomi

Mahalliy ma'lumotlar bazasini paketlar ro'yxati bilan yangilang:

urpmi. yangilash -a

Yangilanishlarni o'rnatish uchun:

urpmi - avtomatik tanlash

Arxivlardan dasturlarni o'rnatish (tarballs)

GZIP (gz, gz2 va boshqalar) yordamida siqilgan arxivlar uchun biz buni qilamiz:

tar -xvz f fayl nomi

BZIP (bz, bz2 va boshqalar) yordamida siqilgan arxivlar uchun bu biroz boshqacha:

tar -xvjf fayl nomi

Tar buyruqlari:

  • x – arxivdan fayllarni chiqarib olish;
  • v – ma’lumotni ekranda batafsil aks ettirish;
  • f – Majburiy variant. Agar ko'rsatilmagan bo'lsa, Tar fayl o'rniga lentani ishlatishga harakat qiladi;
  • z – gzip yordamida siqilgan jarayon arxivi;
  • j – bzip yordamida siqilgan arxivni qayta ishlash.

Buyruq bajarilgandan so'ng paket nomiga o'xshash nomli papka hosil bo'ladi. Keyin ushbu yaratilgan papkani buyruq bilan ochishingiz kerak:

cd papkasi_nomi

Keyin, ochilmagan arxivda, agar mavjud bo'lsa, README faylidagi ko'rsatmalarni o'qing. Har qanday holatda, agar dastur shaklda tuzilgan bo'lsa bajariladigan fayl, keyin paket odatda install.sh deb ataladigan .sh faylini o'z ichiga oladi

Hammaga salom!

Bu Linux boshlanuvchilari uchun ushbu uchta ajoyib buyruq nimani anglatishi va ular nima uchun kerakligi haqida qisqacha eslatma. Keling, ular aytganidek, boshidan boshlaylik. Ko'pgina dasturlar foydalanishdan oldin kompilyatsiya qilinishi kerak, ya'ni odam tushunadigan matndan kompyuter tushunadigan birliklar va nollar to'plamiga aylantirilishi kerak. Jarayon uch bosqichga bo'linadi: konfiguratsiya, yig'ish va o'rnatish. Tafsilotlar kesim ostida :)

./configure

Ushbu buyruq kompilyatsiya qilish uchun zarur bo'lgan kutubxonalar va sarlavha fayllarini qidiradi (bu qisman yoki to'liq C/C++ va shunga o'xshash tillarda yozilgan dasturlar uchun), shuningdek, maxsus parametrlarni o'rnatish yoki maxsus kutubxonalarni ulash, agar ./configure o'ziga kerak bo'lgan hamma narsani topadi, u yaratadi Makefayllar- dasturni yaratish uchun zarur bo'lgan fayl

Konfigurator parametrlarini shu tugmachalarning kalitlari va argumentlari yordamida sozlashingiz mumkin, masalan:

./configure --prefix=/opt/my_program

Kalit bilan --prefiks= Siz keyinchalik dasturingiz uchun prefiks vazifasini bajaradigan katalogni belgilashingiz mumkin (ya'ni ildiz katalogi). Buning sababi, nafaqat Linux dunyosida, balki fayl tizimining maxsus ierarxiyasi (HFS) mavjud bo'lib, unga ko'ra har qanday dastur xatosiz ishlashi uchun kompilyatsiya qilinishi va o'rnatilishi kerak.

Ko'pgina dasturlar konfiguratsiya qilingan uchta asosiy fayl tizimi prefikslari mavjud, xususan:

  • / - ROOT deb ataladigan operatsion tizimning ildiz katalogi
  • /usr - foydalanuvchi muhiti ilovalari joylashgan katalog
  • /usr/local - qo'lda, maxsus uchun tuzilgan foydalanuvchi dasturlari uchun qo'shimcha katalog operatsion tizim axlatxonaga aylanmadi

Agar siz ushbu kataloglardan birini ochsangiz, juda o'xshash tuzilmani ko'rishingiz mumkin, hech bo'lmaganda papkalar bo'ladi: bin, va hokazo, include, libs, sbin.

Yugursang ./configure kalitlarsiz, keyin standart prefiks (kompilyatsiya qilingan dastur o'rnatiladigan katalog) bo'ladi /usr/local, shuni esda tuting, agar siz dasturni ishga tushira olmasangiz, yo'lingiz bo'lmasligi mumkin YO'L.

Kalitdan tashqari --prefiks Konfiguratorda, qoida tariqasida, boshqa ko'plab kalitlar mavjud, agar siz ishga tushirsangiz, ularning barchasini ko'rishingiz mumkin:

./configure --help

qilish

Eng muhim va oddiy buyruq/dastur manba kodidan ilovalarni kompilyatsiya qilish tartibini ishga tushiradi. Sizning ishingiz uchun bu dastur maxsus fayllardan foydalanadi Makefayllar, bu biz konfiguratorga ko'rsatgan barcha parametrlar bilan dasturni yaratish jarayonini batafsil tavsiflaydi. Muvaffaqiyatli make buyrug'ining natijasi joriy katalogdagi kompilyatsiya qilingan dastur bo'ladi.

o'rnatish

Ushbu buyruq dasturni to'g'ridan-to'g'ri konfiguratsiya bosqichida ko'rsatilgan katalogga o'rnatadi; make install buyrug'ini bajargandan so'ng, siz yangi o'rnatilgan dasturni ishga tushirishingiz mumkin.

Keyingi so'z

Uchta buyruqni navbat bilan yozmaslik uchun ularni bir qatorga yozishingiz mumkin:

./configure && make && make install

&& - bu C/C++ tilidan kelgan AND operatori, ammo qobiq nuqtai nazaridan, bu keyingi buyruq faqat oldingi buyruq muvaffaqiyatli bajarilgan taqdirdagina bajarilishi kerakligini anglatadi, agar bittasi bo'lsa, bu juda qulaydir. bosqichlari xato bilan tugaydi.

Aslida make install qurilishni ham amalga oshirishi mumkin, chunki oʻrnatish vazifasi barcha topshiriqlarga bogʻliq (yaʼni, toʻgʻridan-toʻgʻri dasturni yaratish), demak, make qadamini oʻtkazib yuborish mumkin va agar siz ularni yozsangiz, faqat ikkita buyruq bajarilishi mumkin. bir qatorda:

./configure && o'rnatish

Omad sizga! Va o'qiganingiz uchun rahmat!

Dasturning so'nggi versiyasi kerak bo'lgan holatlar mavjud, ammo u tarqatish omborida emas. Yoki bu dastur biron sababga ko'ra u erda umuman qo'shilmagan. Ushbu dasturni olishning bir nechta variantlari mavjud, ulardan biri dasturni manba kodidan to'g'ridan-to'g'ri tarqatish uchun yaratishdir. Albatta, biz ochiq kodli dasturlar haqida gapiramiz. manba kodi:)

Dasturni yig'ish (kompilyatsiya qilish) - dasturchiga tushunarli bo'lgan ba'zi kompilyatsiya qilingan dasturlash tilida (masalan, C++) yozilgan uning dastlabki kodini tushunarli bo'lgan ikkilik kodga (nollar va birliklar ketma-ketligiga) o'zgartirish. markaziy protsessor kompyuter. Hamma dasturlash tillari kompilyatsiya qilinmagan. Masalan, Python-dagi kod uni ikkilik kodga tarjima qilmasdan darhol ishga tushirilishi mumkin (garchi bu ham mumkin). Dasturni yaratish uchun juda kuchli va afzal ko'p yadroli protsessorga ega bo'lish tavsiya etiladi. Hech qachon noutbuklarda dasturlarni kompilyatsiya qilmang! Bu ularning umr ko'rish davomiyligiga juda salbiy ta'sir qiladi (ular bunday yuklarga mo'ljallanmagan, agar sizda, albatta, o'yin noutbuki).

Dasturni manba kodidan yaratishda murakkab narsa yo'q. Esda tutish kerak bo'lgan asosiy narsa bitta qoida: paketlarni tarqatishda siz hech qachon usuldan foydalanmasligingiz kerak o'rnatish. Aks holda, kelajakda siz katta muammolarga duch kelasiz. Dasturni o'chirmoqchi ekanligingizni tushunganingizda (shu tarzda o'rnatilgan), lekin paket menejeri bu haqda bilmaydi. Va dasturning o'zi turli kataloglar bo'ylab tarqalgan bir necha yuzlab fayllardan iborat. Qo'rqinchlimi? Shuning uchun, paketli tarqatishlarda dastur, aslida, paketga yig'ilishi kerak. Keyin biror narsa yuz bersa, uni muammosiz olib tashlash mumkin. Men buni yozdim, chunki Linuxda dasturlarni kompilyatsiya qilish bo'yicha ko'plab qo'llanmalar aniq tasvirlangan o'rnatish. Shu tarzda o'rnatilgan dasturni faqat ikkita holatda olib tashlashingiz mumkin:

  • Agar sizda hali ham uning kodi bilan arxiv mavjud bo'lsa (u holda siz ishga tushirishingiz mumkin o'chirishni amalga oshiring);
  • agar dasturning manba kodi uni qo'llab-quvvatlasa.
make install dan foydalanmang!

Shuni ta'kidlash kerakki, har bir dasturni bir xil tarzda yig'ish mumkin emas. Shuning uchun, siz har doim manba kodi bilan arxivda joylashgan montaj ko'rsatmalarini o'qib chiqishingiz kerak. Ishlab chiquvchi u erga skript qo'ygan bo'ladi, u ishga tushirilganda hamma narsani o'zi bajaradi (kompilyatsiya qiladi va o'rnatadi, lekin biz o'rnatishni eslaymiz) yoki u yig'ish uchun mos kelmasligi mumkin. qilish, lekin sizga boshqa yig'ish tizimi kerak. Bundan tashqari, dasturni yaratish uchun siz unga zarur bo'lgan montaj bog'liqliklarini o'rnatishingiz kerak (bular prefiksli paketlar). -dev). Dasturni muammosiz o'rnatish yoki o'chirish uchun paketga tezda yig'ish uchun, deb nomlangan yordamchi dastur mavjud. o'rnatishni tekshiring. Bu sizga tizimga xos paket yaratishga imkon beradi ( deb yoki rpm), bu sizga uni o'rnatish/o'chirish uchun standart paket menejeridan foydalanish imkonini beradi

GNU/Linux-da dasturlar yaratish uchun siz (asosan) dasturdan foydalanasiz qilish dan ko'rsatmalarni ishga tushiradi Makefile, lekin juda ko'p GNU/Linux distributivlari mavjud va ularning barchasi har xil bo'lgani uchun dasturni kompilyatsiya qilish uchun har bir tarqatish uchun kutubxonalar va sarlavha fayllari joylashgan yo'llarni alohida ko'rsatish kerak. Dasturchilar har bir tarqatishni o'rgana olmaydi va har biri uchun alohida Makefiles yarata olmaydi. Shuning uchun ular tizimni "o'rganadigan" va olingan bilimlarga muvofiq Makefile yaratadigan konfiguratorlar bilan kelishdi. Qurilish uchun bizga kompilyatorlar kerak: ular paketga bog'liqliklarda ko'rsatilgan qurish-asosiy, shuning uchun uni barcha bog'liqliklar bilan o'rnatish kifoya. Hali ham kerak autoconf Va avtomobil ishlab chiqarish. Agar dastur yozilgan bo'lsa Qt, keyin odatda u yoki jamoa tomonidan yig'iladi qmake(albatta, u o'rnatilgan bo'lishi kerak) yoki ba'zilarida loyiha faylini ochish orqali IDE(odatda Qt yaratuvchisi) va undagi yig'ilishlar.

Avval siz tizimni tayyorlashingiz kerak. Buning uchun, keling, o'rnatamiz zarur to'plam asboblar:

S udo apt install build-essential gcc devscripts git fakeroot automake autoconf

Siz manba kodini olishingiz mumkin turli yo'llar bilan. Internetdan yuklab oling (masalan, ishlab chiquvchining veb-saytidan), manba kodi bilan omborni klonlash va hokazo. Birinchi holda, umuman olganda, hamma narsa aniq. Ikkinchisida: dastur git omborida (on GitHub, Masalan). Biz ushbu omborga o'tamiz va u erdan kod bilan arxivni yuklab olishimiz mumkin

Shunday qilib, butun omborni o'zingizga nusxa ko'chiring (ishlab chiquvchilar kabi). Masalan, dasturni olaylik mgba. Bu emulyator o'yin konsoli Nintendo GameBoy. Repozitoriy manzili. Keling, o'zimiz uchun nusxa ko'rsatamiz:

git clone https://github.com/mgba-emu/mgba.git

Uy katalogingizda siz uning manba kodi bilan katalogga ega bo'lasiz. Dasturning xuddi shu sahifasida yig'ish bo'yicha ko'rsatmalar mavjud.

Biz diqqat bilan o'qiymiz. Terminalni oching va manba kodi bilan katalogga o'ting:

cd ~/mgba

Va biz dasturni yig'amiz:

mkdir qurish
CD qurish
cmake -DCMAKE_INSTALL_PREFIX: PATH=/usr ..
qilish
sudo checkinstall -D

Sizdan ba'zi ma'lumotlar so'raladi (paket nomi, versiyasi va boshqalar. Barcha maydonlarni to'ldirish tavsiya etiladi). Yig'ishdan so'ng yuqoridagi katalogda (ya'ni mgbada) dasturga ega deb to'plami paydo bo'ladi. Endi siz uni ikki marta bosish yoki buyruq yordamida o'rnatishingiz mumkin sudo dpkg -i packagename.deb. Agar montaj paytida siz xato xabarlarini olishni boshlasangiz, ularni diqqat bilan o'qing. Ba'zi montaj bog'liqliklari etishmayotgan bo'lishi mumkin.

Keling, konfiguratordan foydalanadigan biroz boshqacha misolni olaylik. Bunday holda, skriptlar manba kodi bo'lgan katalogda joylashgan: autogen.sh, sozlash va shunga o'xshashlar. Autogen.sh skript hosil qiladi sozlash, uning yordamida siz dasturni yig'ishdan oldin sozlashingiz mumkin (ha, ha, konfiguratorning konfiguratori). Har doimgidek, ma'lum bir dasturni yig'ish bo'yicha ko'rsatmalarni o'qishni unutmang. Faraz qilaylik, arxivda autogen.sh skripti mavjud. Keling, uni bajaramiz:

./autogen.sh

Amalga oshirilgandan so'ng, konfiguratsiya fayli paydo bo'lishi kerak. Dasturni qaysi parametrlar bilan yaratishingiz mumkinligini ko'rish uchun quyidagilarni kiriting:

./configure --help

Barcha mavjud variantlarni ko'rib chiqing. Odatda, bu turli xil plaginlarni qo'llab-quvvatlash, muqobil interfeys bilan yig'ish, hatto boshqa protsessor arxitekturasi uchun yig'ish bo'lishi mumkin. Aytaylik, dasturda yozilgan interfeysdan foydalaniladi GTK+ 2, lekin muqobil mavjud GTK+ 3. Keyin dastur konfiguratsiyasi quyidagicha ko'rinadi:

./configure --with-gtk3

./configure --enable-gtk3

Har bir narsa ko'rsatmalarda batafsil tavsiflanadi. O'rnatish yo'lini belgilash kabi ma'lum bir standart variantlar to'plami mavjud (./configure --help ni kiritgandan so'ng, ular birinchi navbatda yoziladi):

Prefiks=/usr

Configure-ni ishga tushirgandan va kodni muvaffaqiyatli sozlagandan so'ng, siz qurilishni ishga tushirishingiz mumkin:

sudo checkinstall

Ana xolos. Ko'rib turganingizdek, bu erda murakkab narsa yo'q. Yashirmayman, ishlab chiquvchi yuqori sifatli montaj bo'yicha ko'rsatmalar bilan bezovta qilmagan. Ammo bu kamdan-kam hollarda sodir bo'ladi. Men sizning e'tiboringizni quyidagilarga ham qaratmoqchiman: dasturni manba kodidan yaratishga faqat oxirgi chora sifatida murojaat qiling. Agar foydalanayotgan bo'lsangiz Ubuntu LTS, keyin sizga kerak bo'lgan dastur (yoki yangiroq versiya) Ubuntu'ning so'nggi versiyasida mavjudligini bilish uchun (Google yordamida) qarang. Yoki, ehtimol, bor

terminal va buyruqlar

Arxitekturangiz uchun ilovaning kerakli versiyasi Ubuntu tarqatishda oddiygina mavjud emasligiga tez-tez duch kelganmisiz, lekin bu dastur ishlab chiquvchilarning veb-saytida .tar.gz arxividagi manba kodi shaklida mavjud. O'ylaymanki, ko'pchilik buni biladi bu holat, lekin hamma ham bu muammoni hal qilish yo'llarini izlashni davom ettirmadi va shunchaki dasturning boshqa analogini yoki biroz eskiroq versiyasini qidirib, ishlashni davom ettirdi.

Men darhol Linuxga yangi kelganlar uchun bir nechta so'zlarni qo'shmoqchiman; ushbu maqoladan biror narsa qilishdan oldin terminalni va u bilan ishlash uchun ishlatiladigan buyruqlarni yaxshilab o'rganing, mana yoki tarmoqdagi materiallarni o'qing.

  • Uchun ilovalar tuziladi Bizga, albatta, ishlab chiquvchi vositalari kerak bo'ladi, bizning holatlarimizda bu kompilyator va boshqa qo'shimcha dasturlar, asosiy ish Albatta, biz make yordam dasturi tomonidan bajariladi va buyruq qatori(terminal) biz bo'ladigan oshxonamiz kabi bo'ladi tayyorlash/yig'ish/o'rnatish bizning dasturimiz manbadan. IN Linux terminali sukut bo'yicha mavjud, sizning qulayligingiz uchun siz o'zingiz uchun odatiy bo'lgan har qanday boshqa funktsionalni o'rnatishingiz mumkin, masalan, men Guake-dan foydalanaman, standartga nisbatan juda ko'p imkoniyatlar mavjud, bu erda nusxa ko'chirish va sozlash oson. CTRL +C, CTRL+V va boshqalardan foydalangan holda buyruqlar yoki istalgan matnni joylashtirish, bu konsol bilan ishlashni qulayroq qiladi.
  • 1. Ilovalarni manbadan yaratishni qaerdan boshlash kerak, albatta, ilovani tar.gz yoki tar.bz2 arxiviga yuklab oling, mening holimda bu, masalan, Gimp 2.9.2 ilovasi, garchi bizning holatimizda arxiv tar.gz formatida emas va tar.bz2, bu hech qanday farq qilmaydi, uni yuklab oling, keyin arxivni o'ng tugmasini bosing - Bu yerdan chiqarib oling.

Bu, ehtimol, birinchi bosqich, keyin nima qilamiz? Va keyin biz terminalni ishga tushiramiz va fayllar bilan ochilmagan papkamizga o'tamiz:

CD /home/linux/Yuklashlar/gimp-2.9.2/ ls

  • 2. Yig'ish uchun manbalarni tayyorlashni boshlashdan oldin, men sizga birinchi navbatda INSTALL faylini ochib, tanishib chiqishingizni maslahat beraman, siz ko'p narsani topasiz. foydali ma'lumotlar, V bu fayl dasturni qanday o'rnatishni, qanday buyruqlarni bajarish kerakligini va juda ko'p qiziqarli narsalarni tasvirlaydi. Endi men sizga o'rnatishni maslahat beraman qo'shimcha paket auto-apt deb ataladi, u siz uchun juda ko'p muntazam ishlarni bajaradi.
sudo apt-get install auto-apt

Men uchun juda ko'p muntazam ishlarni qilish nimani anglatadi, siz so'raysiz, agar dastur manbasi konfiguratsiyasini ishga tushirish ushbu paketning prefiksi bilan, masalan, quyidagi shaklda:

Auto-apt -y run ./configure

Albatta, siz ushbu paketning yordamisiz konfiguratsiyani amalga oshirishingiz va oddiygina buyruqni bajarishingiz mumkin:

./configure

Agar siz konfiguratsiyani prefiks bilan amalga oshirsangiz - auto-apt -y run, keyin yig'ish uchun manbalarni tayyorlash da boʻlib oʻtadi avtomatik rejim, ya'ni bu buyruq avtomatik ravishda siz uchun barcha kerakli fayllar va kutubxonalarni yuklab olishi va o'rnatishi va hamma narsani qondirishi mumkin. bog'liqliklar qaysi talab qilinadi.

  • 3. Qachon haqiqiy ish hamma narsa juda silliq emas, balki bir holatda hamma narsa yaxshi ketadi va yig'ish uchun manba kodini tayyorlash bosqichi Bu xatosiz o'tadi, lekin boshqa holatlarda va bu ko'pchilik bo'lsa, siz turli xil xatolarga duch kelasiz, masalan, dastlabki kodni keyingi tayyorlash uchun u yoki bu paket etarli emas. Ko'pgina hollarda, etishmayotgan paketning nomi yoziladi.

Biz yo'qolgan paketni buyruq bilan o'rnatishga harakat qilamiz:

Sudo apt-get install package_name

Yuqoridagi buyruqni bajarishda paket aniqlanmasa, quyidagi kombinatsiya tez-tez yordam beradi; biz keshda etishmayotgan paketlarni qidiramiz:

Apt-cache qidiruv pakage_name

  • Ushbu buyruqni bajarganingizdan so'ng siz mos paketni topishingiz mumkin, ko'pincha siz mos paketni topa olmaysiz, lekin siz paketning aniq nusxasini topishingiz mumkin, lekin dev prefiksi ya'ni paketga o'xshash paket_nomi-dev va undan qaramliklarni qondirish uchun foydalanishingiz mumkin.
  • 4. Qurilish uchun manbalar konfiguratsiyasini muvaffaqiyatli tugatgandan so'ng, paketni o'rnatish tavsiya etiladi. o'rnatishni tekshiring bu sizning tarqatish uchun dastur paketini yig'ishni osonlashtiradi.
sudo apt-get o'rnatishni tekshiring

Paketni o'rnating, keyin buyruqni bajarishingiz mumkin:

O'rnatishni tekshiring - D

  • Xususiyat -D deb paketini, atributini yaratadi -R Fedora, RHEL, ASP Linux, ALT Linux, Mandriva, openSUSE tarqatishlarida ishlatiladigan rpm paketini yaratadi, qo'shimcha atribut ham mavjud -S Slackware-da ishlatiladigan paketni yaratadi.

Mening holimda Ubuntu-da ishlayapman va buyruqni bajardim atribut - D, keyin biz dasturni tayyor Deb formatidagi paketga yig'amiz, bizga aniqlovchi ma'lumotlar kerak bo'ladi, masalan, paketga tavsif qo'shish, chunki siz uni yig'ayotganingiz va shunga mos ravishda tavsif butunlay toza va sizdan talab qilinadi qisqacha ma'lumot Bu ilova nima uchun? Mening holatimda, men tekshirganimdek, quyidagi maydonlar ham avtomatik ravishda to'ldiriladi:

1 - Xulosa: [ EOF ] 2 - Ism: [ gimp ] 3 - Versiya: [ 2.9.2 ] 4 - Reliz: [ 1 ] 5 - Litsenziya: [ GPL ] 6 - Guruh: [ checkinstall ] 7 - Arxitektura: [ i386 ] 8 - Manba joylashuvi: [ gimp-2.9.2 ] 9 - Muqobil manba manzili: 10 - Talab qiladi: 11 - Ta'minlaydi: [ gimp ] 12 - Mojarolar: 13 - O'zgartirishlar:

  • Ko'rib turganingizdek, qurishdan oldin konfiguratsiya muvaffaqiyatli yakunlanganmi yoki yo'qmi, qanoatlantirilmagan bog'liqliklar yoki boshqa qarama-qarshiliklar mavjud bo'lsa, tekshirish o'tkaziladi; agar hamma narsa yaxshi bo'lsa, paket muammosiz quriladi.

Men uni paketni yaratmasdan, buyruqlarni bajarmasdan o'rnatdim:

O'rnatishni amalga oshiring

Agar o'chirmoqchi bo'lsangiz o'rnatilgan dastur, siz buyruqni bajarishingiz kerak:

O'chirishni amalga oshiring

yuqoridagi buyruq avtomatik ravishda siz o'rnatgan dastur bilan bog'liq bo'lganlarni o'chirib tashlaydi va uchinchi tomonning hech narsasiga ta'sir qilmaydi, kataloglar bo'ylab ishlamaslik va uni siz ishlagan, ya'ni konfiguratsiyani tayyorlagan dastur katalogidan ishga tushirish tavsiya etilmaydi. , va boshqalar.

Garchi hamma narsa xatosiz o'tgan bo'lsa-da, butun jarayon juda uzoq davom etdi, Gimp-ni manba kodidan o'rnatgunimga qadar taxminan 20 daqiqa davom etdi, men borib kofe tayyorlashga va o'rnatish jarayonini tomosha qilishga muvaffaq bo'ldim, hamma narsa uzoq vaqt davomida sodir bo'ladi. juda ko'p ekanligi turli papkalar dastur manba fayllarini tarqatadi, har bir fayl o'z maqsadiga ega va ma'lum bir katalogda joylashgan bo'lishi kerak, shuning uchun make install ni bajargandan so'ng, kerakli kataloglarga minglab manba fayllarni o'rnatish jarayoni sodir bo'ladi.

Ilovani manbadan o'rnatish shunday bo'ladi, ha, bir qarashda hammasi unchalik oddiy emas, men buni oson bo'ladi demadim, lekin agar urinib ko'rsangiz, fikrlash va yechim topish usullarini juda yaxshi rivojlantiradi. berilgan vaziyat, bu hatto juda yaxshi.

Bu, ehtimol, hammasi, agar sizda yuqoridagi material bo'yicha savollaringiz bo'lsa yoki siz o'rnatishga harakat qilsangiz va xatolarga duch kelsangiz, materialga sharhlarda so'rang, biz birgalikda yechim izlaymiz.