Bug 998140 - Error: Package: nodejs-hawk fails to update
Summary: Error: Package: nodejs-hawk fails to update
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: nodejs-hawk
Version: 18
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: T.C. Hollingsworth
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-08-17 16:36 UTC by Jon Dufresne
Modified: 2013-08-31 04:22 UTC (History)
5 users (show)

Fixed In Version: nodejs-request-2.25.0-3.fc18
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-08-27 23:24:19 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Jon Dufresne 2013-08-17 16:36:27 UTC
$ sudo yum update 
Loaded plugins: langpacks, presto, refresh-packagekit
Resolving Dependencies
--> Running transaction check
---> Package nodejs-form-data.noarch 0:0.0.10-1.fc18 will be updated
--> Processing Dependency: npm(form-data) < 0.1 for package: nodejs-request-2.25.0-1.fc18.noarch
---> Package nodejs-form-data.noarch 0:0.1.0-1.fc18 will be an update
---> Package nodejs-hawk.noarch 0:0.15.0-1.fc18 will be updated
--> Processing Dependency: npm(hawk) < 0.16 for package: nodejs-request-2.25.0-1.fc18.noarch
---> Package nodejs-hawk.noarch 0:1.0.0-1.fc18 will be an update
--> Finished Dependency Resolution
Error: Package: nodejs-request-2.25.0-1.fc18.noarch (@updates)
           Requires: npm(form-data) < 0.1
           Removing: nodejs-form-data-0.0.10-1.fc18.noarch (@updates)
               npm(form-data) = 0.0.10
           Updated By: nodejs-form-data-0.1.0-1.fc18.noarch (updates)
               npm(form-data) = 0.1.0
Error: Package: nodejs-request-2.25.0-1.fc18.noarch (@updates)
           Requires: npm(hawk) < 0.16
           Removing: nodejs-hawk-0.15.0-1.fc18.noarch (@updates)
               npm(hawk) = 0.15.0
           Updated By: nodejs-hawk-1.0.0-1.fc18.noarch (updates)
               npm(hawk) = 1.0.0
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Comment 1 Fedora Update System 2013-08-19 00:14:49 UTC
nodejs-request-2.25.0-3.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/nodejs-request-2.25.0-3.fc18

Comment 2 Fedora Update System 2013-08-19 21:28:24 UTC
Package nodejs-request-2.25.0-3.fc18:
* should fix your issue,
* was pushed to the Fedora 18 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing nodejs-request-2.25.0-3.fc18'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-15010/nodejs-request-2.25.0-3.fc18
then log in and leave karma (feedback).

Comment 3 Jon Dufresne 2013-08-27 00:54:16 UTC
This failed for me.

$ sudo yum update -y --enablerepo=updates-testing nodejs-request 
Loaded plugins: langpacks, presto, refresh-packagekit
Resolving Dependencies
--> Running transaction check
---> Package nodejs-request.noarch 0:2.25.0-1.fc18 will be updated
---> Package nodejs-request.noarch 0:2.25.0-3.fc18 will be an update
--> Processing Dependency: npm(hawk) >= 1.0 for package: nodejs-request-2.25.0-3.fc18.noarch
--> Running transaction check
---> Package nodejs-hawk.noarch 0:0.15.0-1.fc18 will be updated
---> Package nodejs-hawk.noarch 0:1.0.0-1.fc18 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================================================================================
 Package                                              Arch                                         Version                                             Repository                                             Size
===================================================================================================================================================================================================================
Updating:
 nodejs-request                                       noarch                                       2.25.0-3.fc18                                       updates-testing                                        27 k
Updating for dependencies:
 nodejs-hawk                                          noarch                                       1.0.0-1.fc18                                        updates                                               105 k

Transaction Summary
===================================================================================================================================================================================================================
Upgrade  1 Package (+1 Dependent package)

Total download size: 132 k
Downloading Packages:
Setting up and reading Presto delta metadata
(1/2): nodejs-request-2.25.0-3.fc18.noarch.rpm                                                                                                                                              |  27 kB  00:00:00     
(2/2): nodejs-hawk-1.0.0-1.fc18.noarch.rpm                                                                                                                                                  | 105 kB  00:00:00     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                              432 kB/s | 132 kB     00:00     
Running Transaction Check
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : nodejs-hawk-1.0.0-1.fc18.noarch                                                                                                                                                                 1/4 
Error unpacking rpm package nodejs-hawk-1.0.0-1.fc18.noarch
error: unpacking of archive failed on file /usr/lib/node_modules/hawk/node_modules/boom: cpio: rename
  Updating   : nodejs-request-2.25.0-3.fc18.noarch                                                                                                                                                             2/4 
Error unpacking rpm package nodejs-request-2.25.0-3.fc18.noarch
error: nodejs-hawk-1.0.0-1.fc18.noarch: install failed
error: unpacking of archive failed on file /usr/lib/node_modules/request/node_modules/aws-sign: cpio: rename
  Verifying  : nodejs-request-2.25.0-3.fc18.noarch                                                                                                                                                             1/4 
nodejs-hawk-0.15.0-1.fc18.noarch was supposed to be removed but is not!
  Verifying  : nodejs-hawk-0.15.0-1.fc18.noarch                                                                                                                                                                2/4 
  Verifying  : nodejs-hawk-1.0.0-1.fc18.noarch                                                                                                                                                                 3/4 
nodejs-request-2.25.0-1.fc18.noarch was supposed to be removed but is not!
  Verifying  : nodejs-request-2.25.0-1.fc18.noarch                                                                                                                                                             4/4 

Failed:
  nodejs-hawk.noarch 0:0.15.0-1.fc18                 nodejs-hawk.noarch 0:1.0.0-1.fc18                 nodejs-request.noarch 0:2.25.0-1.fc18                 nodejs-request.noarch 0:2.25.0-3.fc18                

Complete!

Comment 4 T.C. Hollingsworth 2013-08-27 03:32:05 UTC
Hmmm, did you try and install hawk from npm to work around the original error?  If you install something from npm over something installed by rpm, rpm gets confused when it tries to go update it and it results in errors like these.

To fix it, just `sudo rm -rf /usr/lib/node_modules/hawk/node_modules` and then `sudo yum --enablerepo=updates-testing update nodejs-hawk nodejs-request` again.

Comment 5 Jon Dufresne 2013-08-27 14:03:58 UTC
Thanks, this now works. I had to use your suggestion for both hawk and request. 

It is possible that npm was used to update parts of the system. I used npm to install bower <http://bower.io/> as it is not available in the Fedora repository. It is possible that an install/update to bower pulled in hawk or request. Or perhaps I did an update to npm itself which pulled those in. I am not sure.

Regardless, Thanks!

Comment 6 Fedora Update System 2013-08-27 23:24:19 UTC
nodejs-request-2.25.0-3.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 7 kealthou 2013-08-28 17:33:54 UTC
(In reply to T.C. Hollingsworth from comment #4)
> Hmmm, did you try and install hawk from npm to work around the original
> error?  If you install something from npm over something installed by rpm,
> rpm gets confused when it tries to go update it and it results in errors
> like these.
> 
> To fix it, just `sudo rm -rf /usr/lib/node_modules/hawk/node_modules` and
> then `sudo yum --enablerepo=updates-testing update nodejs-hawk
> nodejs-request` again.

So, if you have installed npm and nodejs-* packages by using yum, you must not execute "sudo npm -g update" (or must do that workaround every time executing yum update)? That doesn't sound very rational to me.

Comment 8 T.C. Hollingsworth 2013-08-28 23:40:04 UTC
Well, using two different package managers to update the same code isn't very rational, either. ;-)

If I were to update npm, and isaacs releases a new version between the time I push an update and it hits the Fedora repos, you could end up upgrading npm with `npm -g update` and then downgrading it when you `yum update`!

This issue isn't specific to nodejs, either. If you ran a straight `pip update` all kinds of Python stuff will blow up too.

I'm going to figure out a way to paper over the `yum update` failure eventually, but that won't do anything about the little issues that can crop up by having two package managers fighting over updating the same chunk of code.

Really, if you want to use npm to update npm, just install it with npm instead of yum:
curl https://npmjs.org/install.sh | sh

It's fully supported by us to just use our "nodejs" package and have your modules completely managed by npm.

Alternatively, if you want `npm [install|update] -g` to work with a different directory and leave the yum installed modules alone, do something like:
npm -g config set prefix /usr/local

I thought long and hard about doing something like the latter by default, but that would break the install a binary node module and `npm link` it so you don't have to compile it trick, which is really the biggest benefit of having node modules in the distro IMHO.  I hate being forced to have compilers installed on servers.  :-(

Otherwise, you'll just have to `npm update` modules individually.  It would be nice if `npm -g update` had an exclusion mechanism.  Then it would be pretty easy to configure it to ignore yum-installed modules.  But, unfortunately it doesn't.

Comment 9 kealthou 2013-08-31 04:22:26 UTC
That's a great informative guide. I'll go with https://npmjs.org/install.sh instead of yum. Thank you.


Note You need to log in before you can comment on or make changes to this bug.