New issue
Advanced search Search tips

Issue 842039 link

Starred by 14 users

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

dev_install fails to install emerge on kevin

Reported by sjb01...@gmail.com, May 11 2018

Issue description

UserAgent: Mozilla/5.0 (X11; CrOS aarch64 10452.85.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Safari/537.36
Platform: 10452.85.0 (Official Build) stable-channel kevin

Steps to reproduce the problem:
1. enable developer mode etc
2. run `sudo su -`
3. run `dev_install`

[4. run `emerge`]

What is the expected behavior?
`dev_install` successfully installs.

`emerge` runs successfully.

What went wrong?
`emerge` does not work:

/usr/local/bin/emerge: /usr/lib/python-exec/python-exec2-c: bad interpreter: No such file or directory

I've attached the full output from running `dev_install`.

I get the following errors at the end of installing:

curl: (22) The requested URL returned error: 403 Forbidden
Emerge installation complete. Installing additional optional packages.
/usr/bin/dev_install: 189: /usr/bin/dev_install: emerge: not found

and then upon running emerge:
-su: /usr/local/bin/emerge: /usr/lib/python-exec/python-exec2-c: bad interpreter: No such file or directory

----

I've worked out that /usr/lib/python-exec/... doesn't exist, and it's instead located at /usr/local/lib/python-exec/...

If I modify `emerge` to try to execute /usr/local/lib/python-exec/python-exec2-c, I get:

/usr/local/bin/emerge: no supported Python implementation variant found!

----

It looks like /usr/local/lib/python-exec/python-exec2-c has the path /usr/lib/python-exec/ hardcoded within it (but I don't have source code or any "real" tools, just looking at the binary in vim).

----

It seems like the solution in some other situations was to symlink whatever in /usr/lib/... to be /usr/local/lib/..., but /usr/lib/ is a read-only filesystem.

Did this work before? N/A 

Chrome version: 66.0.3359.158  Channel: stable
OS Version: 10452.85.0
Flash Version: 

I've been using Chrome OS for all of about 24 hours, sorry if I've overlooked something obvious.
 
dev_install_log.txt
7.0 KB View Download
Components: Infra>Client>ChromeOS>Build OS>Installer
Labels: -Via-Wizard-Other dev_install
I get the same on my Samus.  It appears that dev_install is trying to get this url inside configure_emgerge:

https://commondatastorage.googleapis.com/chromeos-dev-installer/board/samus/canary-R68-10718.13.0/packages/package.provided

For me, that also fails when I paste it into a browser on the same device, with:

Anonymous caller does not have storage.objects.get access to chromeos-dev-installer/board/samus/canary-R68-10718.13.0/packages/package.provided.

Comment 3 by three...@gmail.com, Jun 18 2018

This also occurs on peachpi, snow, daisy, minnie and nyan_big.  So I'd wager its broken across the board(s).


I got the same error on my ChromeBook which version is R67-10575.55.0
I found the error was caused by :
curl https://commondatastorage.googleapis.com/chromeos-dev-installer/board/eve/canary-R67-10575.55.0/packages/package.provided

<?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Details>Anonymous caller does not have storage.objects.get access to chromeos-dev-installer/board/eve/canary-R67-10575.55.0/packages/package.provided.</Details></Error>


Status: Untriaged (was: Unconfirmed)
Same error on lulu 10840.0.0
Same on link (R67-10575.54.0)
Status: Available (was: Untriaged)
Here's a workaround that I came up with, which works for me on my Link device.  I am not a ChromiumOS developer and I can't warranty this in any way, so please use this at your own risk:

# Create symlinks for things emerge wants to find in /usr, not /usr/local
ln -s /usr/local/share/portage /usr/share/
ln -s /usr/local/lib/portage /usr/lib/

# Create a simple python-exec replacement which is less discerning
mkdir /usr/lib/python-exec
echo '#!/bin/bash' > /usr/lib/python-exec/python-exec2-c
echo 'base=$(basename "$1")' >> /usr/lib/python-exec/python-exec2-c
echo 'shift' >> /usr/lib/python-exec/python-exec2-c
echo 'exec /usr/local/bin/python2.7 /usr/local/lib/python-exec/python2.7/"$base" "$@"' >> /usr/lib/python-exec/python-exec2-c
chmod 755 /usr/lib/python-exec/python-exec2-c

# Create symlinks for python so that devserver.py can start properly
ln -s /usr/local/bin/python2.7 /usr/bin/python2.7
ln -s /usr/local/bin/python2.7 /usr/bin/python2
ln -s /usr/local/bin/python2.7 /usr/bin/python

# Redo dev_install:
dev_install --reinstall --yes
SJB's rec seems to have worked for me!

>>> No outdated packages were found on your system.
dev_install done. Enjoy!
I gave SJB's recommendation a try, but unfortunately it failed for me.  I'll just wait for the tool to get fixed and try it again at a later date.

Acer C720p, Chromeos 67.0.3396.99
Failure messages in case anyone is interested:
>>> Installing (49 of 77) dev-python/six-1.10.0::portage-stable to /usr/local/
 * Running stacked hooks for pre_pkg_preinst
 *    wrap_old_config_scripts ...                                                                                                               [ ok ]
/usr/local/var/tmp/portage/dev-python/six-1.10.0/temp/environment: line 3279: /usr/bin/python2.7: No such file or directory
 * ERROR: dev-python/six-1.10.0::portage-stable failed (preinst phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  134:  Called pkg_preinst
 *   environment, line 2861:  Called python_foreach_impl '_cleanup'
 *   environment, line 3520:  Called multibuild_foreach_variant '_python_multibuild_wrapper' '_cleanup'
 *   environment, line 2522:  Called _multibuild_run '_python_multibuild_wrapper' '_cleanup'
 *   environment, line 2520:  Called _python_multibuild_wrapper '_cleanup'
 *   environment, line  629:  Called python_wrapper_setup
 *   environment, line 3919:  Called python_export 'python2.7' 'PYTHON_CONFIG'
 *   environment, line 3279:  Called die
 * The specific snippet of code:
 *                           flags=$("${PYTHON}" -c 'import sysconfig; print(sysconfig.get_config_var("ABIFLAGS") or "")') || die;
 * 
 * If you need support, post the output of `emerge --info '=dev-python/six-1.10.0::portage-stable'`,
 * the complete build log and the output of `emerge -pqv '=dev-python/six-1.10.0::portage-stable'`.
 * The complete build log is located at '/usr/local/var/tmp/portage/dev-python/six-1.10.0/temp/build.log'.
 * The ebuild environment file is located at '/usr/local/var/tmp/portage/dev-python/six-1.10.0/temp/environment'.
 * Working directory: '/usr/local/lib64/python2.7/site-packages'
 * S: '/usr/local/var/tmp/portage/dev-python/six-1.10.0/work/six-1.10.0'
!!! FAILED preinst: 1

>>> Failed to install dev-python/six-1.10.0 to /usr/local/, Log file:

>>>  '/usr/local/var/tmp/portage/dev-python/six-1.10.0/temp/build.log'
Hi I am not able to create the symbolic link as it complains

ln: failed to create symbolic link '/usr/share/portage': Read-only file system

Thanks
Well I know how to remove read-only. Reboot needed at the end

sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification

and 

sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4

seems to have worked for me. 
Make note, I had to do this before:

"
sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification

and 

sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4
"
then reboot, THEN 


I payed special attention to these lines:

"
ln -s /usr/local/bin/python2.7 /usr/bin/python2
ln -s /usr/local/bin/python2.7 /usr/bin/python
"

don't autocomplete /usr/bin/python2 to /usr/bin/python2.7

I did get a warning after running:
"
ln -s /usr/local/bin/python2.7 /usr/bin/python
"
but, dev_install --reinstall --yes seems to have worked...

>> Comment 9 

Thank you
Thanks to your workaround, I could successfully install.
70.0.3538.41 (Official Build) beta @ ASUS C300MA
After dev_install.sh runs, /usr/local/lib/python-exec/python-exec2 has the wrong shebang - 
#!/usr/lib/python-exec/python-exec2
should be
#!/usr/local/lib/python-exec/python-exec2
(note missing .../local/.. path component).

The python-exec2 script uses the wrong path too
   __file__ = os.path.join('/usr/lib/python-exec', EPYTHON,
should be 
   __file__ = os.path.join('/usr/local/lib/python-exec', EPYTHON,

Next, python-exec2-c fails to find the installed python2.7 and so a replacement like the one from comment #9 above works much better.

After that, python will start, but the Portage/emerge installation isn't configured correctly either. It's missing .../local/... all over the place as well. (still working on sorting out this breakage).

Sign in to add a comment