Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Nedávno jsem u jedné firmy potřeboval nasadit specifickou verzi php, konkrétně 5.2.6. Jakákoli vyšší verze (i patch) znefunkčnila aplikaci. Rozhodl jsem se tedy pro kompilaci této verze, vytvoření balíku a provozování v rámci apache pod fastcgi.
Začneme instalací základních balíků pro kompilaci :
apt-get install build-essential checkinstall autoconfa důležité závislosti :
apt-get install libxslt-dev libtidy-dev libedit-dev libpspell-dev libsqlite3-dev unixodbc-dev libmariadbclient-dev libsasl2-dev libldb-dev libldap-dev libkrb5-dev libfreetype6-dev libxpm-dev libpng-dev libpcre++-dev libjpeg-dev libjpeg62-turbo-dev libbz2-dev libgnutls-openssl-dev libfcgi-dev libfcgi0ldbl libmcrypt-dev libssl-dev libcurl4-openssl-dev pkg-config libxml2-dev librecode-dev
První problém je v moc nové verzi openssl, php 5.2.6 počítá s řadou 0.9. Budeme tedy muset někam naladit i tyto knihovny, tzn. zkompilovat a naladit opensssl řadu 0.9 :
cd /usr/local/src wget -c https://www.openssl.org/source/old/0.9.x/openssl-0.9.8w.tar.gz tar xvf cd openssl-0.9.8w ./config --prefix=/usr/local make make install_sw
Sice existuje tento patch : patch-to-php-5.2.6-with-openssl-1.0.0.txt, ale ten je pro openssl 1.0.0 a v Jessie je 1.0.1. S tímto patchem se mi php nepodařilo zkompilovat kvůli velkému množství nedefinovaných referencí.
Jelikož nejsem programátor, tak jsem problémy s adresama knihoven vyřešil takto (php v takto staré verzi totiž nepočítá s adresářem "x86_64-linux-gnu"):
ln -s /usr/lib/x86_64-linux-gnu/libpcre.a /usr/lib/libpcre.a ln -s /usr/lib/x86_64-linux-gnu/libjpeg.a /usr/lib/libjpeg.a ln -s /usr/lib/x86_64-linux-gnu/libpng.a /usr/lib/libpng.a ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/libXpm.a ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so ln -s /usr/include/editline/readline.h /usr/include/readline.h
Na serveru je MariaDB 10.1 a při kompilaci php nastal problém v chybějících deklaracích.
Řešení jsem nalezl zde : Error in Installing php5-mysqli.
Je tedy potřeba doplnit do hlavičkového souboru zmíněné deklarace, tj toto :
/usr/include/mysql/mysql.h enum mysql_protocol_type { MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY }; /* There are three types of queries - the ones that have to go to the master, the ones that go to a slave, and the adminstrative type which must happen on the pivot connectioin */ enum mysql_rpl_type { MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN }; typedef struct character_set { unsigned int number; /* character set number */ unsigned int state; /* character set state */ const char *csname; /* collation name */ const char *name; /* character set name */Tuto změnu jsem udělal jen pro kompilaci. Po dokončení kompilace jsem zmíněné deklarace zase z hlavičkového souboru odstranil.
Dalším problémem je pár věcí, které jsou v php špatně linkované, nebo nepočítají s novějšími verzemi app apod. Na základě toho jsem vytvořil tento patch "php52-patch-jessie-compile.patch" (použil jsem v něm i tento patch : txtbgxGXAvz4N.txt):
--- configure 2008-04-30 20:37:32.000000000 +0200 +++ configure 2016-07-31 01:37:01.799886500 +0200 @@ -36408,7 +36408,7 @@ if test "$PHP_FREETYPE_DIR" != "no"; then for i in $PHP_FREETYPE_DIR /usr/local /usr; do - if test -f "$i/include/freetype2/freetype/freetype.h"; then + if test -f "$i/include/freetype2/freetype.h"; then FREETYPE2_DIR=$i FREETYPE2_INC_DIR=$i/include/freetype2 break @@ -44312,7 +44312,7 @@ if test "$PHP_GMP" != "no"; then for i in $PHP_GMP /usr/local /usr; do - test -f $i/include/gmp.h && GMP_DIR=$i && break + test -f $i/include/x86_64-linux-gnu/gmp.h && GMP_DIR=$i && break done if test -z "$GMP_DIR"; then @@ -82297,7 +82297,7 @@ if test "$PHP_READLINE" && test "$PHP_READLINE" != "no"; then for i in $PHP_READLINE /usr/local /usr; do - test -f $i/include/readline/readline.h && READLINE_DIR=$i && break + test -f $i/include/editline/readline.h && READLINE_DIR=$i && break done if test -z "$READLINE_DIR"; then @@ -83127,7 +83127,7 @@ elif test "$PHP_LIBEDIT" != "no"; then for i in $PHP_LIBEDIT /usr/local /usr; do - test -f $i/include/readline/readline.h && LIBEDIT_DIR=$i && break + test -f $i/include/editline/readline.h && LIBEDIT_DIR=$i && break done if test -z "$LIBEDIT_DIR"; then --- ext/dom/documenttype.c 2007-12-31 08:20:05.000000000 +0100 +++ ext/dom/documenttype.c 2016-07-31 09:39:48.469416532 +0200 @@ -213,14 +213,19 @@ if (dtdptr->doc != NULL && ((intsubset = dtdptr->doc->intSubset) != NULL)) { buff = xmlAllocOutputBuffer(NULL); - if (buff != NULL) { - xmlNodeDumpOutput (buff, NULL, (xmlNodePtr) intsubset, 0, 0, NULL); - xmlOutputBufferFlush(buff); - strintsubset = xmlStrndup(buff->buffer->content, buff->buffer->use); - (void)xmlOutputBufferClose(buff); - ZVAL_STRING(*retval, (char *) strintsubset, 1); - return SUCCESS; - } + if (buff != NULL) { + xmlNodeDumpOutput (buff, NULL, (xmlNodePtr) intsubset, 0, 0, NULL); + xmlOutputBufferFlush(buff); + + #ifdef LIBXML2_NEW_BUFFER + ZVAL_STRINGL(*retval, xmlOutputBufferGetContent(buff), + xmlOutputBufferGetSize(buff), 1); + #else + ZVAL_STRINGL(*retval, buff->buffer->content, buff->buffer->use, 1); + #endif + (void)xmlOutputBufferClose(buff); + return SUCCESS; + } } ZVAL_EMPTY_STRING(*retval); --- ext/simplexml/simplexml.c 2008-03-20 17:48:45.000000000 +0100 +++ ext/simplexml/simplexml.c 2016-07-31 09:44:26.765450542 +0200 @@ -1335,7 +1335,12 @@ xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, ((xmlDocPtr) sxe->document->ptr)->encoding); xmlOutputBufferFlush(outbuf); + #ifdef LIBXML2_NEW_BUFFER + RETVAL_STRINGL((char *)xmlOutputBufferGetContent(outbuf), + xmlOutputBufferGetSize(outbuf), 1); + #else RETVAL_STRINGL((char *)outbuf->buffer->content, outbuf->buffer->use, 1); + #endif xmlOutputBufferClose(outbuf); } } else { --- ext/gmp/gmp.c 2008-02-04 22:31:52.000000000 +0100 +++ ext/gmp/gmp.c 2016-07-31 09:37:42.761400851 +0200 @@ -1396,7 +1396,7 @@ GMPG(rand_initialized) = 1; } - mpz_urandomb(*gmpnum_result, GMPG(rand_state), GMP_ABS (limiter) * __GMP_BITS_PER_MP_LIMB); + mpz_urandomb(*gmpnum_result, GMPG(rand_state), GMP_ABS (limiter) * GMP_LIMB_BITS); ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp); } --- sapi/cli/php_cli.c 2008-01-29 21:01:14.000000000 +0100 +++ sapi/cli/php_cli.c 2016-07-31 09:35:48.049388418 +0200 @@ -76,9 +76,9 @@ #endif #if (HAVE_LIBREADLINE || HAVE_LIBEDIT) && !defined(COMPILE_DL_READLINE) -#include <readline/readline.h> +#include <editline/readline.h> #if !HAVE_LIBEDIT -#include <readline/history.h> +#include <editline/history.h> #endif #include "php_cli_readline.h" #endif /* HAVE_LIBREADLINE || HAVE_LIBEDIT */ --- sapi/cli/php_cli_readline.c 2007-12-31 08:20:16.000000000 +0100 +++ sapi/cli/php_cli_readline.c 2016-07-31 09:36:13.873390015 +0200 @@ -49,9 +49,9 @@ #include >unixlib/local.h> #endif -#include <readline/readline.h> +#include <editline/readline.h> #if !HAVE_LIBEDIT -#include <readline/history.h> +#include <editline/history.h> #endif #include "zend_compile.h" --- ext/readline/readline.c 2007-12-31 08:20:10.000000000 +0100 +++ ext/readline/readline.c 2016-07-31 09:36:59.513395460 +0200 @@ -33,9 +33,9 @@ #define rl_completion_matches completion_matches #endif -#include <readline/readline.h> +#include <editline/readline.h> #ifndef HAVE_LIBEDIT -#include <readline/history.h> +#include <editline/history.h> #endif PHP_FUNCTION(readline); --- ext/dom/node.c 2008-01-30 07:48:20.000000000 +0100 +++ ext/dom/node.c 2016-07-31 10:02:25.701558356 +0200 @@ -1947,9 +1947,17 @@ RETVAL_FALSE; } else { if (mode == 0) { + #ifdef LIBXML2_NEW_BUFFER + ret = xmlOutputBufferGetSize(buf); + #else ret = buf->buffer->use; + #endif if (ret > 0) { + #ifdef LIBXML2_NEW_BUFFER + RETVAL_STRINGL((char *) xmlOutputBufferGetContent(buf), ret, 1); + #else RETVAL_STRINGL((char *) buf->buffer->content, ret, 1); + #endif } else { RETVAL_EMPTY_STRING(); }
Nyní už můžeme přejít k samotné kompilaci php (php používám v rámci "Plesk" administrace, takže proto ty cesty do "/opt/plesk"):
cd /usr/local/src wget -c http://museum.php.net/php5/php-5.2.6.tar.bz2 tar xvf php-5.2.6.tar.bz2 cd php-5.2.6 patch -p0 < ../php52-patch-jessie-compile.patch ./configure --prefix=/opt/plesk/php/5.2.6 \ --bindir=/opt/plesk/php/5.2.6/bin \ --sbindir=/opt/plesk/php/5.2.6/sbin \ --libexecdir=/opt/plesk/php/5.2.6/lib \ --datadir=/opt/plesk/php/5.2.6/share \ --sysconfdir=/opt/plesk/php/5.2.6/etc \ --sharedstatedir=/opt/plesk/php/5.2.6/com \ --localstatedir=/opt/plesk/php/5.2.6/var \ --libdir=/opt/plesk/php/5.2.6/lib/x86_64-linux-gnu \ --includedir=/opt/plesk/php/5.2.6/include \ --infodir=/opt/plesk/php/5.2.6/share/info \ --mandir=/opt/plesk/php/5.2.6/share/man \ --build=x86_64-linux-gnu \ --host=x86_64-linux-gnu \ --with-libdir=lib \ --cache-file=../config.cache \ --with-config-file-path=/opt/plesk/php/5.2.6/etc \ --with-config-file-scan-dir=/opt/plesk/php/5.2.6/etc/php.d \ --disable-debug \ --without-pear \ --with-pic \ --disable-rpath \ --with-bz2 \ --with-freetype-dir=/usr \ --with-png-dir=/usr \ --with-xpm-dir=/usr \ --enable-gd-native-ttf \ --without-gdbm \ --with-gettext \ --with-gmp \ --with-iconv \ --with-jpeg-dir=/usr \ --with-pcre-regex=/usr \ --with-zlib \ --with-layout=GNU \ --enable-exif \ --enable-ftp \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg \ --with-kerberos \ --enable-calendar \ --with-libxml-dir=/usr \ --enable-xml \ --with-system-tzdata \ --enable-pcntl \ --with-imap=shared \ --with-imap-ssl \ --enable-mbstring=shared \ --enable-mbregex \ --with-gd=shared \ --enable-bcmath=shared \ --enable-dba=shared \ --with-xmlrpc=shared \ --with-ldap=shared \ --with-ldap-sasl \ --with-mysql=shared,/usr \ --with-mysqli=shared,/usr/bin/mysql_config \ --with-mysql-sock=/var/run/mysqld/mysqld.sock \ --enable-dom=shared \ --enable-soap=shared \ --with-xsl=shared,/usr \ --enable-xmlreader=shared \ --enable-xmlwriter=shared \ --with-curl=shared,/usr \ --enable-pdo=shared \ --with-pdo-odbc=shared,unixODBC,/usr \ --with-pdo-mysql=shared,/usr \ --with-pdo-sqlite=shared,/usr \ --without-sqlite \ --enable-json=shared \ --enable-zip=shared \ --without-readline \ --with-libedit \ --with-pspell=shared \ --with-mcrypt=shared,/usr \ --with-tidy=shared,/usr \ --with-unixODBC=shared,/usr \ --with-fileinfo=shared,/usr \ --enable-intl=shared \ --with-icu-dir=/usr \ --enable-sysvmsg=shared \ --enable-sysvshm=shared \ --enable-sysvsem=shared \ --enable-posix=shared \ --enable-phar \ --enable-fastcgi \ --enable-force-cgi-redirect \ --enable-shmop \ --enable-wddx \ --with-mime-magic \ --with-openssl=/usr/localToto by mělo proběhnout ok. Poté tedy stačí zkompilovat a vytvořit balíček pomocí checkinstall :
make checkinstall --pkgname=php526 --pkgversion "5.2.6" --pkgrelease=1 --backup=no --default --maintainer=max@devaine.cz --install=noa nakonec nainstalujeme :
dpkg -i php526_5.2.6-1_amd64.deb
Tím to ale nekončí, ještě většinou potřebujeme v php podporu imagic, takže (kompilace imagick - lenny ma 6.3.7.9 ):
wget -c http://mirror.checkdomain.de/imagemagick/ImageMagick-6.8.9-10.tar.gz tar xvf ImageMagick-6.8.9-10.tar.gz cd ImageMagick-6.8.9-10 ./configure --prefix=/opt/plesk/php/5.2.6 make checkinstall --pkgname=imagick68 --pkgversion "6.8.9-10" --backup=no --default --maintainer=max@devaine.cz --install=no dpkg -i imagick68_6.8.9-10-1_amd64.debA modul do php :
cd /usr/local/src wget -c http://pecl.php.net/get/imagick-3.1.2.tgz tar xvf imagick-3.1.2.tgz cd imagick export PHP_PREFIX="/opt/plesk/php/5.2.6" $PHP_PREFIX/bin/phpize ./configure --prefix=/opt/plesk/php/5.2.6 --with-php-config=/opt/plesk/php/5.2.6/bin/php-config --with-imagick=/opt/plesk/php/5.2.6 make checkinstall --pkgname=imagick68-php526 --pkgversion "3.1.2" --backup=no --default --maintainer=max@devaine.cz --install=no dpkg -i imagick68-php526_3.1.2-1_amd64.deb
Protože bychom rádi ještě trochu výkonu, tak potřebujme nějaký cache nástroj pro takto staré php, čímž je třeba eAccelerator :
export PHP_PREFIX="/opt/plesk/php/5.2.6" $PHP_PREFIX/bin/phpize ./configure --prefix=/opt/plesk/php/5.2.6 --enable-shared --with-php-config=$PHP_PREFIX/bin/php-config make checkinstall --pkgname=eaccelerator --pkgversion "0.9.6.1" --backup=no --default --maintainer=max@devaine.cz --install=no dpkg -i eaccelerator_0.9.6.1-1_amd64.deb
Kdo používá Plesk, tak si do něj může naimportovat/zaregistrovat naše php takto :
/usr/local/psa/bin/php_handler --add -displayname 5.2.6-custom -path /opt/plesk/php/5.2.6/bin/php-cgi -clipath /opt/plesk/php/5.2.6/bin/php -phpini /opt/plesk/php/5.2.6/etc/php.ini -type fastcgi -id custom-php526-fastcgiNastavení pak můžeme ověřit takto :
/usr/local/psa/bin/php_handler --list
Je to prasení, ale dá to nějaký čas k opravení programátorovi webu. Sice to je ošklivé a vůbec se mi to nelíbí, ale není to nic nevratného. Plesk sice umožňuje instalaci php 5.2, ale aktuálně s patch verzí 17 (tzn. 5.2.17) a ta už je s onou web app nekompatibilní :-/.
Tiskni
Sdílej:
machinectl shell
, ale pokud je použit moc starý systemd, tak to nepomůže a musí se používat machinectl login
.6. Na co nejvíce věcí se použijí unixové sockety, aby se to nepřetahovalo o porty (třeba MySQL).
Na to máme už pár let takový vynález, říká se tomu network namespace.
je buď zprasené PHP nebo extrémně zprasená aplikaceAno
Nejak ma zdvíha zo stoličky aj keď niekoho vidím napísať ifconfig, proste ľudia kašlú na sledovanie technólogiíHm. Ja to spis vnimam tak, ze
ifconfig
pouzivam roky na par zakladnich veci, dela presne to, co chci, jsem na to zvykly a nemam zadnou motivaci pouzivat neco jineho (cti: ip
). Az ten duvod/motivaci budu mit, tak proc ne, ale zas abych travil cas ctenim manpages ciste proto, ze se Bedna zvedne ze stolicky, az pred nim napisu ifconfig eth0 down
, to taky ne.
ifconfig
… dela presne to, co chci
Tak to máte velké štěstí. Až ho jednou mít nebudete, budete se divit, stejně jako mnozí před vámi.
ip
a asi neni problem prejit na to, prinejmensim to ma konzistentnejsi CLI. Jinak ani v aktualnim Debian Testing v manpages ifconfigu neni jedina zminka o tom, ze by to bylo obsolete nebo deprecated, a nejake technicke zduvodneni za tim by me docela dost zajimalo.
ls
, malem jsem se poblil. Presto jej za deprecated nikdo neoznacil.)
ifcofig
z debianu je z roku 2008 - prostě tam to deprecated nikdo ani nenapsal.
Technické zdůvodnění lépe popíše Michal, praktické zdůvodnění je například takové, že ve výpisu příkazu ifconfig
neuvidíš všechny IP. A to už v praxi problém dělá. Dále tam jsou věci ohledně routovacích tabulek ve výpisu route
vs. ip route
apod.
Rychlé srovnání ifconfig
a ip a show
:
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 46.227.xxx.xxx netmask 255.255.255.248 broadcast 46.227.xxx.xxx inet6 fe80::b81e:aaff:fe16:dea5 prefixlen 64 scopeid 0x20<link> ether ba:1e:aa:16:de:a5 txqueuelen 1000 (Ethernet)vs
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether ba:1e:aa:16:de:a5 brd ff:ff:ff:ff:ff:ff inet 46.227.xxx.xxx/29 brd 46.227.xxx.xxx scope global br0 valid_lft forever preferred_lft forever inet 192.168.42.17/24 brd 192.168.42.255 scope global br0 valid_lft forever preferred_lft forever inet 10.0.0.1/24 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::b81e:aaff:fe16:dea5/64 scope link valid_lft forever preferred_lft foreverVe výpisu
ifconfig
3 ip prostě chybí. Mohli by tam být, kdyby měly přiřazený label, ale tím problémy zdaleka nekončí.
ifconfig
pouzivam jen na par jednoduchych veci, a tam to (zatim vzdy) fungovalo dobre. Pak asi zalezi na tom, jestli Bedna vstava ze stolicky, kdyz to vidi pouzivat u sysadmina - pak bych to pochopil.
Kryptografie je trochu specificka oblast, protoze vsechny algoritmy tam maji omezenou zivotnost (s ohledem na aktualni poznatky a dostupny vypocetni vykon). Pouziti MD5 pro bezpecnostni ucely v soucasne dobe take povazuji za nestastne (uz jen kvuli dostupnosti rainbow tables).
Oblíbená (a svého času celkem rozšířená) horror story je třeba to, když si admin odstřelí pod rukama SSH spojení na vzdálený server, protože se pokusil změnit parametry rozhraní eth0:0
, které ve skutečnosti neexistuje, a ifconfig
místo toho změnu provedl na eth0
, čímž se server stal zcela nedostupným.
Jiná, méně hororová, ale přesto docela nepříjemná, věc, na kterou jsem narazil, je ta, že donedávna ifconfig
ve výpisu tiše ořezával jména rozhraní na určitou délku (IIRC 9 znaků).
Stručně řečeno, ifconfig
občas ukazuje věci, které ve skutečnosti neexistují, velmi často vám neukáže věci, které existují (ale mohou být zatraceně důležité) a občas udělá něco úplně jiného, než se zdá a než by od něj uživatel očekával.
Technicky jsou hlavní problémy v tom, že
V případě nástrojů jako ifconfig
(route
, arp
) už aspoň je povědomí, že jsou zastaralé, i když řada uživatelů pořád setrvává na pozici "na to, co potřebuju, mi to funguje". Ale třeba o existenci ss
většina uživatelů vůbec netuší, a to včetně těch, kteří zoufalou neefektivitu netstat
u pociťují na vlastní kůži (nebo by ocenili rozšířené informace, které by jim ss
poskytl).
10 VLAN10 Port-based No 15 mgmt Port-based No 16 NetAppCl Port-based No 17 vMotion Port-based No 18 vFT Port-based No 20 VLAN20 Port-based No 25 MetRail Port-based No 30 VLAN30 Port-based No 40 VLAN40 Port-based No 42 WAN Port-based No 43 DMZ Port-based No 44 FTP-DE Port-based No 45 IP-Phone Port-based No 46 VLAN46 Port-based No 48 CRANE Port-based No 70 Printers Port-based No 80 Mobile Port-based No 82 FreeWifi Port-based No 100 Camera Port-based NoZdar Max
Tak kdyz je ta moznost, proc ne?Tohle je to ego, o kterém jsem mluvil. Proč to dělat jednoduše, když jsem borec (neberte si to nijak osobně).
...kdyz je prusvih treba jenom na tiskarnach...To jako že ta síť přestane fungovat a všechny ostatní jedou? Nebo že všem najednou dojde toner a IT tam odmailuje nový?
Na mě je těch sítí trochu moc. Jaký je důvod rozdělit třeba tiskárny, kamery a mobily?Tiskárny a kamery mívají výrobcem sto let nepodporovaný děravý firmware, ale k tiskárnám typicky přistupují skoro všichni, ke kamerám jenom nějaký bezpečák a šéf. Asi nechtějí, aby jim to někdo vyownoval. Docházkové zařízení, pokud je to třeba nějaká hrůza s desetiletými XP Embedded, na tom bude podobně. Mobily jsou zase backdoornutý Android se Stagefrightem, do kterého si zaměstnanci nainstalují kdovíco.
DontBreakDebianNo dobře, a myslíš, že přepsat kdovíjakou PHP aplikaci by bylo jednodušší?
Představ si, že tě přejede autobus a někdo po tobě takový server převezme - skočí pod vlak.Hele, je dobrý, že to dal do /usr/local a že používá checkinstall. Alespoň to není takový ten můj postup „nasymlinkujte nějaké binárky z ~ do /usr/bin“.
dpkg-deb
(a dokonce i kombinace tar + ar, ale pozor na pořadí souborů). To takové rpm, to je porod... zvlášť v případě pythonu, kerý je v rom světě považován za architecture-specific (kvůli .pyc).