Ответы пользователя по тегу GNU Make
  • Не получается собрать Python 3.7 из официальных исходников?

    sim3x
    @sim3x
    Гайд
    Как установить питон, требуемой версии одному пользователю в домашнюю директорию

    Вам не нужно менять системный питон
    Никогда

    Запускать так python3.7 -v
    Не так python3 -v
    Почему? which python3.7; which python3

    Что требуется поставить для сборки в убунтах 16.хх-18.хх
    apt-get install -y \
      build-essential git libexpat1-dev libssl-dev zlib1g-dev \
      libncurses5-dev libbz2-dev liblzma-dev \
      libsqlite3-dev libffi-dev\
      libffi-dev tcl-dev linux-headers-generic libgdbm-dev \
      libreadline-dev tk-dev \
      libdb-dev \
      libmpdec-dev \
      libncursesw5-dev




    Получаем исходники и чекаутим нужную версию
    cd /tmp
    git clone https://github.com/python/cpython.git
    cd cpython
    git checkout 3.7


    Обращаем внимание
    Не --prefix=$HOME/.local/bin а --prefix=$HOME/.localИнсталлер создаст такие диры ${prefix}/{bin,include,lib,share}
    Сделайте tree .local до и после make install, тогда не возникнет вопросов, что поставил питон

    Перед любой операцией - требуется читать ман!
    ./configure --help
    Например если предполагается собирать разные варианты питона --with-lto может сильно ускорить процесс

    -j4 повесит сборку на 4 ядра, если они у вас конечно есть

    ./configure --prefix=$HOME/.local --enable-optimizations
    make -j4
    make install


    инсталлер формирует такую структуру для питона
    Перед установкой, желательно руками удалить все. Не директории. В данной директории может быть много софта
    .local
    ├── bin
    │   ├── 2to3 -> 2to3-3.7
    │   ├── 2to3-3.7
    │   ├── easy_install-3.7
    │   ├── idle3 -> idle3.7
    │   ├── idle3.7
    │   ├── pip3
    │   ├── pip3.7
    │   ├── pydoc3 -> pydoc3.7
    │   ├── pydoc3.7
    │   ├── python3 -> python3.7
    │   ├── python3.7
    │   ├── python3.7-config -> python3.7m-config
    │   ├── python3.7m
    │   ├── python3.7m-config
    │   ├── python3-config -> python3.7-config
    │   ├── pyvenv -> pyvenv-3.7
    │   └── pyvenv-3.7
    ├── include
    │   └── python3.7m
    ├── lib
    │   ├── libpython3.7m.a
    │   ├── pkgconfig
    │   └── python3.7
    │   └── man


    Если после инстала и сборки which python3.7не дает результата - проверьте наличие в PATH ~./local/bin
    $ grep "$HOME/.local/bin:" <<< "$PATH"  
    /home/sim3x/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
    Ответ написан