-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Your installation process is overly complicated #141
Comments
@lostinplace I disagree that installation is complex on Linux. You If you are speaking about Windows, then well, it is Windows and a |
This is probably the single biggest issue we have with this library. Let me try and explain. Desired State:We'd really like to be able to Why?Mac. Most of our web developers use Macs. Instant Client installation on Mac OS X isn't too painful. The biggest issue is that there's not a good, cohesive way to set environment variables. Different developers use different shells, and IDEs can also start up with different environment contexts. The end result is that we have to do a lot of one-off troubleshooting. It's a pretty negative developer experience, and I've had more than one developer ask us why we would even use Oracle in the first place. I'd rather skip all that and just get coding. Windows. Most of our dedicated Oracle developers use Windows for the Windows version of Toad. There's a lot of business analysts and others in the organization that use Windows, too. These people have varying degrees of technical expertise. We'd like to break down these silos a bit and promote more cross-functional development. The Windows installation has proven painful and error prone, and it's a terrible way to start off a collaborative effort. Linux. Most of our server infrastructure runs Linux. That means that when we want to deploy, now we don't just need a server with Node installed, we also need yet another dependency. It's not just deploying applications, though. We repeat the same issue, for instance, when we want to do continuous integration and testing on our Jenkins server. An no, in a controlled enterprise environment, just downloading and installing a couple RPMs is not a simple thing! Thanks! |
@ecowden excellent summary. The power of customers' own words is always best. |
This would fix everything: #18 |
@lostinplace, @ecowden In case you are interested, I created a video that might assist those trying to install on Windows: Video - install of oracledb on Windows 7 x64 |
I'm on OSX actually |
I'm not saying that installation is impossible, just that it is unnecessarily difficult. Even the step of adding two rpms before launching the package installation process adds complexity that is an irritant to a lot of developers, especially when for whatever reason, it just doesn't work. I have nothing to say that @ecowden hasn't said better though |
+1 for installation complexity. Other DBs are much easier and do not typically require external installations/dependencies/directory manhandling. This is by far the biggest road-block for using Oracle with Node. One of the organizations I work for (~7k employees) is looking to expand our current use of Node and Oracle away from SQL Server, but this is a big deal for us in moving forward and may jeopardize our migration plans. @ecowden sums it up very well. @cjbj @krismohan Are there any plans by Oracle to mitigate this issue anytime soon? |
+1 for installation complexity, same package.json should work on "all" platforms, without installing visual studio prior installing oracledb. |
@ugate in such a large organization can you centralize builds and make binaries available from a central repo? https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#winbins Also check the great work @bchr02 has been doing on prebuilt binaries in #18 I'm going to close this issue as the problems are well known and are being addressed in various ways given the constraints. |
@cjbj We can, but the challenge becomes managing those binaries on many different platforms/versions/etc. One of the nice things about working with SQL Server + Node was the use of TDS which minimized client overhead. It's nice to see Oracle finally taking an interest in Node, but it's disheartening that it's not given the same attention and dedication as it's Java counterpart. Many organizations are migrating toward Node to reduce unnecessary complexity that other languages like Java are typically are known for. In fact, Node + oracledb is undeniably more complex than using JDBC. This is the opposite of what the Node community/enterprise has come to expect out of their migration/build processes. It's hard to justify to clients that we're reducing development time by transitioning to Node/micro services while we're adding 100+ MB thick client that's not OS/version agnostic/portable when doing so. I realize that oracledb has to work under the constraints that OCI clients provide, but it would be nice to see a paradigm shift at Oracle that understands the need to make a more significant effort toward future technologies like Node. |
@ugate I understand your position and appreciate hearing from you. Node.js, although "young", is important to us: look at the announcement of https://cloud.oracle.com/nodejs and the use of Node is the https://cloud.oracle.com/mobile to name a few other touch points. Work is ongoing on a number of fronts. |
After reading all this and tutorials and videos and stuff, the step of the installation I'm most concerned about is the Visual Studio setup. It's big and slow, and you don't even actually install it, because you uncheck all the features. And yet it's slow. Of course this is not Oracle's fault. But couldn't Oracle provide a partial setup package with the C++ needed stuff and the part of the instant client? Would leverage a lot. I guess there would have to be some licensing/arranging with Microsoft. I just thought that maybe two big companies would find a way to do this easily. |
@pedro-otero did you see #18 ? |
you should write a script to maintain the dependencies, or create a package on any package manager to do so.
I know you probably can't do this for legal/product direction reasons, I just thought I'd drop a note to let you know, that this is something that developers complain a lot about when they have to work with Oracle
The text was updated successfully, but these errors were encountered: