Моя борьба за обновление дистрибутива. Nbconvert -> PanDoc -> pip -> Ipython -> Tornado... Копипаст из консоли. Так как же следить за обновленияями?
Казалось бы, вопрос о том, как "ухаживать" за своей сборкой Linux я давно решил. Берешь чужую сборку типа "ScyLinux" или "Kali" вместо "Centos" или "Debian".
Они сами "следят" за обновлениями и пополняют свои репозитории. Таким образом, не надо рисковать с установкой софта из нескольких репозиториев. Возмозжности получения "кривых" сборок существенно снижаются... Часть обновлений благополучно пропускается (экономия времени). Так, да не так. Вот пример внизу.
Они сами "следят" за обновлениями и пополняют свои репозитории. Таким образом, не надо рисковать с установкой софта из нескольких репозиториев. Возмозжности получения "кривых" сборок существенно снижаются... Часть обновлений благополучно пропускается (экономия времени). Так, да не так. Вот пример внизу.
Решил конвертировать файлы .ipynb в Kali (Debian), пришлось поставить pandoc, и обновить ipython (nbconvert интегрирована в последнюю версию), но далее оказалось, что и Tornado надо обновлять... А для упрощения обновлений модулей Python поставил pip Слегка запутался, чем и что обновлять, но быстро разобрался. Однако, на скачивание ушел почти час... А оно мне надо?
В итоге все работает, но¶
"RuntimeWarning: You are using an old version of pandoc (1.9.4) Recommended version is 1.12.1. Try updating.http://johnmacfarlane.net/pandoc/installing.html. Continuing with doubts..."
Но даже в репозитории Debian, "старая версия" 1.9.4 и я тоже Continuing with doubts...¶
In []:
kiss@kali:/media/usb0/w8/IPython Notebooks/web/Scrapy_Kali$ ipython nbconvert --template basic scrappy_shell.ipynb
[NbConvertApp] Using existing profile dir: u'/home/kiss/.ipython/profile_default'
[NbConvertApp] Converting notebook scrappy_shell.ipynb to html
[NbConvertApp] Support files will be in scrappy_shell_files/
[NbConvertApp] Loaded template basic.tpl
/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/filters/markdown.py:78: UserWarning: Node.js 0.9.12 or later wasn't found.
Nbconvert will try to use Pandoc instead.
"Nbconvert will try to use Pandoc instead.")
[NbConvertApp] ERROR | Error while converting 'scrappy_shell.ipynb'
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/nbconvertapp.py", line 301, in convert_notebooks
output, resources = exporter.from_filename(notebook_filename, resources=resources)
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/exporter.py", line 151, in from_filename
return self.from_notebook_node(nbformat.read(f, 'json'), resources=resources, **kw)
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/templateexporter.py", line 215, in from_notebook_node
output = self.template.render(nb=nb_copy, resources=resources)
File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 894, in render
return self.environment.handle_exception(exc_info, True)
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/../templates/html/basic.tpl", line 1, in top-level template code
{%- extends 'display_priority.tpl' -%}
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/../templates/skeleton/display_priority.tpl", line 1, in top-level template code
{%- extends 'null.tpl' -%}
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/../templates/skeleton/null.tpl", line 26, in top-level template code
{%- block body -%}
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/../templates/skeleton/null.tpl", line 29, in block "body"
{%- block any_cell scoped -%}
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/../templates/skeleton/null.tpl", line 76, in block "any_cell"
{%- block headingcell scoped-%}
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/exporters/../templates/html/basic.tpl", line 79, in block "headingcell"
{{ ("#" * cell.level + cell.source) | replace('\n', ' ') | markdown2html | strip_files_prefix | add_anchor }}
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/filters/markdown.py", line 83, in markdown2html
return markdown2html_pandoc(source)
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/filters/markdown.py", line 87, in markdown2html_pandoc
return pandoc(source, 'markdown', 'html', extra_args=['--mathjax'])
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/utils/pandoc.py", line 63, in pandoc
check_pandoc_version()
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/utils/pandoc.py", line 104, in check_pandoc_version
v = get_pandoc_version()
File "/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/utils/pandoc.py", line 88, in get_pandoc_version
raise PandocMissing()
PandocMissing: Pandoc wasn't found.
Please check that pandoc is installed:
http://johnmacfarlane.net/pandoc/installing.html
In []:
root@kali:/home/kiss# apt-get install pandoc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
openjdk-7-jre-lib python-utidylib
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
libbibutils2 libghc-citeproc-hs-data
Suggested packages:
texlive-xetex
The following NEW packages will be installed:
libbibutils2 libghc-citeproc-hs-data pandoc
0 upgraded, 3 newly installed, 0 to remove and 24 not upgraded.
Need to get 4,827 kB of archives.
After this operation, 20.9 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://http.kali.org/kali/ kali/main libbibutils2 i386 4.12-5 [325 kB]
Get:2 http://http.kali.org/kali/ kali/main pandoc i386 1.9.4.2-2 [4,455 kB]
Get:3 http://http.kali.org/kali/ kali/main libghc-citeproc-hs-data all 0.3.4-1 [46.8 kB]
Fetched 4,827 kB in 23s (210 kB/s)
Selecting previously unselected package libbibutils2.
(Reading database ... 368633 files and directories currently installed.)
Unpacking libbibutils2 (from .../libbibutils2_4.12-5_i386.deb) ...
Selecting previously unselected package pandoc.
Unpacking pandoc (from .../pandoc_1.9.4.2-2_i386.deb) ...
Selecting previously unselected package libghc-citeproc-hs-data.
Unpacking libghc-citeproc-hs-data (from .../libghc-citeproc-hs-data_0.3.4-1_all.deb) ...
Processing triggers for man-db ...
Setting up libbibutils2 (4.12-5) ...
Setting up pandoc (1.9.4.2-2) ...
Setting up libghc-citeproc-hs-data (0.3.4-1) ...
In []:
root@kali:/home/kiss# ipython nbconvert
[TerminalIPythonApp] File not found: u'nbconvert'
root@kali:/home/kiss# pip install ipython --upgrade
Downloading/unpacking ipython from https://pypi.python.org/packages/source/i/ipython/ipython-2.1.0.tar.gz#md5=785c7b6364c6a0dd34aa4ea970cf83b9
Downloading ipython-2.1.0.tar.gz (11.9Mb): 11.9Mb downloaded
Running setup.py egg_info for package ipython
Installing collected packages: ipython
Found existing installation: ipython 0.13.1
Uninstalling ipython:
Successfully uninstalled ipython
Running setup.py install for ipython
checking package data
Installing ipengine2 script to /usr/local/bin
Installing iptest script to /usr/local/bin
Installing ipython2 script to /usr/local/bin
Installing ipcluster2 script to /usr/local/bin
Installing ipcluster script to /usr/local/bin
Installing ipython script to /usr/local/bin
Installing ipcontroller2 script to /usr/local/bin
Installing ipcontroller script to /usr/local/bin
Installing iptest2 script to /usr/local/bin
Installing ipengine script to /usr/local/bin
Successfully installed ipython
Cleaning up...
In []:
kiss@kali:/media/usb0/w8/IPython Notebooks/web/Scrapy_Kali$ ipython notebook
Traceback (most recent call last):
File "/usr/local/bin/ipython", line 9, in <module>
load_entry_point('ipython==2.1.0', 'console_scripts', 'ipython')()
.......
......
File "/usr/local/lib/python2.7/dist-packages/IPython/utils/importstring.py", line 42, in import_item
module = __import__(package, fromlist=[obj])
File "/usr/local/lib/python2.7/dist-packages/IPython/html/notebookapp.py", line 59, in <module>
raise ImportError(msg + ", but you have %s" % tornado.version)
ImportError: The IPython Notebook requires tornado >= 3.1.0, but you have 2.3
In []:
root@kali:/home/kiss# apt-get upgrade tornado
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
dff golismero iceweasel kali-linux-full linux-image-686-pae oclhashcat-lite
oclhashcat-plus w3af w3af-console weevely
The following packages will be upgraded:
acccheck armitage cisco-torch grabber keimpx libburn4 libisofs6 libssl-dev
libssl-doc libssl1.0.0 libxfont1 linux-libc-dev metasploit
metasploit-framework openssl theharvester wol-e
17 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
Need to get 259 MB of archives.
After this operation, 310 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://http.kali.org/kali/ kali/main libburn4 i386 1.3.2-1kali1 [166 kB]
Get:2 http://security.kali.org/kali-security/ kali/updates/main libssl-doc all 1.0.1e-2+deb7u9 [1,198 kB]
Get:3 http://http.kali.org/kali/ kali/main libisofs6 i386 1.3.2-1kali1 [194 kB]
Get:4 http://security.kali.org/kali-security/ kali/updates/main libssl-dev i386 1.0.1e-2+deb7u9 [1,598 kB]
Get:5 http://http.kali.org/kali/ kali/main linux-libc-dev i386 3.14.4-1kali1 [930 kB]
Get:6 http://security.kali.org/kali-security/ kali/updates/main libssl1.0.0 i386 1.0.1e-2+deb7u9 [3,034 kB]
Get:7 http://http.kali.org/kali/ kali/main acccheck i386 0.2.1-1kali4 [11.5 kB]
Get:8 http://security.kali.org/kali-security/ kali/updates/main libxfont1 i386 1:1.4.5-4 [162 kB]
Get:9 http://http.kali.org/kali/ kali/main metasploit-framework i386 4.9.2-2014052101-1kali1 [67.9 MB]
Get:10 http://security.kali.org/kali-security/ kali/updates/main openssl i386 1.0.1e-2+deb7u9 [694 kB]
Get:11 http://http.kali.org/kali/ kali/non-free metasploit i386 4.9.2-2014052101-1kali1 [177 MB]
Get:12 http://http.kali.org/kali/ kali/main armitage all 20140515-0kali1 [6,331 kB]
Get:13 http://http.kali.org/kali/ kali/main cisco-torch all 0.4b-1kali4 [31.1 kB]
Get:14 http://http.kali.org/kali/ kali/main grabber i386 0.1-1kali4 [52.5 kB]
Get:15 http://http.kali.org/kali/ kali/main keimpx all 0.3-1kali1 [28.5 kB]
Get:16 http://http.kali.org/kali/ kali/main theharvester all 2.2a-1kali2 [68.7 kB]
Get:17 http://http.kali.org/kali/ kali/main wol-e all 2.0-1kali3 [8,128 B]
Fetched 259 MB in 15min 58s (270 kB/s)
Reading changelogs... Done
Preconfiguring packages ...
(Reading database ... 368759 files and directories currently installed.)
Preparing to replace libssl-doc 1.0.1e-2+deb7u7 (using .../libssl-doc_1.0.1e-2+deb7u9_all.deb) ...
Unpacking replacement libssl-doc ...
Preparing to replace libssl-dev 1.0.1e-2+deb7u7 (using .../libssl-dev_1.0.1e-2+deb7u9_i386.deb) ...
Unpacking replacement libssl-dev ...
Preparing to replace libssl1.0.0:i386 1.0.1e-2+deb7u7 (using .../libssl1.0.0_1.0.1e-2+deb7u9_i386.deb) ...
Unpacking replacement libssl1.0.0:i386 ...
Preparing to replace libburn4 1.2.2-2 (using .../libburn4_1.3.2-1kali1_i386.deb) ...
Unpacking replacement libburn4 ...
Preparing to replace libisofs6 1.2.2-1 (using .../libisofs6_1.3.2-1kali1_i386.deb) ...
Unpacking replacement libisofs6 ...
Preparing to replace libxfont1 1:1.4.5-3 (using .../libxfont1_1%3a1.4.5-4_i386.deb) ...
Unpacking replacement libxfont1 ...
Preparing to replace linux-libc-dev:i386 3.12.6-2kali1 (using .../linux-libc-dev_3.14.4-1kali1_i386.deb) ...
Unpacking replacement linux-libc-dev:i386 ...
Preparing to replace openssl 1.0.1e-2+deb7u7 (using .../openssl_1.0.1e-2+deb7u9_i386.deb) ...
Unpacking replacement openssl ...
Preparing to replace acccheck 0.2.1-1kali3 (using .../acccheck_0.2.1-1kali4_i386.deb) ...
Unpacking replacement acccheck ...
Preparing to replace metasploit-framework 4.9.2-2014050701-1kali0 (using .../metasploit-framework_4.9.2-2014052101-1kali1_i386.deb) ...
Unpacking replacement metasploit-framework ...
Preparing to replace metasploit 4.9.2-2014050701-1kali0 (using .../metasploit_4.9.2-2014052101-1kali1_i386.deb) ...
[ ok ] Stopping Metasploit worker: worker.
[ ok ] Stopping Metasploit web server: thin.
[ ok ] Stopping Metasploit rpc server: prosvc.
Leaving 'diversion of /usr/bin/msfbinscan to /usr/bin/msfbinscan.framework by metasploit'
Leaving 'diversion of /usr/bin/msfcli to /usr/bin/msfcli.framework by metasploit'
Leaving 'diversion of /usr/bin/msfconsole to /usr/bin/msfconsole.framework by metasploit'
Leaving 'diversion of /usr/bin/msfd to /usr/bin/msfd.framework by metasploit'
Leaving 'diversion of /usr/bin/msfelfscan to /usr/bin/msfelfscan.framework by metasploit'
Leaving 'diversion of /usr/bin/msfencode to /usr/bin/msfencode.framework by metasploit'
Leaving 'diversion of /usr/bin/msfmachscan to /usr/bin/msfmachscan.framework by metasploit'
Leaving 'diversion of /usr/bin/msfpayload to /usr/bin/msfpayload.framework by metasploit'
Leaving 'diversion of /usr/bin/msfpescan to /usr/bin/msfpescan.framework by metasploit'
Leaving 'diversion of /usr/bin/msfrop to /usr/bin/msfrop.framework by metasploit'
Leaving 'diversion of /usr/bin/msfrpc to /usr/bin/msfrpc.framework by metasploit'
Leaving 'diversion of /usr/bin/msfrpcd to /usr/bin/msfrpcd.framework by metasploit'
Leaving 'diversion of /usr/bin/msfupdate to /usr/bin/msfupdate.framework by metasploit'
Leaving 'diversion of /usr/bin/msfvenom to /usr/bin/msfvenom.framework by metasploit'
Unpacking replacement metasploit ...
Preparing to replace armitage 20140423-0kali1 (using .../armitage_20140515-0kali1_all.deb) ...
Unpacking replacement armitage ...
Preparing to replace cisco-torch 0.4b-1kali3 (using .../cisco-torch_0.4b-1kali4_all.deb) ...
Unpacking replacement cisco-torch ...
Preparing to replace grabber 0.1-1kali3 (using .../grabber_0.1-1kali4_i386.deb) ...
Unpacking replacement grabber ...
Preparing to replace keimpx 0.3-1kali0 (using .../keimpx_0.3-1kali1_all.deb) ...
Unpacking replacement keimpx ...
Preparing to replace theharvester 2.2a-1kali1 (using .../theharvester_2.2a-1kali2_all.deb) ...
Unpacking replacement theharvester ...
Preparing to replace wol-e 2.0-1kali1 (using .../wol-e_2.0-1kali3_all.deb) ...
Unpacking replacement wol-e ...
Processing triggers for man-db ...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Setting up libssl-doc (1.0.1e-2+deb7u9) ...
Setting up libssl1.0.0:i386 (1.0.1e-2+deb7u9) ...
Setting up libssl-dev (1.0.1e-2+deb7u9) ...
Setting up libburn4 (1.3.2-1kali1) ...
Setting up libisofs6 (1.3.2-1kali1) ...
Setting up libxfont1 (1:1.4.5-4) ...
Setting up linux-libc-dev:i386 (3.14.4-1kali1) ...
Setting up openssl (1.0.1e-2+deb7u9) ...
Setting up acccheck (0.2.1-1kali4) ...
Setting up metasploit-framework (4.9.2-2014052101-1kali1) ...
Setting up metasploit (4.9.2-2014052101-1kali1) ...
skipping metasploit initialization: postgres not running
insserv: warning: current start runlevel(s) (empty) of script `metasploit' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `metasploit' overrides LSB defaults (0 1 6).
Setting up armitage (20140515-0kali1) ...
Setting up cisco-torch (0.4b-1kali4) ...
Setting up grabber (0.1-1kali4) ...
Setting up keimpx (0.3-1kali1) ...
Setting up theharvester (2.2a-1kali2) ...
Setting up wol-e (2.0-1kali3) ...
In []:
root@kali:/home/kiss# pip install tornado --upgrade
Downloading/unpacking tornado from https://pypi.python.org/packages/source/t/tornado/tornado-3.2.1.tar.gz#md5=d11986d4639aa9f71a31da1ebf40dc19
Downloading tornado-3.2.1.tar.gz (403Kb): 403Kb downloaded
Running setup.py egg_info for package tornado
Downloading/unpacking backports.ssl-match-hostname (from tornado)
Downloading backports.ssl_match_hostname-3.4.0.2.tar.gz
Running setup.py egg_info for package backports.ssl-match-hostname
Installing collected packages: tornado, backports.ssl-match-hostname
Found existing installation: tornado 2.3
Uninstalling tornado:
Successfully uninstalled tornado
Running setup.py install for tornado
building 'tornado.speedups' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c tornado/speedups.c -o build/temp.linux-i686-2.7/tornado/speedups.o
tornado/speedups.c:49:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-i686-2.7/tornado/speedups.o -o build/lib.linux-i686-2.7/tornado/speedups.so
Running setup.py install for backports.ssl-match-hostname
Successfully installed tornado backports.ssl-match-hostname
Cleaning up...
In []:
kiss@kali:/media/usb0/w8/IPython Notebooks/web/Scrapy_Kali$ ipython nbconvert --template basic pydoc_tornado.ipynb
[NbConvertApp] Using existing profile dir: u'/home/kiss/.ipython/profile_default'
[NbConvertApp] Converting notebook pydoc_tornado.ipynb to html
[NbConvertApp] Support files will be in pydoc_tornado_files/
[NbConvertApp] Loaded template basic.tpl
/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/filters/markdown.py:78: UserWarning: Node.js 0.9.12 or later wasn't found.
Nbconvert will try to use Pandoc instead.
"Nbconvert will try to use Pandoc instead.")
/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/utils/pandoc.py:63: RuntimeWarning: You are using an old version of pandoc (1.9.4)
Recommended version is 1.12.1.
Try updating.http://johnmacfarlane.net/pandoc/installing.html.
Continuing with doubts...
check_pandoc_version()
[NbConvertApp] Writing 88066 bytes to pydoc_tornado.html
In []:
root@kali:/home/kiss# pandoc --help
pandoc [OPTIONS] [FILES]
Input formats: native, json, markdown, markdown+lhs, rst, rst+lhs, docbook,
textile, html, latex, latex+lhs
Output formats: native, json, html, html5, html+lhs, html5+lhs, s5, slidy,
slideous, dzslides, docbook, opendocument, latex, latex+lhs,
beamer, beamer+lhs, context, texinfo, man, markdown,
markdown+lhs, plain, rst, rst+lhs, mediawiki, textile, rtf, org,
asciidoc, odt, docx, epub
Options:
-f FORMAT, -r FORMAT --from=FORMAT, --read=FORMAT
-t FORMAT, -w FORMAT --to=FORMAT, --write=FORMAT
-o FILENAME --output=FILENAME
--data-dir=DIRECTORY
--strict
-R --parse-raw
-S --smart
--old-dashes
--base-header-level=NUMBER
--indented-code-classes=STRING
--normalize
-p --preserve-tabs
--tab-stop=NUMBER
-s --standalone
--template=FILENAME
-V KEY[:VALUE] --variable=KEY[:VALUE]
-D FORMAT --print-default-template=FORMAT
--no-wrap
--columns=NUMBER
--toc, --table-of-contents
--no-highlight
--highlight-style=STYLE
-H FILENAME --include-in-header=FILENAME
-B FILENAME --include-before-body=FILENAME
-A FILENAME --include-after-body=FILENAME
--self-contained
--offline
-5 --html5
--ascii
--reference-links
--atx-headers
--chapters
-N --number-sections
--no-tex-ligatures
--listings
-i --incremental
--slide-level=NUMBER
--section-divs
--email-obfuscation=none|javascript|references
--id-prefix=STRING
-T STRING --title-prefix=STRING
-c URL --css=URL
--reference-odt=FILENAME
--reference-docx=FILENAME
--epub-stylesheet=FILENAME
--epub-cover-image=FILENAME
--epub-metadata=FILENAME
--epub-embed-font=FILE
--latex-engine=PROGRAM
--bibliography=FILENAME
--csl=FILENAME
--citation-abbreviations=FILENAME
--natbib
--biblatex
-m[URL] --latexmathml[=URL], --asciimathml[=URL]
--mathml[=URL]
--mimetex[=URL]
--webtex[=URL]
--jsmath[=URL]
--mathjax[=URL]
--gladtex
--dump-args
--ignore-args
-v --version
-h --help
In []:
root@kali:/home/kiss# pandoc -v
pandoc 1.9.4.2
Compiled with citeproc-hs 0.3.4, texmath 0.6.0.6, highlighting-kate 0.5.1.
Syntax highlighting is supported for the following languages:
Actionscript, Ada, Alert, Alert_indent, Apache, Asn1, Asp, Awk, Bash,
Bibtex, Boo, C, Changelog, Clojure, Cmake, Coffeescript, Coldfusion,
Commonlisp, Cpp, Cs, Css, D, Diff, Djangotemplate, Doxygen, Dtd, Eiffel,
Email, Erlang, Fortran, Fsharp, Gnuassembler, Go, Haskell, Haxe, Html, Ini,
Java, Javadoc, Javascript, Json, Jsp, Latex, Lex, LiterateHaskell, Lua,
Makefile, Mandoc, Matlab, Maxima, Metafont, Mips, Modula2, Modula3,
Monobasic, Nasm, Noweb, Objectivec, Objectivecpp, Ocaml, Octave, Pascal,
Perl, Php, Pike, Postscript, Prolog, Python, R, Relaxngcompact, Rhtml, Ruby,
Scala, Scheme, Sci, Sed, Sgml, Sql, SqlMysql, SqlPostgresql, Tcl, Texinfo,
Verilog, Vhdl, Xml, Xorg, Xslt, Xul, Yacc, Yaml
Copyright (C) 2006-2012 John MacFarlane
Web: http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions. There is no
warranty, not even for merchantability or fitness for a particular purpose.
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий