Pkg.update() and Pkg.rm() hanging - julia

I was trying to update my julia packages, and I'm running into issues. First, I ran Pkg.update() as always...
julia> Pkg.update()
INFO: Updating METADATA...
INFO: Updating Bio...
INFO: Computing changes...
INFO: Upgrading Atom: v0.2.0 => v0.2.1
It hung on that last line (I finally did a keyboard interrupt after about an hour). So I thought I'd just remove and reinstall Atom.
julia> Pkg.rm("Atom")
INFO: Upgrading Colors: v0.6.1 => v0.6.2
Same problem here. It just hangs. Keyboard interrupt again. Next:
julia> Pkg.rm("Colors")
INFO: Removing Colors (unregistered)
This went fine.
julia> Pkg.rm("Atom")
INFO: Installing Colors v0.6.2
Hangs. If I try to add Colors by itself, the first thing that happens is it tries to upgrade Atom, and it hangs. So my main question is how to fix this, but I'm also confused why trying to remove a package is trying to install other packages.

I can't say for certain why these commands are hanging in your case, however, there's an issue on Pkg.update() hanging that some users have tracked back to Git itself rather than Julia. If you experience another Pkg.update() hang, check the processes running on your system and see if you can determine whether it's a Julia issue or a Git issue. The v0.5 release of Julia will be using a different Pkg implementation that may have fixed this, and in the meantime, you might be able to use a fix like this. If you need further assistance, post to that issue and see if you can get more detailed help.
In addition to the Pkg.rm("PKG"); Pkg.add("PKG"); workaround used by datafig, if you find yourself continuing to have trouble with this, or having to manually remove and add back multiple packages, you could try keeping a running list of your favorite packages so you can quickly blast away and then rebuild your package library
rm(homedir() * "/.julia", recursive=true);Pkg.init()
pkgs = [
"Colors",
"Atom"
]
for p in pkgs
Pkg.add(p)
end
Just put whatever packages you use most in the pkgs array, and if you get stuck again that should serve as a reliable workaround until a more permanent fix is found.

Related

Julia: Use an older version of a package

I am really new to Julia and confused about using an old version of the SISL Vec package.
I am trying to setup ngsim_env and their instructions require you to use an older v0.1.0 of Vec. But, when I followed the instructions to install the Vec package and then checkout the v0.1.0 tag it didn't work.
Here's what I did
$ julia ../build.jl for some package which includes this block
packages = keys(Pkg.installed())
if !in("Vec", packages)
Pkg.clone("https://github.com/tawheeler/Vec.jl.git")
end
Note: This git URL actually goes to the SISL Vec page.
cd ~/.julia/packages/Vec
git fetch tags
git checkout v0.1.0
I did a bunch of other installations with many other packages. At some point I noticed that there is a package ~/.julia/dev/Vec and ~/.julia/packages/Vec. The one in dev has the correct v0.1.0 code and the one in packages has the newer wrong code. When I tried to use other packages that needed the older Vec they were throwing errors and the paths were to files in the packages directory.
I tried Pkg.rm("Vec"). This did something to the project manifest. After nothing worked, every package would throw errors like KeyError: key "Vec" not found and Pkg.add("Vec") nor original Vec installation helped. I even tried removing both the Vec directories from ~/.julia but that didn't help.
I guess a big question is why does Julia put some packages into packages/ and others into dev/ and how to control which one's get used if the same package appears in both places like Vec is.
Would greatly appreciate any assistance, totally confused.
The dev command fetches a full clone of the package to ~/.julia/dev/
via the docs. The only things I have in my dev directory there are the ones I am developing on my own.
I think that triggered when you did a check out manually with git checkout.
Accordingly:
to stop tracking a path and use the registered version again, use free
Try deleting the packages, and whipping mentions of Vec.jl from your manifest:
(v1.0) pkg> rm Vec
(v1.0) pkg> add https://github.com/tawheeler/Vec.jl.git#0.1.0
In general, try using Pkg when possible, cause it does a lot of house keeping magic in the back
(Also, the repl interface with pkg makes everything easier, so hit ] from a blank julia> to get there. And a quick Pkg.status() or ] st will show you what youre tracking and whats in dev and what version you have pinned, etc.)

How to update to Julia 0.7 on MacOs without installing packages again

I am a user of Julia v0.6, no issues to report. I am trying to update to Julia v0.7. I already have the CMD line version installed.
I copied the packages over from the v0.6 folder into my packages folder that came with v0.7.
Here is an image of my file structure in finder.
I see the packages in the "Packages" folder you see above. However, when I try "using SHERPA" for example(SHERPA is a package in the "Packages" folder), it says it's not installed. I thought maybe Pkg.init() would fix the problem but that command is deprecated on v0.7 so I don't know what to do.
I have already looked at the other StackOverflow questions and those didn't resolve my issue. I also already tried Pkg.resolve() and Pkg.Update() to no avail.
I appreciate your support.
Edit W/Solution:
At the time of this writing, I am running MacOs Mojave on my Mac and would suggest at least MacOs High Sierra since the file structure was changed in there.
Install Julia 0.7: https://julialang.org/downloads/ Note: if you don't see v0.7 on the link above, go here: https://julialang.org/downloads/oldreleases.html
Once v0.7 is installed, make sure it dragged into your application folder.
Run the program. Type "Pkg.resolve()" and "Pkg.Update()" in the Julia Terminal window that appears.
Then Run:
Pkg.add("JSON")
in order to get your packages file to show up...
This should make it so the new package management system is enabled. You can confirm that by checking your ".julia" folder(which can be accessed but going to finder - clicking Command-Shift-H and then Command-Shift-.)
You should see an "environments", "packages" and "registries" folder(in addition to probably a few others). Note as of now, due to the new package manager, you either cannot or I don't know how to, clone a project from GitHub desktop to your packages folder.
To add a custom-made package: open command line version v0.7
Type "]". You should see "(v0.7) pkg> " in blue text. Note use "Control"-"c" to exit Pkg mode in terminal.
Type " add https://github.com/xxxxxxx/xxxxxxx.git"
Type " add https://github.com/xxxxxx/xxxxxxx.git" Note: follow any on-screen prompts(i.e. "Type PKg.resolve() or Pkg.update()")
Note: you will probably see many depreciation warning when you run your old code.
How to use the new Pkg manager in Julia v0.7: https://docs.julialang.org/en/v1/stdlib/Pkg/index.html
This is not possible and/or not recommended for the following reasons:
The package manager is completely new in Julia v0.7/v1.0 compared to the one in Julia v0.6. In particular, the new package manager does not understand the old package managers folder structure and method of installation (git cloning). As a sidenote, the packages folder is not supposed to be modified by users, it is controlled by Pkg, and, in particular, putting something in the packages folder does not mean it is installed.
Since there have been very many changes between Julia v0.6 and v0.7/v1.0 is is unlikely that the same package versions that you use on Julia v0.6 works on newer Julia versions, so you don't really gain anything from copying, since you need to "reinstall" new versions anyway.
I would also like to point out that the new package manager is much faster compared to the old one, so
pkg> add PackageA PackageB ...
to add all the packages you use should not take more than a minute.

R does not build my project after several weeks with no changes

A bit frustrated right now. I have an R project that I built several weeks ago that I have not touched in those weeks. Come back to R Studio to do some debugging, and it will not rebuild the package. When I run the Check command from within the RStudio UI, the error I get is:
Error: Check failed: 'P:\MosaicPA\R Packages/Mosaic.VoronoiV2.Rcheck' doesn't exist
Execution halted
Exited with status 1.
When I try the Install and Restart option, I get this error:
==> Rcmd.exe INSTALL --no-multiarch --with-keep.source Mosaic.VoronoiV2
Warning: invalid package 'Mosaic.VoronoiV2'
Error: ERROR: no packages specified
Exited with status 1.
I have not seen these messages before, and cannot figure out what I am doing wrong, since nothing has changed.
I am not new to programming, but I am new-ish to the R environment. Cannot figure out what has changed, and I dont know what the .Rcheck file is, and I dont know why R doesnt create it. None of my other projects have a .Rcheck file or directory, and I dont know if this is supposed to be a file or directory. I have tried creating the project from scratch. Same issue.
Using R 3.4.1 and the latest R Studio version.
Well, Windows permissions strikes again...personally, I find Windows to be a HUGE POS because of stuff like this. Problem resolved after I reinstalled R under my domain account...I was suspicious of this, but couldn't find a way to confirm. Just reinstalled R and it worked. What I really wish is that when it IS a permissions problem, that Windows would report it as such, so the software can tell the end user this, vs sending us down some rabbit hole, chasing some non-existent problem, which happens too much as it is. Thanks, Redmond! But...I understand...after all, MS is too busy working on the next emoji standard...which is a priority, so who has time to make the OS better. End of rant.

Cannot start Julia in Atom (LoadError: ArgumentError: Juno not found in path)

I installed Atom and uber-juno as instructed by Julia's homepage, but when I tried to start Julia in Atom, I was given the following error:
ERROR: LoadError: ArgumentError: Juno not found in path
in require at loading.jl:249
in include at boot.jl:261
in include_from_node1 at loading.jl:320
in process_options at client.jl:280
in _start at client.jl:378
while loading C:\Users\think\.atom\packages\julia-client\script\boot.jl, in expression starting on line 36
I think you are doing using Juno inside Atom. Juno.jl is a separate package for developing Juno plugins.
Fist save a new file with a .jl extension and type some Julia code (or open an existing .jl file) in Atom, then press SHIFT + ENTER with the cursor in the block of code that you want to evaluate, you should see the result, ie.
1 + 1 # type SHIFT + ENTER
A bubble notification will pop up with the value 2 (when you just start Atom you will see a spinning gear icon until Juno is ready to evaluate a block of code).
This isn't really a question for StackOverflow, it's a package/installation discussion. There was a new version tagged this morning which makes use of the new Juno.jl package where the front end stuff is held (this will be useful for package developers since it will allow them to extend Juno / add extra functionality for their packages which interact with Juno, adding only a light dependency). However, Juno.jl is not yet a registered package, leading to this mess.
One way to deal with this problem is to install the development version of the package:
Pkg.clone("https://github.com/JunoLab/Juno.jl")
However, this is not recommended for most users since you'll be at the bleeding edge (you may also need to do [Pkg.checkout(x) for x in ["Media", "Blink", "Atom"]] and use the dev install. So while this would fix this for right now, this will put you on the bleeding edge, a version which does not have a guarantee of stability. Thus, don't do this unless you're really familiar with Julia. (If you didn't see this error and immediately know to check Github for Juno.jl and use Pkg.clone, then you likely shouldn't be using this solution because you will get many random errors coming up all the time due to being on the development version!)
Otherwise, wait for the fix. This error is known, someone opened the issue here. The standard uber-juno install should be fixed up shortly.
If you want more help see the Juno Gitter or the Juno discussion board.
I just re-installed Atom and ran into the same problem. The problem comes from line 31 of ~/.atom/package/julia-client/script/boot.jl which is using Juno. Comment out this line and then Packages > Julia > Start Julia works.
The best solution is to uninstall and reinstall package julia-client and uber-juno.

R 3.0.0 crashes on startup

I just updated R from version 2.15.1 to version 3.0.0 on my MAC running 10.6.8 and now R crashes on startup.
I get the error:
Error in getLoadedDLLs() : there is no .Internal function 'getLoadedDLLs'
Error in checkConflicts(value) :
".isMethodsDispatchOn" is not a BUILTIN function
Any ideas on how to go about?
The most common cause of this is having a corrupted ".Rdata" file in your working directory. Using the Mac Finder.app you will not by default be able to see files that begin with a ".", so-called dotfiles. Those files can be "seen" if you execute a change to the plist controlling the behavior of Finder.app. Open a Terminal.app window and run this bit of code:
defaults write com.apple.Finder AppleShowAllFiles YES
Then /point/-/click/-/hold/ on Dock-Finder-icon, and choose "Relaunch"
If you to do so, you can then change it back with the obvious modfication to that procedure. I happen to like seeing the hidden files so that's the way I run my Mac all the time, but some people may feel it is too dangerous to expose the "hidden secrets" to their own bumbling.
Paul raises a good point: I run the following R function in the R console after updating:
update.packages(checkBuilt=TRUE, ask=FALSE)
I have a lot of installed packages and paging through the entire list has gotten too tiresome so I bypass the ask-messages. Sometimes you will get errors because there may be dependencies on r-forge or Omegahat packages or on packages that need to be compiled from source. These may need to be updated "by hand". And you may need more than one pass through such an effort. Take notes of which packages are missing and fill them in.
I had the same problem running RKWard on ubuntu 12.04.
Check your r-base-core, like Paul suggested, to make sure the version is also at the latest version. Mine didn't update automatically. I had a platform dependent version, but RKWard was calling the new version. To solve this problem, I simply marked r-base-core for removal and reinstalled the latest version or r-base-core. poof problem fixed, bippity boppity boo!
I suspect that your error is similar to mine because I had also JUST updated RKWard. Start at updating r-base-core or try to get all of the dependencies to match up the versions.
I hope that you can translate this into what to do on a MAC,
SU

Resources