Installing RQuantLib on RStudio AWS AMI - amazon-web-services

there have been some similar questions (Installing RQuantLib on Linux), but none related to the AWS RStudio environment. After trying the usual rute
install.packages('RQuantLib');
library(devtools)
install_github("eddelbuettel/rquantlib")
I get the following error (in both cases):
configure: error: Please install QuantLib before trying to build RQuantLib.
ERROR: configuration failed for package ‘RQuantLib’.
Also, all of a sudden (after upgrading R on my local machine from 3.4.4 to 3.5.0) RQuantLib stopped working also on my local Windows machine:
Error in system(full, intern = TRUE, ignore.stderr = quiet, ...) :
running command '"C:/PROGRA~1/R/R-35~1.0/bin/x64/R" --no-site-file --no- environ --no-save --no-restore --quiet CMD config CC' had status 1
After following the directions on the Github page I tried the following:
if (!require("drat")) install.packages("drat")
drat::addRepo("ghrr")
install.packages("RQuantLib", type="binary")
but got the follwoing error:
Warning in install.packages :
unable to access index for repository https://ghrr.github.io/drat/bin/windows/contrib/3.5:
cannot open URL 'https://ghrr.github.io/drat/bin/windows/contrib/3.5/PACKAGES'
Warning in install.packages :
package ‘RQuantLib’ is not available (as a binary package for R version 3.5.0)
What else could I try? The AWS problem has a higher priority, although I would really like to be able to use RQuantLib on my local machine again, so any help would be really appreciated.
A small end note: The RQuantLib library compiles succesfully on the Debian 16.04 AWS AMI, but not on the RStudio AMI.

Windows builds, just like Unix builds, require QuantLib to be present which has its challenges.
The most recent upload restores this ability, utilising a GitHub repo with a prebuilt version of QuantLib. Try installing RQuantLib 0.4.5 now on Windows; you should get a binary from CRAN as can been on the CRAN page.

Related

AWS Codebuild Installing Upgraded Version of Package but Old Version Still Detected/Used

I have a Django App deployed via AWS' elastic beanstalk, that uses the CodePipeline service to build. As part of that pipeline, the CodeBuild service is used to build the app that gets deployed to the ElasticBeanstalk environment.
The build failed, sending the following error message:
django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
Per Amazon's own package version listing I realize that is expected given the older version is intended to be on the Amazon Linux 2 distro.
Ok. I wrote a shell script to download the latest version of SQLite and build from scratch, but I'm still getting the same issue.
In the buildspec.yaml file I have the following:
...
post_build:
commands:
- echo "beginning post-build phase..."
- bash get_sqlite.sh
- echo "sqlite version -- $(sqlite3 --version)"
- python manage.py makemigrations
...
In the CodeBuild logs, I can see the result of the echo command as such:
sqlite version -- 3.40.1 2022-12-28
Yet, the build fails and the logs still show the following error:
django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
Any idea what further steps need to be taken for the updated version to be detected rather than the previous one?
I think you need to move your sqlite command to bin directory in linux.
- mv sqlite /usr/local/bin/
Even though package has been updated but linux reads PATH ( env variable to find the commands ) and still it is finding the old version of the command, that is hwy you need to replace the old sqlite command with the new version in bin directory

How to find which R package version should be used for shiny server deployment?

I just started to use rsconnect in my company, and tried to deploy a shiny app from my windows machine. The server comes with R 4.1.0, and one of the packages requires to install terra.
I have tried multiple R package repos from Rstudio dev-cran with different dates to install terra, and tried version 1.2-10, 1.3-4, ... all the way to the latest version.
However, none of them was able to be uploaded, or installed during deployment.
For the versions before 1.4, the error was
Uploading bundle for application: 335...Error: node stack overflow
Execution halted
while for versions above 1.4, parts of the error were
The requested URL returned error: 407
RStudio Connect cannot download a package because the R package repository (for example, CRAN or RStudio Package Manager) cannot be accessed.
This happened to other packages too, but the issue was usually resolved after I uninstalled and re-installed with a different repo. But for terra, I was not able to find a repo to fix the issue.
Any suggestions for the next step?

Install Cloud Foundry CLI in a M1 chip MacBook

tl;dr The Cloud Foundry CLI fails to install in an M1 chip MacBook Pro.
Following the official instructions, using Homebrew in the command:
$ brew install cloudfoundry/tap/cf-cli#8
The output is:
cf-cli#8: The x86_64 architecture is required for this software.
Error: cf-cli#8: An unsatisfied requirement failed this build.
Found no binary for the ARM-based architecture of the Apple M1 chip. The same trying with cf-cli#7, or just cf-cli.
How can the Cloud Foundry CLI be installed in an ARM-based architecture?
The official GitHub project cloudfoundry/cli includes binaries for many architectures, including ARM-based.
Search in the official Releases page, Assets section, and download the binary of the item named cf-cli_osx_arm (currently v8.3.0). Once downloaded, move/rename to any folder included in your PATH environment variable.
With the release of v8.4.0 a few days ago the support for ARM based mac OS machines (e.g. M1) was added:
https://github.com/cloudfoundry/homebrew-tap/commit/69f268f18ea10a4c8e19c99a8bb209c1ebbcbe7d
It will still fail if you only tap it and leave out the version in your install command, so you'll need to enter:
brew install cloudfoundry/tap/cf-cli#8
There's an open issue for this.
Until the official tap supports the osx_arm binary, you can use this unofficial tap which is manually updated:
brew install wanddynosios/tap/cf-cli
That said, it seems like the official CloudFoundry maintainers are about to support this officially soon.

command not found when trying to deploy to AWS Elastic Beanstack

When trying to set up AWS Elastic Beanstack for my Django project following this tutorial:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html
once I get to running
eb create django-env
I get this error:
warning: CRLF will be replaced by LF in .gitignore.
The file will have its original line endings in your working directory.
Creating application version archive "app-2f30-181013_230403".
ERROR: CommandError - An error occurred while handling git command.
Error code: 1 Error: C:\Program Files\Git\mingw64/libexec/git-core\git-submodule: line 7: basename: command not found
C:\Program Files\Git\mingw64/libexec/git-core\git-submodule: line 7: sed: command not found
C:\Program Files\Git\mingw64/libexec/git-core\git-submodule: line 18: .: git-sh-setup: file not found
Any ideas what the issue is here? is AWS Elastic Beanstack unusable from Windows?
You have a Windows path and program compatibility problem.
The EB CLI works just fine on Windows. I use it almost everyday on many corporate systems for different customers. This assumes that everything is installed and setup correctly.
1) Make sure that you have installed the Windows native version of Git. Install from this location:
Downlading Git
2) Make sure that the Windows native version of Git is before Mingw in your Windows search path. Otherwise the wrong program will be loaded and then all the Mingw environment and dependencies will mess everything up.
3) Make sure that the latest version of EB CLI is installed (do this last). Follow these steps to repair your current installation. Depending on what you have setup, just installing EB CLI may be enough.
Install Python, pip, and the EB CLI on Windows

unknown error: call function result missing 'value' for Selenium Send Keys even after chromedriver upgrade

I am getting the below error while sending keys.
Result Message:
System.InvalidOperationException : unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.146)
(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)
I have updated the chrome driver to 2.36 but still my code search for 2.33?
Any idea ?
I've gotten the same error, please download the last ChromeDriver version and/or update chrome browser version and it will be working fine :)
https://chromedriver.storage.googleapis.com/index.html?path=2.36/
After updating the Google Chrome browser to Version 65.0.3325.146 (Official Build) (64-bit), I'm also encountered with the same error
while sending values to the input field, here's the error message...
selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'
using Chromedriver 2.32 and Google Chrome 65.0
As I did some research on the same, I found a recent commit on Google chrome v65 changelogs which help me to resolve the issue.
Solution:
Update Google Chrome to latest stable version (in my case it's v65 on 9/mar/2018)
Download and configure latest chromedriver (v2.36).
For configuring chromedriver (on Ubuntu) follow these steps...
Extract the downloaded zip file.
Copy the extracted chromedriver file to /usr/local/bin or to the location where you usually store the executable binaries.
Add the same path (where you place the chromedriver file) to environment variable PATH as
export PATH=$PATH:/usr/local/bin
For testing the installation, restart the terminal and type this command
chromedriver --version
it would show the version of chromedriver that you just installed.
Note: If the chromedriver already installed and configured then just replace the existing driver file and If you don't know where the Chromedriver binaries already stored then try to find the file using following command
sudo find -H / -type f -iname chromedriver
It is because of the update of chrome browser version from 64.xx to 65.xx
Now you have 2 options to run your tests successfully.
Downgrade your chrome browser to previous version and with the old chromedriver which you have now.
Upgrade your Chromedriver to 2.36 version with the updated Chrome browser.
visit https://chromedriver.storage.googleapis.com/index.html?path=2.36 and download the new chromedriver.
Option 2 is better.
Replace your ChromeDriver.exe with latest version.. Same can be downloaded from Google easily.
Also its better to get it done automatically by using webDriver manager as explained below -
1. Add Mvn dependency to your project POM:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>${webdrivermanager.version}</version>
<scope>test</scope>
</dependency>
Now in your Browser instantiation class instead of using traditional way to create driver i.e. by using System.setProperty(See belwo)...
System.setProperty("webdriver.chrome.driver","src/test/resources/drivers/chromedriver.exe");
Use below approach:
WebDriverManager.chromedriver().setup();
webDriver = new ChromeDriver(chromeOptions);
And that's all, you are done!
Use below links for your reference-
What is Browser Binary Manager how to use it for Selenium
or chkout git project for same-
https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency
Need to update chromedriver :
In console, run: chromedriver-update 2.36
The error says it all :
System.InvalidOperationException : unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.146)
(Driver info: chromedriver=2.33.506120
The error clearly complains about InvalidOperationException
Your main issue is the version compatibility between the binaries you are using as follows :
You are using chromedriver=2.33
Release Notes of chromedriver=2.33 clearly mentions the following :
Supports Chrome v60-62
You are using chrome=65.0
Release Notes of ChromeDriver v2.37 clearly mentions the following :
Supports Chrome v64-66
Your Selenium Client version is unknown to us.
So there is a clear mismatch between the ChromeDriver version (v2.33) and the Chrome Browser version (v65.0)
Solution
Upgrade Selenium to current levels Version 3.11.0.
Upgrade ChromeDriver to ChromeDriver v2.37 level.
Keep Chrome version in between Chrome v64.x-66.x levels. (as per ChromeDriver v2.37 release notes)
Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
Use CCleaner tool to wipe off all the OS chores before and after the execution of your test Suite.
If your base Web Browser/Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Browser/Web Client.
Execute your #Test.
If you are on Mac:
brew upgrade selenium-server-standalone
brew upgrade chromedriver
if the above two are not installed:
brew install selenium-server-standalone
brew install chromedriver
I'm running Protractor and have encountered the same issue.
The solution in my case was rather simple.
$ npm update protractor -g
$ webdriver-manager update
If you are on the latest stable Google Chrome (e.g. 67) I recommend to:
brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver
These set of commands will uninstall your current chromedriver, check for updates and install the latest found (e.g. 2.40).
Use xpaths instead of class names to locate elements
After updating chrome and its drivers it didn't helped me at all!!
I don't know how much it makes sense but it worked for me when i replaced class name with xpath. This is the xpath , i used to automate sending whatsapp message using python.
driver.find_element_by_xpath('//*[#id="main"]/footer/div[1]/div[2]/div')
previously i Was Using
driver.find_element_by_class_name('Some class Name Here')
In my case the team I'm on points selenium to a specific chromedriver file we had. In order to get Selenium to use the updated chromedriver, I first installed it with brew and then created a symbolic link to point where Selenium looks for it:
brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver
On the chance this might be helpful to someone I needed an additional step:
I am on MacOS X. I did
brew upgrade chromedriver
bundle exec chromedriver-upgrade
I have the chromedriver-helper gem installed, but it is stashed and requires the "bundle exec" prefix or the shell can't find the command.
The above fixed my problem.
As mentioned by others, the latest chromedriver did the trick for me. In case you downloaded the driver manually and want to tell appium to use the new chromedriver you can do so by this command:
appium --chromedriver-executable /path/to/driver/chromedriver ....
I'm running Protractor (webdriver-manager) with Selenium in a Windows environment, and I had to do the following:
webdriver-manager update --versions.chrome="2.36" (This downloaded the new Chromedriver to the right path but didn't enable it in protractor.)
Edit %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json and changed the chromedriver value from 2.32 to 2.36.
Delete my old chromedriver_2.32.exe from %userprofile%\AppData\Roaming\npm\node_modules\protractor\selenium for good measure (not sure if that was required.)
Or:
When another Chromedriver update became needed, I was no longer able to update this way. A configuration setting still expected the old path and filename, and I couldn't figure out where to change that setting. So I just renamed the latest chromedriver to "chromedriver.exe" and stuck it in C:\Windows\system32 (which is always referenced by PATH). Crude, but effective.
If you're using gulp-protractor plugin, make sure to update it as well.
I don't know if you're still on this, but I was receiving a similar error. I had the latest version of chromedriver in my PATH and Google Chrome was updated. I run Python 3.6 on windows 10 x64 bit. What I was getting trying to select a value from a dropdown menu on a webpage. The weird thing was, it would select the dropdown value correctly and the page would be updated nicely, but I'd receive that stupid error anyway and my script would freeze. So I just made an exception error handler for it, because like I said it selected the dropdown value correctly, so I just wanted to bypass that dumb error message:
# select by value
try:
select.select_by_value('100')
except:
pass
hopefully someone finds this helpful.
The issue is because of mismatch in chromedriver and chrome browser version.
Below link specifies the versions of chromedriver supporting the chrome browser's version.
http://chromedriver.chromium.org/downloads