Sozlash, yaratish va o'rnatishning jozibali sehri. Linuxda dasturlarni o'rnatish (.tar, .gz, .bz, RPM va DEB) Kerakli dasturiy ta'minot

Ko'pincha kerakli paketlarni faqat manba shaklida topish mumkin, bu maqolada manba kodidan paketni o'rnatish usuli tasvirlangan.

Qutidan chiqarish

Dasturlar odatda paketli arxivlarda tarqatiladi, bular kengaytmali fayllardir

.tar.gz (ba'zan .tgz) .tar.bz2

Arxivlovchi va paketchi o'rtasidagi farqni tushunishingiz kerak.

Dastur katalog va fayllarni arxivlash uchun ishlatiladi smola; uning ishining natijasi kengaytmali fayldir .tar. Taxminan aytganda, bu fayl tizimining nusxasi - ularning atributlari va kirish huquqlariga ega bo'lgan kataloglar va fayllar bitta faylga joylashtirilgan.

Ushbu fayl arxivlangan fayllarning umumiy hajmidan biroz kattaroq bo'ladi. Shuning uchun (yoki boshqa sabablarga ko'ra) ular paketlovchilardan foydalanadilar - ma'lumotlarni yo'qotmasdan fayl hajmini kamaytirishga imkon beruvchi dasturlar.

Dastur smola ochish mumkin, shuning uchun qo'ng'iroq qilish shart emas qurol, yoki oddiygina dasturni aytib berishingiz mumkin smola birinchi navbatda faylni ochish kerak. Masalan, buyruq

tar -xvf< some_app_name>.tar.gz

zudlik bilan o'ramini ochadi va ochadi. Fayllar va kengaytmalar o'rtasidagi farq

.tar.gz

.tar.bz2

faqat turli paketlovchilar ishlatilgan, bu dastur smola siqish usulini avtomatik ravishda belgilaydi va qo'shimcha imkoniyatlar bu holda talab qilinmaydi.

Paketni ochgandan so'ng, siz paydo bo'lgan katalogga o'tishingiz kerak, quyida tavsiflangan barcha buyruqlar paketning manba kodi bilan katalogda bajariladi;

CD< имя_пакета>*

Paketni qurish

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 yaratish uchun har bir tarqatish uchun kutubxonalar va sarlavha fayllari joylashgan yo'llarni alohida ko'rsatish kerak. Dasturchilar har bir tarqatishni o'rgana olmaydi va alohida yarata olmaydi Makefile. Shuning uchun ular tizimni "o'rganadigan" va olingan bilimlarga muvofiq yaratadigan konfiguratorlarni o'ylab topishdi. Makefile. Ammo ular konfiguratorda to'xtamadilar va konfiguratorlarning konfiguratorlarini o'ylab topishdi ... o'sha erda ular to'xtashdi.

Qurish uchun bizga kompilyatorlar kerak: ular paketga bog'liqliklarda ko'rsatilgan qurish - muhim, shuning uchun uni barcha bog'liqliklar bilan o'rnatish kifoya. Hali ham kerak autoconf Va avtomobil ishlab chiqarish.

Shunday qilib, manbadan biror narsa qurish uchun avvalo konfiguratorni qurishingiz kerak; konfiguratorni qanday qurish configure.in faylida tasvirlangan. Konfiguratorni yaratish uchun siz ishga tushirishingiz kerak

./ bootstrap ./ autogen.sh

Agar arxivda bunday skriptlar bo'lmasa, siz quyidagi buyruqlarni ketma-ket bajarishingiz mumkin:

aclocal autoheader automake --gnu --add-missing --nusxa --xorijiy autoconf -f -Wall

Bu buyruqlarning barchasi fayldan foydalanadi configure.in. Ushbu buyruqlar bajarilgandan so'ng fayl yaratiladi sozlash. Shundan so'ng, barcha bog'liqliklar mavjudligini tekshirish uchun konfiguratorni ishga tushirishingiz kerak, shuningdek qo'shimcha qurish opsiyalarini o'rnatishingiz kerak (agar iloji bo'lsa) va o'rnatish natijasini ko'rishingiz kerak (ixtiyoriy - mavjud bo'lmasligi mumkin).

./ sozlash

Konfigurator olingan bilim va fayl asosida Makefile faylini yaratadi makefile.am. Siz konfiguratorga dastur manbalarida taqdim etilgan variantlarni o'tkazishingiz mumkin, bu sizga ma'lum dastur xususiyatlarini yoqish/o'chirish imkonini beradi, odatda siz ular haqida buyruq yordamida bilib olishingiz mumkin;

./ configure --help

Kabi standart variantlar to'plami ham mavjud

Prefiks=

O'rnatish uchun qaysi katalogdan foydalanishni belgilaydi. Odatda Ubuntu uchun

--prefiks =/ usr --prefiks =/ usr/ mahalliy

BIZDAN oxirida slash! Endi buyruq bilan dasturning o'zini qurish jarayonini boshlashingiz mumkin

qilish

Qurilish uchun oddiy foydalanuvchi imtiyozlari etarli. Qurilishning tugashi konsoldagi buyruqlar "tasodifiy" bajarilishini to'xtatgan va hech qanday so'z yo'q bo'lgan payt deb hisoblanishi mumkin. xato. Endi hamma narsa tuzilgan va o'rnatishga tayyor.

O'rnatish

ga sarflangan sa'y-harakatlar To'g'ri o'rnatish kelajakda ular o'rnatilgan dasturiy ta'minotni o'chirish yoki yangilash holatlarida o'zlari uchun ko'proq pul to'laydilar.

To'g'ri o'rnatish (variant № 1)

Yordamchi dastur yordamida o'rnatish o'rnatishni tekshiring. O'rnatish uchun:

sudo apt-get o'rnatishni tekshiring

Minus bu usul: o'rnatishni tekshiring barcha manbalarni tushunmaydi, chunki dastur muallifi maxsus o'rnatish skriptlarini yozishi mumkin va o'rnatishni tekshiring ularni tushunmaydi.

Deb paketini yaratish va o'rnatish uchun siz ishga tushirishingiz kerak

sudo tekshiruvini o'rnating

To'g'ri o'rnatish (variant № 2)

Qo'lda deb paketini tezda yarating.

Oldingi usuldan asosiy farq shundaki, bu holda siz paketni qo'lda yaratasiz va siz kiritgan barcha o'zgarishlarni kuzatib borasiz. Agar manbalar paketni yaratishni qo'llab-quvvatlamasa, bu usul sizga ham mos keladi o'rnatishni tekshiring.

    Biz vaqtinchalik katalogga o'rnatamiz, u erda o'rnatilgan fayllarning barcha to'plamini olamiz:

fakeroot make install DESTDIR=`pwd`/tempinstall

    Keling, “paket ildizida” DEBIAN katalogini yaratamiz va /etc ga DEBIAN/conffiles ichiga kirishi kerak bo'lgan barcha fayllar ro'yxatini qo'shamiz:

cd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/ conffiles

    Keyin biz quyidagi tarkibga ega DEBIAN/control faylini yaratamiz:

Package: package_name Versiya: 1.2.3 Arxitektura: amd64/i386/armel/all Maintainer: Ismingizni kiritishingiz mumkin, axlat qilishingiz mumkin, lekin agar uni bo'sh qoldirsangiz, dpkg qasam ichadi Bog'liq: Bu yerda siz paketlar ro'yxatini kiritishingiz mumkin. vergul bilan ajratiladi. Ustuvorlik: ixtiyoriy Tavsif: Shuningdek, hech qanday ogohlantirishlar bo'lmasligi uchun biror narsani kiritishingiz kerak

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

    Biz deb paketini yaratamiz, buning uchun biz bajaramiz:

dpkg -b vaqtincha o'rnatish

    Chiqish tempinstall.deb bo'lib, biz uni o'rnatamiz

sudo dpkg -i tempinstall.deb

O'rnatish (variant № 3)

Noto'g'ri o'rnatish

Ushbu usulning kamchiligi shundaki, agar siz to'g'ridan-to'g'ri orqali o'rnatsangiz o'rnatish, keyin siz odatda paketni olib tashlay olmaysiz yoki yangilay olmaysiz. Bundan tashqari, o'rnatish yangi versiya eskisi ustiga 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. Bu jarayondan so'ng, hazm bo'ladigan shaklda nima joylashtirilganligi va qayerda ekanligi 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. Bunga qo'shimcha ravishda, siz o'chirilmagan manba daraxtini saqlashingiz va o'chirish qoidalarini yaratishingiz kerak bo'ladi.

O'rnatish uchun siz qilishingiz kerak

sudo make install

Ushbu usul yordamida o'rnatilgan paketni olib tashlash uchun uni dastur manbalarining ildiz katalogida (siz make install ishga tushirgan joyda) bajarishingiz kerak.

sudo o'chirishni amalga oshiradi

Xatolar

Ko'pincha konfiguratsiya bosqichida konfigurator ma'lum bir kutubxona yo'qligi haqida xabar beradi. U xabar bergan kutubxona nomi har doim ham Ubuntu'dagi paket nomiga mos kelmaydi. O'z tajribamga ko'ra, men sizga Synaptic-dan kerakli paketni qidirishni maslahat beraman, agar siz nomdagi -dev prefiksi bilan farq qiladigan bir nechta paketlarni topsangiz, u holda -dev paketini o'rnatishingiz kerak (odatda u; shuningdek, ishlab chiqilmagan paketni ham o'z ichiga oladi). Siz http://packages.ubuntu.com/ dan foydalanib, paket mazmunini qidirishga kutubxona nomini kiritish orqali qidirishingiz mumkin, xuddi shunday, agar siz dev va no-dev ni topsangiz, ikkalasiga ham kerak bo'ladi. Xo'sh, yoki shunchaki Google'da qidiring.

Kerakli dasturiy ta'minot

Ta'rif oxirida mm ko'rsatilgan paketlar C++ dasturlari uchun paketlardir. bmpx uchun ro'yxat, lekin deyarli har qanday GTK2/Gnome dasturiga mos keladi. Shunday qilib, agar siz uni yig'a olmasangiz, unda ushbu ro'yxatga qarang va uni o'rnatganingiz bilan solishtiring.

Kompilyatsiya:Ish vaqti:
Xlibx11-devlibx11-6
GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
GTK+libgtk2.0-dev,gtk-doc-vositalarilibgtk2.0-0
GTKMMlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
Gladelibglade2-devlibglade2-0
GladeMMlibglademm-2.4-devlibglademm-2.4-1c2a
XMLlibxml2-devlibxml2
XML++libxml++2.6-devlibxml++2.6c2a
DBuslibdbus-1-dev,libdbus-glib-1-devlibdbus-1-2, libdbus-glib-1-2
Alsalibasound2-devlibasound2
HALlibhal-dev,libhal-storage-devlibhal1,libhal-saqlash1
Gaminlibgamin-devlibgamin0
Neonlibneon25-devlibneon25
TagLiblibtagc0-devlibtagc0
Ishga tushirish - xabar berishlibstartup-notification0-devlibstartup-notification0
Boostlibboost-dev,libboost-fayl tizimi-devlibboost-fayl tizimi1.33.1
MusicBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
GStreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0,libgstreamer-plugins-base0.10-0

Android uchun ishlanmalar bilan tanishish istagi bor edi. Men Android Studio dasturini yuklab olib, uni o'chirib tashladim. Men boshqa o'rnatish variantlarini izlashga qaror qildim. Qidiruv paytida men Ubuntu Make (o'tmishda Ubuntu Developer Tools Center) bilan tanishdim va bu qisqa eslatmada men bu haqda sizga aytib bermoqchiman.

Ubuntu Developer Tools Center Ubuntu 14.10 (Utopic Unicorn) bilan birga yangiliklarda paydo bo'ldi, ammo, menimcha, u keng e'tiborni jalb qilmadi. Ko'p o'tmay, loyiha Ubuntu Make deb o'zgartirildi, u hozirgi kunga qadar 0.4 versiyasiga ko'tarildi. Ishlab chiqish Canonical dasturiy ta'minot muhandisi Didier Roche tomonidan amalga oshiriladi. Ubuntu Make Python 3.4 da yozilganligi ham diqqatga sazovor.

Loyihaning asosiy maqsadi Ubuntu-da ishlab chiquvchilarning umumiy ehtiyojlarini tez va oson o'rnatishdir. Va "umumiy ehtiyojlar" dan hali uzoq yo'l bo'lsa-da (o'rnatish uchun mavjud paketlar ro'yxati hali ham kichik), "tez va oddiy" bilan hamma narsa yaxshi.

Yoniq bu daqiqa Ubuntu Make yordamida quyidagilarni o'rnatishingiz mumkin:

  • Android Studio
  • Tutilish
  • IntelliJ Idea Community Edition
  • PyCharm jamoat nashri
  • go-lang Google kompilyatori
  • Stencyl o'yin ishlab chiqaruvchisi IDE

O'rnatish

Ubuntu 15.04 da ubuntu-make qutidan tashqarida mavjud, 14.04 va 14.10 versiyalari foydalanuvchilaridan ppa dan o'rnatish so'raladi:

Sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo apt-get install ubuntu-make

Foydalanish

Ubuntu-make bilan o'rnatish juda oddiy. Uchun Android o'rnatish Studiya faqat terminalda ishlaydi:

Umake android
Bir oz kuting va natija mana:

Chiziqdagi belgi va openjdk (agar Java tizimda bo'lmasa) kiritilgan. Ishga tushgandan so'ng, "studiya" sdk-ni tortib oldi va 1.0.2 versiyasiga yangilandi. Telefonda "Salom dunyo" ishga tushirildi va funksionallik testi yakunlandi.

Golang xuddi shunday o'rnatiladi:

PyCharm, Eclipse, Idea uchun yana bitta argument qo'shiladi:

Umake ide pycharm

Paketni olib tashlash uchun xuddi shu qatorga "-r" argumentini qo'shing:

Umake ide pycharm -r

Fikr

Kimdir aytadi: “Ko'p ish qilish kerak. Arxivni yuklab oling, uni oching, chiziqchadagi belgini tekshiring va Java-da tekshiring. Sizga ubuntu make kerakmi? Qabul qilaman, ko'p ish bo'lmasligi mumkin, lekin men paketni o'zim uchun foydali deb topdim. U mening vaqtimni tejab, odatdagidan xalos bo'ldi. Umid qilamanki, bu sizga ham foydali bo'ladi.

Bryansk Linux foydalanuvchilari guruhi va www.rm.pp.ru dan material

Har bir tarqatish yadroni yig'ish uchun o'ziga xos xususiyatlarga ega va ushbu maqola Debian Etch-da buni qanday amalga oshirishga qaratilgan. Bundan tashqari, tizimingizda ma'lum funksiyalar yoki yangi uskunani qo'llab-quvvatlash zarur bo'lganda, yadroga ma'lum yamoqni qanday qo'llash kerakligi haqidagi savolni ochib beradi. Maqola birinchi navbatda ko'proq o'qitilgan foydalanuvchilar uchun mo'ljallangan va bu usul kerakli darajada ishlashiga kafolat yo'q va barcha tavsiflangan harakatlar va javobgarlik sizning zimmangizga tushadi.

  1. Eslatma
  2. Yamoqlarni qo'llash
  3. Yadro konfiguratsiyasi
  4. Yadroni kompilyatsiya qilish
  5. Yangi yadro o'rnatilmoqda
  6. Muammolar
  7. Havolalar

Eslatma

Yadroni yig'ishning ikkita usuli tasvirlanadi. Birinchi variant sizning yoki boshqa tizimingizga o'rnatilishi mumkin bo'lgan .deb paketlarini yaratish bo'ladi. Ikkinchi usul - "an'anaviy" deb ataladigan usul.

Birinchi usul. Yadroni .deb paketlariga qurish

Yadroni kompilyatsiya qilish uchun kerakli paketlarni o'rnatish

Birinchidan, paketlar ro'yxatini yangilaymiz:

# apt-get yangilanishi

Bizga kerak bo'lgan paketlarni o'rnatamiz:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Yadro manbalarini yuklab oling

/usr/src katalogiga o'ting, www.kernel.org saytiga o'ting va kerakli yadro versiyasini tanlang. Bunday holda, linux-2.6.23.1.tar.bz2 versiyasi ko'rib chiqiladi. Yuklab oling:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Keling, manbalarni ochamiz va ramziy havola yaratamiz:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (oldingi simli havolani olib tashlang) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Yamoqlarni qo'llash

Buni ixtiyoriy yoki keraksiz qilmang!

Ba'zan mavjud yadroda qo'llab-quvvatlanmaydigan drayverlar yoki vositalar talab qilinadi, masalan, virtualizatsiya texnologiyasi yoki joriy versiyada bo'lmagan boshqa xususiyatlar. Har qanday holatda, bu yamoqlar deb ataladigan narsalarni (agar mavjud bo'lsa) qo'llash orqali tuzatilishi mumkin.

Shunday qilib, siz /usr/src ga kerakli yamoqni (masalan, uni patch.bz2 deb ataymiz) yuklab oldingiz deb faraz qilaylik. Yuklab olingan yamoqni manbalarimizga qo'llaylik (Siz hali ham /usr/src/linux katalogida bo'lishingiz kerak):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | yamoq -p1

Birinchi buyruq faqat sinov bo'lib, manbalarga hech qanday o'zgartirish kiritilmaydi. Agar birinchi buyruqdan keyin hech qanday xatolik yuzaga kelmasa, yamoqni qo'llash uchun ikkinchi buyruqni ishga tushirishingiz mumkin. Hech qanday holatda birinchi buyruqdan keyin xatoliklar yuzaga kelgan bo'lsa, ikkinchi buyruqni bajarmasligingiz kerak!

Shunday qilib, siz yadro manbalariga yamoqlarni qo'llashingiz mumkin. Misol uchun, faqat 2.6.23.8 yadrosida mavjud bo'lgan ba'zi xususiyatlar mavjud va manba kodi kerakli funksiyalarni o'z ichiga olmaydi, lekin patch-2.6.23.8.bz2 chiqarildi. Siz ushbu yamoqni 2.6.23 yadro manbalariga qo'llashingiz mumkin, lekin 2.6.23.1 yoki 2.6.23.3 va hokazolarga emas. Bu haqda ko'proq ma'lumot olishingiz mumkin:

Prefikslar (prepatches) - alfa relizlarga ekvivalent; yamoqlar 3 xonali versiyaga ega bo'lgan to'liq oldingi nashr manbalariga qo'llanilishi kerak (masalan, 2.6.12-rc4 yamog'i 2.6.11 versiyasi manbalariga qo'llanilishi mumkin, lekin 2.6.11.10 versiyasiga emas.)

Bu shuni anglatadiki, agar biz 2.6.23.8 yadrosini yaratmoqchi bo'lsak, 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23) manbalarini yuklab olishimiz kerak. .tar.gz) ikkinchi usulda "an'anaviy" usulda qo'llaniladi!

2.6.23 yadrosiga 2.6.23.8.bz2 yamog'ini qo'llang:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | yamoq -p1

Yadro konfiguratsiyasi

Mavjuddan foydalanish yaxshi fikr konfiguratsiya fayli ishlaydigan yadro va yangisi uchun. Shunday qilib, biz mavjud konfiguratsiyani /usr/src/linux-ga nusxalashtiramiz:

# tozalang && mrproper qiling # cp /boot/config-`uname -r` ./.config # make menuconfig

shundan so'ng grafik yadro konfiguratsiya menyusi yuklanadi. Konfigurator menyusida "Muqobil konfiguratsiya faylini yuklash" bandini tanlang va "OK" tugmasini bosing. Keyin (agar kerak bo'lsa) menyu bo'ylab harakatlanish orqali yadro konfiguratsiyasiga kerakli o'zgarishlarni kiriting (yadro konfiguratsiyasi tafsilotlarini www.google.com saytida topish mumkin). Tugatganingizda va "Chiqish" tugmasini bosganingizda, "Yangi yadro konfiguratsiyasini saqlamoqchimisiz?" Degan savolga "Ha" deb javob bering.

Yadroni kompilyatsiya qilish

Yadroni yaratish faqat ikkita buyruqda amalga oshiriladi:

# make-kpkg clean # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

--append-to-version= dan so'ng o'zingizga yoqqan ismni yozishingiz mumkin, lekin u minus belgisi (-) bilan boshlanishi va bo'sh joy bo'lmasligi kerak.

.deb paketlarini kompilyatsiya qilish va qurish jarayoni ancha uzoq davom etishi mumkin. Hamma narsa yadro konfiguratsiyasiga va protsessoringizning imkoniyatlariga bog'liq bo'ladi.

initrd.img yaratish bilan muammoni hal qilish

Yaqinda Debian'da xatolik paydo bo'ldi, unda bu erda tasvirlangan usul yordamida yig'ilgan yadroli paketlarni o'rnatgandan so'ng, tegishli /boot/initrd.img fayli yaratilmaydi. Uni allaqachon o'rnatilgan yadro uchun tuzatish uchun siz initrd.img ni qo'lda yaratishingiz kerak bo'ladi:

update-initramfs -c -k<полная-версия-ядра>

“Kelajak uchun” muammosini hal qilish uchun /etc/kernel/postinst.d/initramfs-tools faylida quyida keltirilgan satrlarning ikkinchisini ko'rsatilganidek izohlang:

# yadro paketi qo'shimcha argni o'tkazadi; #[ -z "$2" ] || yadro paketi ostida ishlamaslik uchun hack chiqish 0

Yangi yadro o'rnatilmoqda

Yadro qurilishi muvaffaqiyatli yakunlangach, /usr/src katalogida ikkita .deb paketi yaratiladi:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - haqiqiy yadroning o'zi va linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-2.6.23.1-cybermind-03.C. boshqa modullarni yaratish uchun zarur bo'lgan yadrolar (masalan, modullarni qurishda nVidia uchun haydovchilar). Ularni o'rnating:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind.10.680id.Custom_i386.

(Ushbu paketlar endi boshqa tizimga o'rnatilishi mumkin va ularni qayta qurishga hojat qolmaydi.)

Hammasi shu, o'rnatish tugallandi, yuklash menyusi, yangi RAM diskini va yadroni o'rnatish avtomatik ravishda amalga oshiriladi. Faqat qayta ishga tushirish qoladi:

# qayta ishga tushirish

Ikkinchi usul. "an'anaviy" usul

Biz yuqorida tavsiflangan barcha fikrlarni "Yadro kompilyatsiyasi" punktidan oldin bajaramiz.

# hammasini qilish # modullarni_o'rnatish # o'rnatish

Odatdagidek, yadro konfiguratsiyasi va protsessor imkoniyatlariga qarab, qurish uzoq vaqt talab qilishi mumkin.

Ushbu usulning asosiy kamchiligi shundaki, agar siz yadrolarni tez-tez yangilab tursangiz, bir muncha vaqt o'tgach, ularning ko'p qismi to'planadi va foydalanilmaganlarni olib tashlashni xohlaysiz. Buni osonlashtirish uchun siz “make modules_install” va “make install” buyruqlari yordamida tizimga o‘rnatilgan yadro va boshqa fayllarni deb to‘plamiga (aniqrog‘i, yadro 2.6.27 dan boshlab ikkita) yig‘ishingiz mumkin. birinchi usul, lekin biz foydalanamiz Mana yadroning o'zi skriptlari:

# hammasini qilish # deb-pkg qilish

Ikkita .deb fayli katalogda manba katalogidan bir daraja yuqorida paydo bo'ladi. Men yadroni /usr/src/linux-2.6.27.10 katalogiga yig'dim va fayllar /usr/src/ katalogida paydo bo'ldi.

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Yadro buyrug'i bilan o'rnatiladi

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Eski yadrolarni, masalan, sinaptikdan olib tashlash mumkin

Keyingi qadamlar

Yadro kompilyatsiya qilingan va o'rnatildi, ammo endi siz RAM diskini yaratishingiz kerak (ularsiz yadro oddiygina yuklanmaydi) va siz GRUB yuklash moslamasini yangilashingiz kerak. Buning uchun quyidagilarni bajaring:

# depmod 2.6.23.1 # apt-get install yaird

RAM diskini o'rnating:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Keling, yuklovchini osongina va og'riqsiz yangilaymiz:

# yangilash guruhi

Bootloader va yangi yadro tayyor, faqat qayta ishga tushirish qoladi:

# qayta ishga tushirish

Muammolar

Agar siz qayta ishga tushirgandan so'ng siz tanlagan yangi yadro yuklanmasa, qayta ishga tushiring va oldingi yadroni tanlang va siz ishlaydigan yadro yaratish uchun butun jarayonni yana bajarishga urinib ko'rishingiz mumkin. Bunday holda, /boot/grub/menu.lst-da ishlamaydigan yadro satrlarini o'chirishni unutmang.

Bundan tashqari, boshqa tizimlar o'rnatilishi kerak qo'shimcha dasturlar. IN operatsion tizimlar Windows-da hamma narsa juda oddiy, qoida tariqasida dasturiy ta'minotni o'rnatishga yordam beradigan setup.exe deb nomlangan o'rnatuvchi 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 – ekranda ma’lumotlarni 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 bajariladigan fayl sifatida tuzilgan bo'lsa, paketda odatda install.sh deb ataladigan .sh fayli bo'ladi.

Xulosa shuki, “make install” yoki “sudo make install” ko‘rinishidagi bu buyruqni zamonaviy distributivlarda 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 libga boradi, bajariladigan fayllar binda, konfiguratsiyalar va boshqalarda, varda turli xil ma'lumotlar va boshqalar. Agar siz to'satdan uni yangilashingiz kerak bo'lsa, unda bularning barchasi birinchi navbatda qandaydir tarzda tozalanishi kerak, chunki ... yangi versiyadan foydalanganda, eskisidan qolgan fayllar butunlay 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 to'g'ridan-to'g'ri make install orqali o'rnatgan 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, hazm bo'ladigan shaklda nima joylashtirilganligi va qayerda ekanligi 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 bitta 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 boshqa narsalar uchun yo'llarni eslatib o'tmaslik kerak.

Shuning uchun 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 o'zi quradi 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 yo'lini beraman Debian ma'lumotlar bazasi, chunki men ular bilan yaxshi tanishman. Bu mafkuraviy jihatdan to'g'ri emas, lekin qo'shimcha ob'ektlardan foydalanmasdan chiqish 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/control faylini yaratamiz:

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

Hammasi shunday, biz dpkg -b tempinstall-ni qilamiz va chiqish tempinstall.deb bo'lib, uni dpkg -i-da ishga tushirishingiz mumkin va u to'g'ri o'rnatiladi, yangilanadi yoki o'chiriladi.

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.