Hello,
I have installed some packets with nimble. I wonder if it's possible to do a global update after a nimble refresh.
For the moment i use this homemade command:
find ~/.nimble/pkgs/ -type d -maxdepth 1 | for i in $(cut -f1 -d'-'); do nimble install $(basename "$i"); done
It has several problems, though:
Installing [email protected]
Prompt: [email protected] already exists. Overwrite? [y/N]
io.nim(141) raiseEOF
Error: unhandled exception: EOF reached [EOFError]
~$ ls ~/.nimble/pkgs/nico-0.* -lhd
07-07-20 19:42 /home/jseb/.nimble/pkgs/nico-0.2.7/
11-07-20 15:20 /home/jseb/.nimble/pkgs/nico-0.3.1/
I could add a cleaning package in my script. But what if a package has a dependancy on an older package, which should not be removed, then ?
~$ ls ~/.nimble/pkgs/sdl2* -lhd
11-07-20 15:48 /home/jseb/.nimble/pkgs/sdl2-2.0.2/
11-07-20 15:50 /home/jseb/.nimble/pkgs/sdl2_nim-2.0.12.0/
05-07-20 14:53 /home/jseb/.nimble/pkgs/sdl2_nim-#head/
(i didn't dare removing one of them…)
Thank you.
Thank you for you answer.
I just want using nimble as a classic package manager. But may be i don't have understand its goal (i begin to wonder, seeing your post and i'm serious).
A classic package manager can:
Can i do the operations above with nimble ?
When you say:
You should not need to update or clean packages in your pkg directory, you do that in your *.nimble file.
Then nimble install in your project go gets the right versions.
That means that each version of of package needed is installed on the fly when needed by nimble config dependancy (with the requires order ?)
So that mean i could vacuum in ~/.nimble/pkgs without afraiding of breaking deps. That's good. And reading that, i understand that asking a global option for cleaning « outdated » packages is nonsense, because differents projects could need differents versions.
I think i understand better now, thank you.
Nimble is not like a traditional Linux package manager, it is a programming language package manager. Programs or libraries might use different versions of the other libraries, so your 3rd question doesn't make sense. 2nd question - well, maybe, but it is not recommended to depend against latest versions of other software, and so I think it's not really a high-priority for Nimble.
"That means that each version of of package needed is installed on the fly when needed by nimble config dependancy (with the requires order ?)" - yes, "nimble build" or other nimble commands will automatically fetch all dependencies for the current library/package if they're not available.
not quite sure what you are asking?
It would be nice to get informed when a new version is available, and it would be nice to be able to update all packages, or a subset when updates are available.
Generally I do: nimble refresh nimble unistall gintro nimble install gintro
I do not want to collect all the old releases on my harddisk.
Nimble has still an other issue, examples and docs are not provided, so user generally additional has to use some git commands to install full git package.
Note that there is a new package manager available created by a core dev in IRC, I think it is called nimpf.
not quite sure what you are asking?
It would be nice to get informed when a new version is available, and it would be nice to be able to update all packages, or a subset when updates are available.
Generally I do: nimble refresh nimble unistall gintro nimble install gintro
I do not want to collect all the old releases on my harddisk.
Nimble has still an other issue, examples and docs are not provided, so user generally additional has to use some git commands to install full git package.
Note that there is a new package manager available created by a core dev in IRC, I think it is called nimpf.