Chiqarish qurilmalaridan dasturlarni kompilyatsiya qilish va o'rnatish. Unix tizimlariga o'rnatish Kerakli dasturiy ta'minot

Golovna / Men tozalovchi joy quraman

Ko'pincha kerakli paketlarni faqat chiqish matnlariga qarab topish mumkin, bu maqolada chiqish matnlaridan paketni o'rnatish usuli tasvirlangan.

Paketdan yechish

Dasturlar hamma joyda qadoqlangan arxivlarda, kengaytmali fayllarda mavjud

.tar.gz (inodi.tgz) .tar.bz2

Arxivlovchi va paketlovchi o'rtasidagi farqni tushunish kerak.

Kataloglar va fayllarni arxivlash uchun dastur ishlatiladi. smola; Ushbu ishning natijasi kengaytmali fayldir .tar. Taxminan bu nusxa ko'rinadi fayl tizimi- katalog va fayllar ularning atributlari va kirish huquqi bilan bir faylga joylashtiriladi.

Ushbu fayl hajmi arxivlangan fayllarning umumiy hajmidan biroz kattaroq bo'ladi. Shu sababli (va, ehtimol, boshqa sabablarga ko'ra) paketlovchilar mavjud - ma'lumotlarni yo'qotmasdan fayl hajmini o'zgartirishga imkon beruvchi dasturlar.

Dastur smola Agar siz uni o'ramidan chiqarsangiz, qo'ng'iroq qilishingiz shart emas qurol, yoki oddiygina dasturlarni kiritishingiz mumkin smola, avval faylni ochish kerak. Masalan, jamoa

tar-xvf< some_app_name>.tar.gz

U zudlik bilan o'ramini ochadi va ochadi. Kengaytmalar bilan fayl ko'p qirrali

.tar.gz

.tar.bz2

Bundan tashqari, paketchilarning qirg'inlari, dastur smola siqish usuli avtomatik va degan ma'noni anglatadi qo'shimcha imkoniyatlar V bu yigitga yopishmaydi.

Paketni ochgandan so'ng, siz asl katalogga o'tishingiz kerak, quyida tavsiflangan barcha buyruqlar paketning chiqish matnlari bilan katalogda keltirilgan.

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

Paketni katlama

Dasturlarni yaratish uchun GNU/Linux (asosan) dasturlardan foydalanadi qilish, qaysi ko'rsatmalar bilan ishlaydi Makefile Garchi GNU/Linux distributivlari juda ko'p bo'lsa va ularning barchasi boshqacha bo'lsa-da, dasturni yuklab olish uchun siz har bir tarqatish uchun kutubxonalar va sarlavha fayllari joylashgan yo'llarni diqqat bilan belgilashingiz kerak. Dasturlar terini qo'llash uchun teri taqsimotini qo'llay olmaydi Makefile. Shuning uchun ular tizimni "o'zgartiradigan" va bunday bilimlarni yaratadigan konfiguratorlarni ko'rishdi Makefile. Ammo konfiguratorda hidlar to'xtamadi va konfiguratorlarning konfiguratorlari taxmin qilishdi ... qaysi nuqtada hidlar boshlandi

Bizga kerak bo'lgan kompilyatorlarni tanlash uchun: ular paketli depozitlar ro'yxatida keltirilgan qurish - muhim shuning uchun uni barcha depozitlar bilan o'rnatish vaqti keldi. Ko'proq ehtiyojlar autoconfі avtomobil ishlab chiqarish.

Endi chiqish qurilmalaridan tanlash uchun avvalo konfiguratorni tanlashingiz kerak; Konfiguratorni qanday tanlash configure.in faylida tasvirlangan. Konfiguratorni katlama uchun tizimga kirishingiz kerak

./ bootstrap ./ autogen.sh

Agar bunday skriptlar arxivda ko'rinmasa, siz quyidagi buyruqlarni ketma-ket kiritishingiz mumkin:

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

Bu barcha buyruqlar vikoryust fayl configure.in. Ushbu buyruqlar kiritilgandan so'ng fayl yaratiladi sozlash. Shundan so'ng, barcha depozitlar mavjudligini tekshirish uchun konfiguratorni ishga tushirish, shuningdek qo'shimcha yig'ish variantlarini o'rnatish (agar iloji bo'lsa) va o'rnatish natijasini ko'rib chiqish kerak (ixtiyoriy, lekin bo'lmasligi mumkin).

./configure

Konfigurator olingan bilim va fayllarga asoslangan Makefile bo'ladi makefile.am. Siz konfiguratorga dasturlarning boshqa imkoniyatlarini yoqish/o'chirish imkonini beruvchi dastur chiqishlaridan o'tkazilgan variantlarni o'tkazishingiz mumkin, shuning uchun buyruq yordamida ular haqida bilib olishingiz mumkin.

./configure --help

O'rnatish uchun standart variantlar to'plami ham mavjud

Prefiks=

Qaysi katalogni o'rnatmoqchi ekanligingizni shu tarzda belgilaysiz. Ubuntu uchun qo'ng'iroq qilishni boshlang

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

BIZDAN oxirigacha kesing! Endi buyruq bilan dasturning o'zini katlama jarayonini boshlashingiz mumkin

qilish

Katlama uchun etarli imtiyozlar mavjud zvichayny koristuvach. Tugallangan ishni konsoldagi buyruqlar "baxtli" tugashi va hech qanday so'z bo'lmagan paytni hisobga olish mumkin. xato. Endi hamma narsa tuzilgan va o'rnatishga tayyor.

Oʻrnatilgan

Zusilla sarflandi To'g'ri o'rnatilgan O'rnatilayotgan dasturiy ta'minotni yangilash yoki yangilash xarajatlarini to'lash uchun ortiqcha bo'ladi.

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

Qo'shimcha yordamchi dasturlarni o'rnatish o'rnatishni tekshiring. Vikonet o'rnatish uchun

sudo apt-get o'rnatishni tekshiring

Minus bu usul: o'rnatishni tekshiring Albatta, barcha chiqishlar mavjud emas, lekin dastur muallifi o'rnatishdan maxsus skriptlarni yozishi mumkin o'rnatishni tekshiring Ular tushunilmaydi.

Deb paketini yaratish va o'rnatish uchun tizimga kirishingiz kerak

sudo tekshiruvini o'rnating

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

Shvidke deb paketini "qo'lda" yaratdi.

Asosiy faoliyat oldingi yo'l Bu shuni anglatadiki, ushbu versiyada siz paketni qo'lda yaratasiz va barcha o'zgarishlarni qayd etishingiz kerak. Shunday qilib, bu usul sizga mos keladi, chunki chiqish kodlari katlanmış paketni qo'llab-quvvatlamaydi o'rnatishni tekshiring.

    Vaqt katalogiga o'rnatishni tanlaymiz, o'rnatiladigan barcha fayllar to'plamini o'chirib tashlaymiz:

fakeroot make install DESTDIR = `pwd` /tempinstall

    Paketning ildizida DEBIAN katalogini yarating va /etc ichiga kiradigan barcha fayllar ro'yxatini DEBIAN/conffiles-da saqlang:

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

    Shundan so'ng biz keyingi joyda DEBIAN/control faylini yaratamiz:

Paket: package_name Versiya: 1.2.3 Arxitektura: amd64/i386/armel/all Maintainer: Ismingizni kiritishingiz mumkin, ism qo'shishingiz mumkin yoki bo'sh qo'ysangiz, dpkg bo'ladi Bog'liq: Bu yerda siz ro'yxatni kiritishingiz mumkin. kim orqali paketlar. Ustuvorlik: ixtiyoriy Tavsif: Siz uni oldindan tashlamaslik uchun hali ham kiritishingiz kerak

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

    Biz deb to'plamini yaratmoqdamiz, unga qo'shishimiz kerak:

dpkg -b vaqtincha o'rnatish

    O'rnatilgan tempinstall.deb chiqishidan olingan

sudo dpkg -i tempinstall.deb

O'rnatish (variant № 3)

Noto'g'ri o'rnatilgan

Ushbu usulning salbiy tomoni shundaki, agar siz to'g'ridan-to'g'ri make install orqali o'rnatsangiz, odatda paketni o'chira olmaysiz yoki yangilay olmaysiz. Bundan tashqari, eski versiyaning ustiga yangi versiyani o'rnatish konfiguratsiyalardagi o'zgarishlaringizni muhrlab qo'yadi. make install aynan aytganini bajaradi - fayllarni kerakli joyga o'rnatadi, uning allaqachon mavjud ekanligiga e'tibor bermaydi. Ushbu jarayondan so'ng, qaerga qo'yilganligi haqida mutlaqo ma'lumot yo'q, uni qo'lda olib tashlash mumkin emas. Biroq, Makefile o'chirish amalini qo'llab-quvvatlaydi, lekin u tez-tez sodir bo'lmaydi va u to'g'ri ishlashi haqiqat emas. Bunga qo'shimcha ravishda, o'chirish uchun paketdan chiqarilgan chiqish daraxti va yig'ish qoidalarini saqlashingiz kerak bo'ladi.

O'rnatish uchun tizimga kirishingiz kerak

sudo make install

Shu tarzda o'rnatilgan paketni olib tashlash uchun siz asosiy dastur katalogida bo'lishingiz kerak (o'rnatishni ishga tushirgan joy).

sudo o'chirishni amalga oshiradi

Kechirasiz

Ko'pincha konfiguratsiya bosqichida konfigurator sizga bu yoki boshqa kutubxonalar mavjud emasligi haqida xabar beradi. Kutubxona nomi, aytganidek, Ubuntu-dagi paket nomi bilan har doim ham bir xil emas. Yaxshi niyat bilan men lib prefiksini yoqgan holda Synaptica-da kerakli paketni qidirishim mumkin, agar nomda -dev prefiksi bilan ajratilgan bir qator paketlar bo'lsa, siz -dev paketini o'rnatishingiz kerak bo'ladi. o'zingiz (siz -dev paketi uchun emas, balki javobgar bo'lasiz). Shuningdek, http://packages.ubuntu.com/ saytida yordam qidirishingiz mumkin, ularning kutubxonalariga paketlar o'rniga qidiruvlarga kirganingizdan so'ng, xuddi shunday, agar siz dev va no-dev topsangiz, xafa bo'lishingiz kerak. Xo'sh, yoki shunchaki Google'da qidiring.

Kerakli xavfsizlik dasturi

Men umuman mm harfli paketlarni tasvirlab beraman - bular C++ dasturlari uchun paketlar. Ro'yxat bmpx uchun, lekin u har qanday GTK2/Gnome dasturi uchun ham mos keladi. Shuning uchun, agar siz tanlashda bezovta qilmasangiz, unda ushbu ro'yxatga qarang va o'rnatgan narsalarni o'chirib tashlang.

Kompilyatsiya:Ish vaqti:
Xlibx11-devlibx11-6
GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
GTK+libgtk2.0-dev,gtk-doc-toolslibgtk2.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

Ushbu darsda biz sizga PHP 7 ni Linux VPS-ga qanday o'rnatishni ko'rsatamiz. PHP - veb-ishlab chiqish uchun juda ko'p server tomoni skriptlari ishlab chiqilmoqda.

PHP 7 ko'plab yangi va ilg'or funksiyalarga ega. Eng diqqatga sazovorlaridan biri Zend Enginening yangi versiyasidir. Bundan tashqari, mahsuldorlikning oshishi va xotira buzilishida sezilarli o'zgarishlarni ko'rsatadigan boshqa muhim yaxshilanishlar mavjud. Shunday qilib, PHP 7 ni PHP 5.6 sifatida ikki barobarga oshirish mumkin.

PHP 7-ni Ubuntu VPS-ga o'rnatish uchun serveringizga orqali kirishingiz kerak. Tizimga yangilanganingizdan so'ng, barcha tizim xavfsizlik dasturlarini yangilang qolgan versiya qo'shimcha hujum buyrug'i uchun:

Sudo apt-get yangilash && sudo apt-get -y yangilash

Bundan tashqari, tizimingizda joriy o'rnatish standarti UTF-8 mavjudligiga ishonch hosil qiling. Ubuntu uchun PHP 7 PPA Ondřej Suri tomonidan qo'llab-quvvatlanadi. Biz ushbu PPA dan PHP 7 ni Ubuntu 14.04 da o'rnatish uchun foydalanamiz.

PPA ni APT jerellari ro'yxatiga qo'shing:

Sudo add-apt-repository ppa: ondrej/php-7.0

Add-apt-repository buyrug'ini topib bo'lmagani uchun kompilyatsiya bildirishnomasini olib tashlasangiz, tizimingiz ko'pincha dasturiy ta'minot-properties-umumiy paketiga kiritilmaydi. Keling, kerakli paketni o'rnatamiz.

Sudo apt-get install software-properties-common

O'rnatish tugallangach, PHP 7 PPA ni APT oluvchilar ro'yxatiga qo'shish buyrug'ini takrorlang.

Quyidagi buyruq yordamida mahalliy paket keshini yangilang:

Sudo apt-get yangilanishi

Bu bir necha qadamni oladi va ish tugagach, PHP 7 ni oʻrnatishga tayyor boʻlasiz.

Sudo apt-get install php7.0

Serveringizda PHP 7 ning barqaror versiyasi oʻrnatilganligiga ishonch hosil qilish uchun quyidagi buyruqni tekshirishingiz mumkin:

Buning uchun siz aybdorsiz:

PHP 7.0.1-1+deb.sury.org~trusty+2 (cli) (NTS) Mualliflik huquqi (c) 1997-2015 v7.0.6-dev, mualliflik huquqi (c) 1999-2015, Zend Technologies tomonidan

Qo'shimcha PHP 7 modullarini o'rnatish uchun, masalan, php7.0-MySQL, siz quyidagi buyruqdan foydalanishingiz mumkin:

Sudo apt-get install php7.0-mysql

Mavjud PHP7 modullarini qidirish uchun quyidagi buyruqni kiriting:

Sudo apt-cache qidiruvi php7

Agar siz PHP 7 ning Ubuntu VPS da qanday ishlashini tekshirishni istasangiz, test skriptini yaratishingiz mumkin. Veb-serveringizning asosiy hujjat katalogiga o'ting:

CD /var/www/html/

Sinov faylini yarating:

Nano info.php

Haqoratli gapni kiriting:

Faylni saqlang va uni yoping. Huquqlarning o'zgarishi:

Chown www-data: info.php

Endi faylga kirish uchun serveringizning IP manzilidan foydalanishingiz mumkin. Foydalanilayotgan veb-brauzerni oching va ko'rsatmalarga amal qiling:

http://192.168.1.111/info.php

192.168.1.111 IP-manzili sinovdan o'tkazilmoqda, shuning uchun serveringiz IP-manziliga nima kirganingizni tekshiring. Siz chiziq tomonida ishlash uchun javobgarsiz PHP ma'lumotlari, Versiya, kompilyatsiya imkoniyatlari, kengaytma va boshqalar kabi.

PS. Agar sizga ushbu post yoqqan bo'lsa, uni do'stlaringiz bilan baham ko'ring ijtimoiy chora-tadbirlar Xabarning chap tomonidagi qo'shimcha tugmalar uchun yoki shunchaki quyidagi izohni to'ldiring. Men oldindan va'da beraman.

Ushbu bo'limda o'rnatish tasvirlangan PHP o'rnatish Unix tizimlarida. Iltimos, platformangiz yoki veb-serveringiz bilan bog'liq barcha bo'limlarni o'qing, avval o'rnatishga o'ting.

Hurmat:

Unix tizimlari (masalan, OpenBSD va SELinux) xavfsizlik nuqtai nazaridan bir zumda yozilgan va o'chiriladigan xotirani himoya qilishi mumkin. Bu PaX MPROTECT yoki W ^ X himoyasini yo'q qilish deb ataladi. Prote, ushbu xotirani ko'rish rejimi JIT PCRE JIT kompilyatsiyasini qo'llab-quvvatlash uchun zarur, shuning uchun ba'zan PHP-ni JIT kompilyatsiya PCRE-ni qo'llab-quvvatlamasdan kompilyatsiya qilish kerak bo'ladi, chunki Ikkilik fayllar oq ro'yxatga kiritilishi mumkin operatsion tizim,

Hurmat: Qo'shimcha Android asboblar zanjiri bilan ARM ostida o'zaro kompilyatsiya hozirda qo'llab-quvvatlanmaydi.

16 yil oldin

Solaris/SunOS ning ma'lum versiyalari uchun kompilyatsiya qiluvchi foydalanuvchilar maxsus so'rov yozishlari mumkin.
icon ap_block_alarms: havola qilingan belgi topilmadi

Ushbu muammo haqida xabar berish uchun kengaytirilgan bayroqni Apache qurish konfiguratsiyasi qatoriga o'rnating:
--enable-rule=SHARED_CORE

Shunday qilib, buni asl ko'rsatmalarga qo'shib, siz Apache tuzilishini shunday sozlaysiz:
./configure --prefix=/www --enable-module=so --enable-rule=SHARED_CORE

12 yil oldin

Men linux/Apache/php (server 2003/IIS/Asp.Net dan olingan) uchun yangisini ishga tushiryapman, shuning uchun php/Apache dan faqat qo'shimcha maqolani qo'llab-quvvatlash uchun ishlatilishi mumkinligi haqida hayronman. Bundan tashqari, u siz boshqa joyda yaratgan va keyin HTML katalogiga sudrab olib borgan ayrim hujjatlarga kira olmadi.

Ushbu tekshiruvdan so'ng, fayllarning SELinux kontekstini oziqlantirish uchun asos. O'zgartirish uchun vikoristan uchun uzun ro'yxatni davom ettirish muhim, chunki barcha dumbalar chiziqda bo'lgani uchun ular qolgan buyruqlar vikoristanidan olib tashlanadi:
# chcon "user_u:object_r:httpd_sys_content_t" /var/www/html -Rc

Siz httpd jarayonlarini ularga kirishga majburlash uchun /var/www/html katalogi ostidagi barcha hujjatlarning SELinux kontekstini o'zgartirasiz va "-Rc" bayrog'i o'zgarishlarni rekursiv qiladi va u muvaffaqiyatli o'zgartirilgan har bir fayl uchun taraqqiyotni chiqaring.

Php veb-dasturlash va veb-saytlarni ishlab chiqish uchun mashhur tildir. Teri bilan yangi versiya Til tobora muvaffaqiyatli bo'ldi, barchasi veb-sahifalarni yaratish uchun oddiy, funktsional yo'naltirilgan til dasturidan boshlandi va Php 5 ni o'rnatish endi to'liq ishlaydigan "Skript tili samarali yo'naltirilgan" sifatida joylashtirilgan. php 7 unumdorlikni jami optimallashtirish va boy oqim qo'shish kabi ko'plab yaxshilanishlar va tuzatishlarni amalga oshiradi, ammo bugungi kunda php 7 imkoniyatlarini ko'rib chiqsangiz, Internetda vagon va kichik vagonni topishingiz mumkin.

Ushbu ko'rsatma Linuxda PHP 7 ni o'rnatishni tavsiflaydi, u asosan Ubuntu foydalanuvchilari uchun mo'ljallangan, ammo boshqa tarqatishlar uchun ham mos keladi. Biz Ubuntu-da PPA-ni o'rnatishni va chiqish qurilmalaridan yig'ishni ko'rib chiqamiz.

PPA omborlari uchinchi tomon ishlab chiqaruvchilariga rasmiy Ubuntu omborlarini chetlab o'tish orqali o'z dasturlarini paketlash imkonini beradi. PPA bilan siz dasturning yangi yoki beta versiyalarini chiqarishingiz mumkin. php 7 rasmiy versiyasi chiqqandan so'ng Ubuntu uchun PPA yaratildi. Dodamo yogo qilish tizimi:

$ sudo add-apt-repository ppa:ondrej/php-7.0

sudo apt-get yangilanishi

Men o'rnatishim mumkin:

sudo apt-get install php7.0

MySQL-ni qo'llab-quvvatlash uchun kutubxonani o'rnatishingiz kerak:

sudo apt-get install php7.0-mysql

php ni fpm moduli ko'rinishida o'rnatish uchun:

sudo apt-get install php7.0-fpm

Dam olish kunlaridan boshlab php 7 katlama

Bundan buyon biz kerakli vositalar va kutubxonalarni o'rnatamiz:

sudo apt-get install git autoconf bizon libxml2 libxml2-dev opessllibcurl4-openssl-dev libbz2-dev libjpeg-dev libpng-dev libxpm-dev

Keling, ishchi papkani yarataylik:

PHP chiqishini git repository bilan sinxronlash:

git clone https://git.php.net/repository/php-src.git

Keling, to'g'ridan-to'g'ri o'rnatish papkasiga o'tamiz, dastur aniq papkaga o'rnatiladi - ~/tmp:

cd php-src
$ sudo ./buildconf
$sudo./configure\
--enable-mbstring\
--zip-ni yoqish\
--enable-bcmath\
--enable-pcntl\
--ftp-ni yoqish
--enable-exif \
--taqvimni yoqish\
--enable-sysvmsg\
--enable-sysvsem\
--enable-sysvshm\
--enable-wddx\
--with-curl\
--with-mcrypt\
--with-iconv\
--with-gmp\
--pspell bilan\
--with-gd\
--with-jpeg-dir=/usr\
--with-png-dir=/usr\
--with-zlib-dir=/usr\
--with-xpm-dir=/usr\
--with-freetype-dir=/usr\
--with-t1lib=/usr\
--enable-gd-native-ttf\
--enable-gd-jis-conv\
--with-openssl\
--with-mysql=/usr \
--with-pdo-mysql=/usr \
--with-getext=/usr\
--with-zlib=/usr\
--with-bz2=/usr\
--with-recode=/usr\
--with-mysqli=/usr/bin/mysql_config
$ qilish

Keling, konfiguratsiya fayli uchun papka yarataylik:

mkdir $HOME/tmp/usr/etc

Keling, yarataylik konfiguratsiya fayli php o'rniga bu bilan:

nano $HOME/tmp/usr/etc/php.ini

maksimal_bajarish_vaqti = 600
xotira_chegarasi=128M
error_reporting=0
display_errors=0
log_errors=0
user_ini.filename=
realpath_cache_size=2M
cgi.check_shebang_line=0
zend_extension=opcache.so
opcache.enable_cli=1
opcache.save_comments=0
opcache.fast_shutdown=1
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.use_cwd=1
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=5
opcache.memory_consumption=128
opcache.consistency_checks=0

Saqlang va PHP 7 o'rnatish va sozlashlarni bajaring, siz sinovga o'tishingiz mumkin.

sinovdan o'tkazish

PHP versiyasiga qarang:

Yoki skriptdan foydalanishingiz mumkin:

nano ~/tmp/script.php

sapi/cli/php ~/tmp/script.php

Men ko'rsatkichlarni o'rnatdim:

sapi/cli/php Zend/bench.php
$ sapi/cli/php Zend/micro_bench.php

© 2022 androidas.ru - Android haqida hamma narsa