slackware.ru
http://www.slackware.ru/forum/

Вопрос о размерах
http://www.slackware.ru/forum/viewtopic.php?f=34&t=2318
Страница 1 из 1

Автор:  AlexMak [ 03 июл 2018 18:56 ]
Заголовок сообщения:  Вопрос о размерах

Хотелось бы спросить у многоуважаемых форумчан о размерах дистрибутива. Если ставить даже а , ар и n наборы, то уже получается около полутора гигов. Если взять какую-нибудь runtu или antix, то они с графикой(!) кушают меньше места (количество консольных утилит не сравнивал). У них установочник около 300М. Как??

Я не против и не за, просто хотелось бы знать, как у них это получается "ужать" дистрибутив? Спрашиваю, потому что хочеться сделать что-то компактное под себя на базе слаки (эх, мечты...).

Автор:  gramozeka [ 03 июл 2018 19:27 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
Если взять какую-нибудь runtu или antix, то они с графикой(!) кушают меньше места (количество консольных утилит не сравнивал). У них установочник около 300М. Как??

стоит изучить принципы построения RPM-based дистров.
Если на пальцах - минимальная конфигурация(ака лишь бы завелась) rpm-дистров состоит только из бинарников и линкуемых библиотек, плюс /etc, всё это весит не много, если ещё и люто стрипнутые, так же в ней отсутствует вся! документация(в том числе и маны), в ней отсутствует полностью /usr/include, если только какие-то отдельные хедеры нужные для работы бинарника, в ней отсутствует весь девелопмент... в Слаке подход совершенно другой - любая прога идет в полном комплекте "как есть", поэтому и весит это всё, ну и сама схема установки "стороннего софта" подразумевает сборку, т.е. наличие всей девелоп-структуры вместе с компиляторами. Вот и считай.

Автор:  AlexMak [ 04 июл 2018 04:42 ]
Заголовок сообщения:  Re: Вопрос о размерах

Так они же DEB вроде, а не RPM. И потом, я писал, что не ставил ничего лишнего (без девелопмента), только консольки и то! Размер без графики получился больше, чем в каком-нибудь Puppy-Linux. Хотя смутно понимаю про скриптовку и линковку, но маны к программам там тоже имеются вроде (в рунте точно). Там вроде все помещают в SquashfS какой-то...

Еще волнует вопрос по другой теме. Можете на пальцах объяснить, что за сервера SVN, git, pip'ы всякие... У Gentoo еще synk. Какое отличие от ftp и http? Если простым языком?

Автор:  bormant [ 04 июл 2018 10:08 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
хочеться сделать что-то компактное под себя на базе слаки (эх, мечты...)
Сделать несложно на самом деле, поддерживать сделанное -- немного сложнее, но тоже не космические технологии.

На LQ, да и здесь, периодически поднимаются темы про минимальную Slackware, поищите.

Совсем минимум имеет смысл только если собирать всё на какой-то другой машине с более-менее полным набором, иначе пользоваться такой игрушкой будет неловко и больно ;-)
Скажу по секрету: aaa_elflibs заменяет собой довольно много пакетов, но правда до тех пор, пока речь не коснется сборки ;-) Пакеты *-solibs созданы ровно в тех же целях -- дублируют основные только в части бинарников.

Кроме того, никто не запретит удалить, например, документацию
Код:
# rm -rf /usr/doc/* /usr/man/*
а также неиспользуемые локали... Было бы желание, а натворить можно много чего...


PS. Есть весьма простой способ быстро поставить компактную Slackware -- ставим Salix в варианте Core или Basic, переключаем хранилища на Slackware ;-) (q) ALV

Автор:  AlexMak [ 04 июл 2018 11:14 ]
Заголовок сообщения:  Re: Вопрос о размерах

Даа... Про Salix уже думал, он немного усушен уже изначально. И собираемый дистр был бы изначально "походным", для использования бинарников (без компиляторов). Собирал из core-версии саликса и хотел "чисто консольный линукс", но проги все фреймбуферные (считай иксы уже тянутся). И уже на первых этапах столкнулся с неприятным разрастанием дистра до "обычных" размеров.

Некоторые приложения, типа mc и mocp, идут вопросиками без локалей, а локали запиханы в огромный glibc... Я так понял нужно каждый пакет разглядывать и выковыривать из него не нужное (читай - не критичное для работы) и перепаковывать, или пересобирать без всего этого.

Плюс, неразрешимая пока для меня неприятность, типа мягких зависимостей. Программа вроде ничего не просит по ldd, а работать отказывается или вообще все виснет и только reset (хотя в полном варианте дистра она работает хорошо). Как неявные зависимости распознать?

Вообщем, мечта должна оставаться мечтой, иначе не к чему стремиться :) У минтовцев и antix-овцев же получилось. Понятно, что нужен скилл...

Автор:  bormant [ 04 июл 2018 12:00 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
хотел "чисто консольный линукс", но проги все фреймбуферные (считай иксы уже тянутся)

Вот здесь не понял. Как X и фреймбуфер связались (кроме того, что в иксах был отдельный драйвер, позволяющий пускать их в фреймбуфере)? Вывод графики в фреймбуфер не требует X-ов.

Автор:  AlexMak [ 04 июл 2018 12:13 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
хотел "чисто консольный линукс", но проги все фреймбуферные (считай иксы уже тянутся)

Вот здесь не понял. Как X и фреймбуфер связались (кроме того, что в иксах был отдельный драйвер, позволяющий пускать их в фреймбуфере)? Вывод графики в фреймбуфер не требует X-ов.

Извините, не то написал, конечно. Мплаер хотел фреймбуферный в дистр, а он тянет иксовые библиотеки. Вообще, планируемый список мультимедийных прог хотел:

1) mps-youtube;
2) mplayer;
3) netsurf-fb, links -g;
4) fbpdf, fbdjvu;
5) fbi;
6) rtorrent;
7) mc;
8) moc;
9) wordgrinder;
10) dosbox;
11) tmux;
+ утилиты для жонглирования файлами (cd/ls/less/mv) и сети, естественно. Больше не нужно и можно выкусить. Дистр, повторюсь, только для попрактиковаться и for fun.

Все это с красивой менюшкой и в splash-консоли. :-):
bormant, как быть с мягкими зависимостями?

Автор:  Graf [ 04 июл 2018 13:23 ]
Заголовок сообщения:  Re: Вопрос о размерах

Как-то народ делали минимальную установку 14.1.
И даже сделали livecd с существующей системы равной 256 Мб. Можешь попробовать. :)

Автор:  AlexMak [ 04 июл 2018 14:38 ]
Заголовок сообщения:  Re: Вопрос о размерах

Спасибо! Люди, ну ответьте, кто как борется с неявными зависимостями? Исходники читаете? Или есть более человеческий способ?

Автор:  gramozeka [ 04 июл 2018 18:17 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
Так они же DEB вроде, а не RPM. И потом, я писал, что не ставил ничего лишнего (без девелопмента), только консольки и то!


«... не, Киркоров мне не нравится, весь припудренный как баба... одно слово - румын.
- так он же болгарин.
-да !? а какая разница!»©

строятся они точно так же - прога собирается и напиливается на стопицот мелких пакетов состоящих порой из одного единственного файла.

отдельно про девелопмент - у Патрика это отдельная ветка /d, я же имел ввиду концептуальное понятие - на примере объясню :
openssl состоит из двух бинарников и семи библиотек, в довесок к нему идет набор include с двадцатью с лишним файлов, вот это нужно для того чтобы ты смог собрать что-нибудь с шифрованием, но если этот инклюд убрать, сама прога будет нормально работать и всё что было собрано до того тоже будет работать. Но вот что-то собрать ты уже не сможешь. То же относится и к /usr/pkgconfig наличие или отсутствие этого каталога никак не скажется на работе уже установленных программ, но вот что-то собрать самостоятельно без него ты опять таки не сможешь. Вот это всё и вынесено rpm и deb в отдельную ветку пакетов которые так и названы .dev пакеты, т.е. девелопмент. А это в конечном итоге довольно солидно весит.
Например у меня include весит 379 Мб и 300 Мб pkgconfig — пол-гига! А если по всей системе пошарить(те же доки с манами) то ещё можно наскрести.
Цитата:
Люди, ну ответьте, кто как борется с неявными зависимостями? Исходники читаете? Или есть более человеческий способ?

читай разработчиков, они обычно указывают что необходимо, и да, чтение README и одиночный запуск ./configure --help в теле исходника решает многие непонятки.

Автор:  AlexMak [ 04 июл 2018 19:21 ]
Заголовок сообщения:  Re: Вопрос о размерах

Спасибо, толково объяснил! Про разрешение зависимостей нужно большими буквами в слакбуке писать, иначе польза от него стремиться к нулю. Там же про это чудесным образом ни слова. Зачем новых пользователей под корягу заводить... Крутитесь сами с зависимостями, как хотите. - А как крутиться? - А как хотите!

Может даже напишу когда-нибудь вольный перевод с упором на пакетный менеджмент и способы разрешения зависимостей (не буду зарекатся, да и тямы в этих делах нет). В текущем виде слакбук - типичная проходная книжка по линуксу.

Автор:  bormant [ 04 июл 2018 22:04 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
Про разрешение зависимостей нужно большими буквами в слакбуке писать
В поддерживаемой установке Slackware (полной) нет неразрешенных зависимостей.
В свете изложенного -- в слакбуке этим сведениям делать нечего.

А про "самообразование и постижение" и других статей и книжек вполне хватает ;-)

Автор:  AlexMak [ 05 июл 2018 05:58 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
Скажу по секрету: aaa_elflibs заменяет собой довольно много пакетов

А если поставить пакеты с файлами, которые дублирует aaa_elflibs, можно будет в конечном счете aaa_elflibs снести (в целях уменьшения собственной сборки)? И также снести solibs после установки дублируемых файлов?

При установке дубликатов в системе, куда смотрят в первую очередь программы, использующие эти файлы? К примеру: на aaa_elflibs или на glibc2-2.*? Какая-то иерархия есть, или там по-хитрому все устроено? Нет ли конфликтов?

Автор:  gramozeka [ 05 июл 2018 06:58 ]
Заголовок сообщения:  Re: Вопрос о размерах

Цитата:
Про разрешение зависимостей нужно большими буквами в слакбуке писать,

не нужно. "Разрешение зависимостей" - несуществующая, высосанная из известного органа, проблема лоровской школоты. "Разрешение зависимостей" это простой рутинный алгоритм сборки любых программ, в нём нет ни секретов, ни мистики, ни каких то "волшебных" финтов ушами.
Вот простейший пример "Разрешение зависимостей" на примере сборки bluefish-2.2.10:
сперва, распаковав тарбол в отдельный каталог, читаем README, INSTALL. Там уже явно прописано какие части необходимы для программы, но допустим читать лень, тогда "путь индуса" наше всё... :ps_ih:
второй шаг запускаем ./configure --help
нам вывалит все возможные опции сборки этого пакета:
Код:
[ ~/bluefish-2.2.10 ]# ./configure --help
`configure' configures bluefish 2.2.10 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:                                                                                                                                   
  --bindir=DIR            user executables [EPREFIX/bin]                                                                                                                       
  --sbindir=DIR           system admin executables [EPREFIX/sbin]                                                                                                             
  --libexecdir=DIR        program executables [EPREFIX/libexec]                                                                                                               
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]                                                                                                           
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]                                                                                               
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]                                                                                                         
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]                                                                                                     
  --libdir=DIR            object code libraries [EPREFIX/lib]                                                                                                                 
  --includedir=DIR        C header files [PREFIX/include]                                                                                                                     
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]                                                                                                           
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]                                                                                                 
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]                                                                                               
  --infodir=DIR           info documentation [DATAROOTDIR/info]                                                                                                               
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]                                                                                                           
  --mandir=DIR            man documentation [DATAROOTDIR/man]                                                                                                                 
  --docdir=DIR            documentation root [DATAROOTDIR/doc/bluefish]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-maintainer-mode
                          enable make rules and dependencies not useful (and
                          sometimes confusing) to the casual installer
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --disable-nls           do not use Native Language Support
  --enable-static[=PKGS]  build static libraries [default=no]
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-debugging-output
                          enable massive debugging output (slows down the
                          program) [default=no]
  --enable-highlight-profiling
                          enable profiling information about highlighting
                          patterns (slows down the program) [default=no]
  --enable-development    enable development checks, recommended when building
                          from svn [default=no]
  --enable-gprof-profiling
                          enable gprof profiling (slows down the program)
                          [default=no]
  --enable-gcov-coverage  enable coverage (slows down the program)
                          [default=no]
  --disable-deprecated    enable/disable deprecated functions (e.g. Glib/Gtk)
                          [default=yes]
  --enable-xml-catalog-update
                          enable (or disable) the running of xmlcatalog after
                          installation - some distributions like Debian use
                          their own system for registering catalogs, so be
                          careful here and also check the '--with-xml-catalog'
                          option [default=yes]
  --enable-update-databases
                          enable (or disable) the running of
                          update-desktop-database/update-mime-database after
                          installation [default=yes]

  --enable-spell-check    enable (or disable) spell checking capabilities
                          [default=yes]

  --disable-python        disable (or enable) python integration for
                          zen-coding plugin [default=yes]

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                          both]
  --with-aix-soname=aix|svr4|both
                          shared library versioning (aka "SONAME") variant to
                          provide on AIX, [default=aix].
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
                          compiler's sysroot if not specified).
  --with-xml-catalog=[FILE]
                          the specified file is the systems XML catalog
                          (/etc/xml/catalog for most systems), that shall be
                          updated after installation running xmlcatalog
                          [default=${sysconfdir}/xml/catalog]
  --with-freedesktop_org-menu=[DIR]
                          install freedesktop.org menu files in directory DIR
                          (if supplied) or suppress installation
                          [default=${datadir}/applications]
  --with-freedesktop_org-mime=[DIR]
                          install freedesktop.org mime support files in
                          directory DIR (if supplied) or suppress installation
                          [default=${datadir}/mime]
  --with-freedesktop_org-appdata=[DIR]
                          install freedesktop.org appdata support files in
                          directory DIR (if supplied) or suppress installation
                          [default=${datadir}/appdata]
  --with-theme-path=[DIR] install theme icons in directory DIR (if supplied)
                          or suppress installation
                          [default=${datadir}/icons/hicolor]
  --with-icon-path=[DIR]  install GNOME-pixmap icons in directory DIR (if
                          supplied) or suppress installation
                          [default=${datadir}/pixmaps]
  --with-gtk2             Use GTK2+ instead of GTK3+, even if GTK3+ is
                          available [default=no]


Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  LT_SYS_LIBRARY_PATH
              User-defined run-time library search path.
  GDK_PIXBUF_CSOURCE
              The 'gdk-pixbuf-csource' executable. Use it to define or
              override its location.
  UPDATE_DESKTOP_DATABASE
              The 'update-desktop-database' program. Use it to define or
              override its location.
  UPDATE_MIME_DATABASE
              The 'update-mime-database' program. Use it to define or override
              its location.
  PKG_CONFIG  path to pkg-config utility
  PKG_CONFIG_PATH
              directories to add to pkg-config's search path
  PKG_CONFIG_LIBDIR
              path overriding pkg-config's built-in search path
  BLUEFISH_REQUIRED_CFLAGS
              C compiler flags for BLUEFISH_REQUIRED, overriding pkg-config
  BLUEFISH_REQUIRED_LIBS
              linker flags for BLUEFISH_REQUIRED, overriding pkg-config
  BLUEFISH_GTKMAC_CFLAGS
              C compiler flags for BLUEFISH_GTKMAC, overriding pkg-config
  BLUEFISH_GTKMAC_LIBS
              linker flags for BLUEFISH_GTKMAC, overriding pkg-config
  CHARMAP_PLUGIN_CFLAGS
              C compiler flags for CHARMAP_PLUGIN, overriding pkg-config
  CHARMAP_PLUGIN_LIBS
              linker flags for CHARMAP_PLUGIN, overriding pkg-config
  PYTHON      The 'python' binary with path. Use it to define or override the
              location of 'python'.
  MAN         The 'man' binary with path. Use it to define or override the
              location of 'man'.
  JING        The 'jing' binary with path. Use it to define or override the
              location of 'jing'.
  JING_FLAGS  Options, which should be used along with 'jing'.
  XMLLINT     The 'xmllint' binary with path. Use it to define or override the
              location of 'xmllint'.
  XMLLINT_FLAGS
              Options, which should be used along with 'xmllint', like e.g.
              '--nonet'.
  DESKTOP_FILE_VALIDATE
              The 'desktop-file-validate' binary with path. Use it to define
              or override the location of 'man'.

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <http://bugzilla.gnome.org/buglist.cgi?product=bluefish>.

третий шаг - тот же ./configure только без --help, если нам чего-то не хватает, то он сам скажет чего:
Код:
[ ~/bluefish-2.2.10 ]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
... бла-бла-бла
....
configure: checking for required development files
checking for BLUEFISH_REQUIRED... no
configure: error: Package requirements (gtk+-3.0 gdk-3.0 glib-2.0 >= 2.24 gmodule-2.0 >= 2.24 gobject-2.0 pango gdk-pixbuf-2.0 gio-unix-2.0 >= 2.24 gthread-2.0 libxml-2.0) were not met:

No package 'gtk+-3.0' found
No package 'gdk-3.0' found
No package 'glib-2.0' found
No package 'gmodule-2.0' found
No package 'gobject-2.0' found
No package 'pango' found
No package 'gdk-pixbuf-2.0' found
No package 'gio-unix-2.0' found
No package 'gthread-2.0' found
No package 'libxml-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables BLUEFISH_REQUIRED_CFLAGS
and BLUEFISH_REQUIRED_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

по моему очень понятно чего он хочет. Если возникают затруднения с идентификацией той или иной программы по имени выданном configure(иногда он просто говорит имя библиотеки из какого-то более объёмного проекта, то гугль-поиск в библиотеке rpm:
Код:
gmodule-2.0:rpm search

где можно подглядеть к какому пакету принадлежит тот или иной фрагмент(в браузере в строке поиска забиваем эту фразу), как правило в первой же ссылке можно увидеть что-то вроде:
Цитата:

Package Summary Distribution Download
glib-2.41.2-1.ram0.99.i686.html GLib SourceForge glib-2.41.2-1.ram0.99.i686.rpm


отбрасываем rpm-овские расширения - вот это и есть исходный пакет в котором находится gmodule-2.0, т.е. glib-2.41.2-1.
Ну а дальше дело в шляпе, ставим что недостаёт и проверяем снова:
Код:
 [ ~/bluefish-2.2.10 ]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
....
бла-бла-бла.
...
checking that generated files are newer than configure... done
configure: creating ./config.status
..........
....

т.е. требуемый минимум по зависимым библиотекам выполнен и можно продолжать сборку. Дальше экспериментируем с опциями из /configure --help и собираем пакет по известной схеме.

Вот и весь секрет полишинеля.

Автор:  bormant [ 05 июл 2018 07:00 ]
Заголовок сообщения:  Re: Вопрос о размерах

Уменьшения размера не выйдет, посмотрите в /var/log/packages/aaa_elflibs-* и для заменяемых пакетов — библиотеки лежат в системе по одним и тем же путям. То же самое для solibs и их родителей. Изначально задумано, что файлы одинаковы (на момент сборки одни и теже, одним слакбилдом формируются, или из одних результатов компонуются), поэтому конфликт не имеет значения. Просто такая «военная хитрость» ;) — работы чуть, а пользы море.

PS. Можно посмотреть в MANIFEST.bz2, если интересуют пакеты, которые не устаноалены (соответственно в /var/log/packages про них нет информации).

Автор:  AlexMak [ 05 июл 2018 07:33 ]
Заголовок сообщения:  Re: Вопрос о размерах

gramozeka, благодарствую! На примерах оно понятнее оказывается! Примеры нужны.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/