LINUX.ORG.RU

Почему не ставится Rust-9999 ?

 


0

2
git checkout --quiet d0fc1788123de9844c8088b977cd142021cea1f2
GIT NEW branch -->
   repository:               https://github.com/rust-lang-nursery/clang/
   at the commit:            d0fc1788123de9844c8088b977cd142021cea1f2
>>> Source unpacked in /var/tmp/portage/dev-lang/rust-9999/work
>>> Preparing source in /var/tmp/portage/dev-lang/rust-9999/work/rust-git-src ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-lang/rust-9999/work/rust-git-src ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-lang/rust-9999/work/rust-git-src ...
env: ‘x.py’: No such file or directory
 * ERROR: dev-lang/rust-9999::rust failed (compile phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line 124:  Called src_compile
 *   environment, line 3026:  Called die
 * The specific snippet of code:
 *       env $(cat "${S}"/config.env) ${EPYTHON} x.py build --verbose --config="${S}"/config.toml $(echo ${MAKEOPTS} | egrep -o '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+') --exclude src/tools/miri || die

Я спрашиваю потому, что мне нужна версия 1.30, а в репозитории последняя 1.28

Версия 1.30 мне нужна, чтобы вот - https://github.com/PyO3/pyo3

minimum required rust version is 1.30.0-nightly 2018-08-18.

★★☆

Последнее исправление: Einstok_Fair (всего исправлений: 3)
Ответ на: комментарий от Dark_SavanT
sabayon ~ # rustup
-su: rustup: команда не найдена
sabayon ~ # emerge -av rustup
 * WARNING: The FEATURES variable contains one or more values that
 * should be disabled under normal circumstances: keepwork

 * IMPORTANT: 2 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "rustup".

emerge: searching for similar names...
emerge: Maybe you meant any of these: virtual/rust, dev-lang/rust, sys-process/usbtop, sys-apps/usbtop, dev-util/tup?
sabayon ~ # equo s rustup
╠  @@ Поиск...
╠   Ключевые слова:  rustup
╠   Найдено:         0 entries
Einstok_Fair ★★☆
() автор топика

env: ‘x.py’: No such file or directory

https://forge.rust-lang.org/x-py.html

x.py is the script used to orchestrate the tooling in the rustc repository. It is the script that can build docs, run tests, and compile rustc. It is the now preferred way to build rustc and it replaces the old makefiles from before. Below are the different ways to utilize x.py in order to effectively deal with the repo for various common tasks.

Подсунь ему x.py, либо пофиксь config.env

anonymous
()
Ответ на: комментарий от Dark_SavanT
$ curl https://sh.rustup.rs -sSf | sh
info: downloading installer
error: it looks like you have an existing installation of Rust at:
error: /usr/bin
error: rustup cannot be installed alongside Rust. Please uninstall first
error: if this is what you want, restart the installation with `-y'
error: cannot install while Rust is installed

user@sabayon ~/rust $ rustc --version
rustc 1.28.0-dev
user@sabayon ~/rust $ cargo --version
cargo 1.28.0

Если удалить и поставить, то да, версии другие:

Current installation options:

   default host triple: x86_64-unknown-linux-gnu
     default toolchain: nightly
  modify PATH variable: yes

...

$ rustc --version
rustc 1.30.0-nightly (6e0f1cc15 2018-09-05)
$ cargo --version
cargo 1.29.0-nightly (0ec7281b9 2018-08-20)
Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от anonymous

Подсунь ему x.py, либо пофиксь config.env

Как выполнить каждое из этих действий? Откуда взять x.py (найти на диске или скачать?) Как фиксить config.env?

Почему ebuild не делает это сам?

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)

docker run --rm -ti dolphm/ubuntu-latest-rust-nightly

пару секунд и у тебя рабочий контейнер с последним растом

anonymous
()
Ответ на: комментарий от Einstok_Fair

git clone, найди багу, пофиксь, запили патч, кинь патч диру для патчей, emerge, profit

anonymous
()
Ответ на: комментарий от Bruce_Lee

Почему не ставится *-9999 ?

ахахах)

я не вообще спрашиваю почему в нестабильных пакетах фигня случается, а по одному конкретному

sabayon ~ #

охохох))

зато у меня есть яйца (дистрибутив-то с курицей)

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от Einstok_Fair

зато у меня есть яйца (дистрибутив-то с курицей)

своих чтоли нет?

по теме - или жди когда пофиксят или правь env.

Deleted
()
Ответ на: комментарий от Einstok_Fair

А что выдают на твоей системе eselect python list, eselect python, eselect python show --python2 и eselect python show --python3 ?

O02eg ★★★★★
()

Установят себе не пойми какой дистрибутив, а потом грызут кактус.

Virtuos86 ★★★★★
()

Скопировать ебилд 0.28 в локальный оверлей, переименовать в 0.30, и выполнить ebuild filename.ebuild digest

anonymous
()

А что будет с гентой, когда версии некоторого софта реально будут 9999?

anonymous
()

Хотел было посмотреть на эту ошибку. Для этого списал Rust 1.30 из тырьнета (хоть он мне и не нужен) в виде архива tar.gz и установил. У меня Python уже был установлен. Но ошибки не получилось. Вообще-то, я этого и ожидал. Возможные объяснения:

- хотя Rust 1.30 не рассчитан на определённый дистрибутив Linux, но у меня Ubuntu, а не пёс его знает знает что, работающее пёс его знает как. - У этой версии Rust - еженочные сборки. Может, очередное обновление помогло. - Самое вероятное, как мне кажется. Я ставил Rust не так, как вы, а по прилагаемой к этой версии инструкции. То есть, списал, разархивировал, зашёл в папку с install.sh и подал команду sudo ./install.sh

Результат:

Rust is ready to roll.

Потом зашёл в папку с rustc и подал команду rustc -V, результат:

rustc 1.30.0-nightly (a8c11d216 2018-09-06)

Partisan ★★★★★
()

А зачем так хитроумно ставить nightly? Обычно все очень просто ставится через rustup. Установщик можно скачать прямо с http://rust-lang.org.

Ты, это, не забывай, что классического ООП в rust нет! Там такая же модель работы с объектами, как в haskell :)

dave ★★★★★
()
Ответ на: комментарий от dave

Зачем что-то ставить в генте из бинарников, когда можно собрать из исходников?

O02eg ★★★★★
()

Зачем тебе общесистемный раст ставит? А если понадобится две версии? А если захочется всё вернуть как было?


$ ls -1 ~/.local/opt/
clang+llvm-3.8.1
clang+llvm-3.9.1
clang+llvm-4.0.1
clang+llvm-6.0.0
gcc-arm-none-eabi-6-2017-q2-update
rust-1.22.1-x86_64-unknown-linux-gnu
rust-1.28.0-x86_64-unknown-linux-gnu

Настраивай среду разработчика, как угодно; используй любый компиляторы, какие захочешь. А базовую систему не трогай, поломаешь

Deleted
()
Ответ на: комментарий от Deleted

А если понадобится две версии?

Оно спокойно работает с двумя системными версиями

O02eg ★★★★★
()
Ответ на: комментарий от anonymous

или находясь в том каталоге (или чуть выше, если сразу для нескольких категорий)
repoman manifest

grem ★★★★★
()
Ответ на: комментарий от Deleted

> Зачем тебе общесистемный раст ставит? А если понадобится две версии?

Мне как-то нужны были love (это для игр) версий 0.7 и 0.8 одновременно. В openSUSE не смог установить их оба, а в Gentoo установились (мейнтейнер ебилда предусмотрел слоты)

ZenitharChampion ★★★★★
()
Ответ на: комментарий от dave

Ты, это, не забывай, что классического ООП в rust нет!

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

Partisan ★★★★★
()

Почему не ставится Rust-9999 ?

Потому что Rust-9999! И да я ОН.

anonymous
()
Ответ на: комментарий от Partisan

Это по мотивам другой темы нашего автора. Он довольно активен на этой неделе ;)

dave ★★★★★
()
Ответ на: комментарий от O02eg

Что там фиксить, УМВР.

А как оно у тебя работает?

Я тут посмотрел на код:

https://github.com/rust-lang/rust/blob/master/x.py

/var/tmp/portage/dev-lang/rust-9999/work/rust-git-src # find . -type f -iname "x.py"
./x.py

The specific snippet of code:
 *       env $(cat "${S}"/config.env) ${EPYTHON} \
   x.py build --verbose --config="${S}"/config.toml \
   $(echo ${MAKEOPTS} \
  | egrep -o '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+') --exclude src/tools/miri \
  || die

cat "/var/tmp/portage/dev-lang/rust-9999/work/rust-git-src"/config.env
CFLAGS_i686-unknown-linux-gnu=-m32
CFLAGS_x86_64-unknown-linux-gnu=-m64

# env $(cat "/var/tmp/portage/dev-lang/rust-9999/work/rust-git-src"/config.env) ${EPYTHON} x.py
env: «x.py»: Нет такого файла или каталога/

var/tmp/portage/dev-lang/rust-9999/work/rust-git-src # ls -1 x.py
x.py

# x.py
bash: x.py: команда не найдена

# ./x.py
bash: x.py: команда не найдена

# ./x.py
info: Downloading and building bootstrap before processing --help
      command. See src/bootstrap/README.md for help with common
      commands.
extracting /var/tmp/portage/dev-lang/rust-9999/work/rust-git-src/build/cache/2018-08-01/rust-std-beta-x86_64-unknown-linux-gnu.tar.gz
^C

И увидел, что в строке «specific snippet of code» название x.py написано без указания текущего каталога, из-за этого и не работает.

Поищем это место:
layman -L -W 200 | grep rust
* rust [Git ] (https://github.com/gentoo/gentoo-rust.git, git://github.com/gentoo/gentoo-rust.git, git@github.com:gentoo/gentoo-rust.git )

Вот оно:
https://github.com/gentoo/gentoo-rust/blob/master/dev-lang/rust/rust-9999.ebu...

И в самом деле, написано x.py, а не ./x.py

Теперь скажи мне, пожалуйста, зачем знать какой python, если ошибка в тексте .ebuild - файла?

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от grem

уважаемый grem, обяснитесь, что вы видите эпичного?

я не понимаю, в чём суть баги, но то что баг есть и что он в билде генты это теперь уже факт

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair

Это не баг, а защита от людей со сломанным питоном. Если ты обратишь внимание, то переменная EPYTHON используется не только для вызова конфигуратора.

O02eg ★★★★★
()
Ответ на: комментарий от O02eg

Проблема в том, что вызывается не скрипт x.py из репозитория с исходными текстами, а какой-то другой, который должен лежать где-то в питоне.

Зачем такая диверсионная подмена одного x.py на другой?

переменная EPYTHON используется

ну и что, пускай продолжает, это никак не влияет на неясность подмены.

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair

Проблема в том, что вызывается не скрипт x.py из репозитория с исходными текстами, а какой-то другой, который должен лежать где-то в питоне.

Проблема в том, что его должен вызывать определённый системный питон, который потом будет использован при компиляции раста.

O02eg ★★★★★
()

омг, да поставь ты докер, это же типичный юзкейс

anonymous
()

ты не о том спрашиваешь. скрипт x.py передается интерпретатору в виде аргумента.

${EPYTHON}

https://devmanual.gentoo.org/eclass-reference/python-utils-r1.eclass/index.html

EPYTHON
    The executable name of the current Python interpreter.

    This variable is set automatically in the following contexts:

    python-r1: Set in functions called by python_foreach_impl() or after calling python_export_best().

    python-single-r1: Set after calling python-single-r1_pkg_setup().

    distutils-r1: Set within any of the python sub-phase functions.

    Example value:

    python2.7
anonymous
()
Ответ на: комментарий от anonymous

automatically
python-r1, python-single-r1, distutils-r1

а у него в inherits
multiprocessing
multilib-build
git-r3
python-any-r1
llvm
toolchain-funcs

Не вижу ничего общего.
python-any-r1 -> python-utils-r1, а тот не содержит inherits

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от Einstok_Fair

баг есть и что он в билде генты это теперь уже факт

в официальном дереве генты нет такого ebuild-файла, так что свой вопрос можешь задать человеку, который его писал

Почему ebuild не делает это сам?

Потому, что ebuild делает то, что в него записано. И то, что ты этого не понимаешь - эпично.

Не говоря о том, что ты, наверняка, не писал ни в багзиллу генты, ни в багзиллу сабайона об обновлении rust, ни проверил есть ли там уже соответствующий запрос, а зачем-то пришёл жаловаться на ЛОР c неизвестно откуда взявшимся скриптом сборки.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 3)
Ответ на: комментарий от grem

что ты, наверняка, не писал

выше по треду есть ссылка на багу, бага создана в правильном месте

Сейчас мы обсуждаем в чем суть баги с её автором O02eg

Я утверждаю, что по документации переменная EPYTHON должна устанавливаться автоматически. Либо надо дополнить документацию.

Уважаемый автор утверждает, что у меня python настроен неправильно (но у меня он настроен по документации)

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair

Я утверждаю, что по документации переменная EPYTHON должна устанавливаться автоматически. Либо надо дополнить документацию.

В твоём environment есть выставление EPYTHON.

Уважаемый автор утверждает, что у меня python настроен неправильно (но у меня он настроен по документации)

Напомню, что ты до сих пор не выложил выхлоп eselect, что намекает на то, что твоя истерика беспочвенна.

O02eg ★★★★★
()
Ответ на: комментарий от Einstok_Fair

Если ты посмотришь свой собственный temp/environment, ты увидишь, где у тебя должен был бы выставиться EPYTHON

O02eg ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.