I am deploying a large set of perl/shell/sql code on AIX. these could be (and are) different applications with their own dev teams, source control repos, etc.
I am lazy and want to make deployments/roll-backs easier - and I am digging towards rpm packaging with all it's +/- benefits.
AIX native system of packaging is installp (with bff files).
am I on a right track with rpm? oss4aix.org uses rpm FWIW.
any input/best practices is appreciated.
thanks
"installp" is a bit of a black art. For a long time it was impossible to get the build software without spending non trivial amounts of money so very few people outside IBM (and Bull) bothered with it.
"rpm" on the other hand has been freely available for years. For scripty type stuff there should be no special considerations for AIX so the large body of experience, knowledge and example code available for Linux will be useful to you.
I dont think IBM is dropping AIX anytime soon, but, they are actively porting the standard linux tools to AIX and some of the AIX tools to Linux so the environments are converging. I think its only a matter of time before installp become "depreciated" in favour of rpm.
I never had to develop instalp packages. I am under the impression that IBM is going to buy a major Linux distribution and stop all their proprietary business sometime soon. I think for the long term moving to rpm is getting ahead of the curve.
I found one document to build rpm 5.0 and yum on AIX.
http://www.tekwire.net/joomla/building/rpm/rpm_AIX_5.2.htm
Aix 4,5,6 use the RPM v3.0 - 1998 circa, iirc RedHat 6.2. A zillion of resolved bugs and new functionality are in rpm nowdays. So use it but don't aspect that you can do with it what other do in a moderm linux rpm distro.
Or, as a good alternative to build yourself rpm 5 - which other on aix ? - try
openpkg http://www.openpkg.org/
Have a look at the polypkg tool we wrote; it's a shell script that does the hard work of making packages for you.
Related
I've loaded a copy of my Intel-based mac into an M1 chip mac through Time Machine. However, I've been constantly running into bad CPU type files and needing to reinstall some apps that are built for Apple silicon. (I also feel like my laptop's battery has noticeably decreased since loading that Time Machine backup.) I didn't download Rosetta because I feel like that would make runtimes slower, and all the apps I need should have a native version published (please correct me if I'm wrong).
It's hard to get working versions of coding-related things though, like homebrew that won't install unless I specify a certain path. At this point, would I be better off just by starting fresh and download those programs as needed? As a programming newbie, I'm not sure which is better - trying to delete the non-working Intel programs (which I have yet to figure out since most uninstall programs are also Intel-based), or wiping my computer and download the Apple silicon ones right from the start.
Thanks for any tips in advance!
I've tried to delete and reinstall apps, which worked. Wasn't that successful with programs like Git since the uninstall program is in Intel.
Downliad and install all the programs you need for the M1 chip.
Then restore your data from the backup.
Trying to run intel based programs on an M1 is just costing you time.
When I run install.packages("somepkg") on Linux (Ubuntu mostly), the installation process invovled building the R package from source which can be time consuming. Also it can be prone to failure due to missing development related Linux packages.
Is there a way to install compiled binaries like on Windows? I heard that it can be done, but couldn't find an easy to understand resource. Hope by asking here I will make the answer (if it exists) more googlable.
It depends on whether binaries exist. Which, in turn, depends on which Linux distro and version you are running.
For Ubuntu 18.04 (and later, as they are compatible), you can use the Rutter PPAs which cover over four thousand CRAN package. This is described (albeit very briefly) at the top of this README at CRAN.
I also blogged about that (a few times) below my r4/ tag -- and because it didn't really "stick" amplified it again with short video plus slides, see this post. The video runs for about 5 mins during which we install rstan and tidyverse as binaries each with just one command and it takes about a good minute each (depending on bandwidth and disk speed, of course) pulling all dependencies in pre-built and in a fail-safe manner.
If this matches your needs, give it a try and please come to to the r-sig-debian list for questions.
If you are on a different Linux flavor then I unfortunately less sure if a comparable service exists.
Edit on 2020-09-17 As this was just upvoted and I was thus reminded of it, you now have better options and can get Linux binaries via install.packages("pkgname"). One way is RSPM, the other is BSPM. I have a first comparison blog post comparing both here (even with animated gif movies ;-)) and should be able to say more about BSPM "soon".
Edit on 2022-08-03 And going beyond RSPM and BSPM is the newer r2u which has been up for a few months and is currently serving around two thousand binaries a day. It is the best approach for binaries on Ubuntu LTS installations (currently: 20.04 and 22.04). See r2u for more including demos.
I was using Laragon on Windows for Laravel development. I recently switched to Ubuntu and I cannot use Laragon. I love how lightweight laragon is compared to xampp. Does anyone have an alternative dev environment for Laravel/PHP development using Ubuntu?
Thank you.
Sadly there is no lightwight, simple and easy as Laragon version to Linux environment. The most you can use is Docker but is not easy, nor simple.
I just installed what i need for Laravel and work with it in my Linux Mint laptop.
I realize this is an old question, however for anyone else who comes here looking for a linux alternative to Laragon, there is a linux derivative of valet.
If you aren't familiar with valet, in the past it has been exclusive to Mac. It works really well. After simple configuration, any project in your designated directory can be accessed through the browser by navigating to projectFolderName.test. It is that simple.
https://cpriego.github.io/valet-linux/
You can use Lando.
Easy
One click installer, cross-platform, simple config file, sane defaults and reduced complexity for power features
Powerful
A single dev tool for all your projects. Lock down services, tools, dependencies and automation on a per-repo basis
Liberating
Free yourself from the mind-forged manacles of lesser dev tools. Save time, headaches, frustration and do more real work
In a nutshell, the question is: I just finished my first application using Qt Creator on a computer running under Linux Ubuntu, now how do I make this available for everyone. Now follows the more detailed version ;)
I must apologize for asking this, I am aware that this question has probably been asked many times and that there is official documentation that I can read. I am just completely new to programming and I am very confused by everything I've read so far. If you are kind enough to help, please assume I know absolutely nothing :)
Here we go: I've just finished designing my first application (a scientific program) with Qt creator on my laptop which runs under Linux Ubuntu. It works fine and I'm very proud of it ;)
Here's what my project consists of: 40 header files, 42 source files, 1 pro file, 1 qrc file, 1 html file and 7 png files. In the code, I use #include for a bunch of fairly standard Qt classes (QWidget, QTextBrowser and so forth, maybe like 40 of those).
Now I'd like to make it available to other people. For Linux and Mac users, I've figured a way to do that: I can compress the folder containing my project, tell them to install Qt on their computer, then download and extract the files on their hard disk, open a terminal in the folder and run
qmake myProject.pro
qmake
make
That seems to work fine (by the way, does it matter that this is not precisely what Qt creator does? The qmake step there is qmake-qt4 myProject.pro -r -spec linux-g++ and the make step is make -w). Now, I assume there is a solution where I don't ask them to download and install something like 200Mo of Qt material. As for Microsoft Windows users, I don't have a clue.
I would be very grateful if you could explain to me in a very concrete way what I need to do. Needless to say, I'll go for the best and easiest solution, I don't need to understand everything about deployment. Many thanks in advance!
Edit: In case that's useful : I've been using Qt Creator 2.5.0 based on Qt 4.8.1 (64 bit), I'm working on a laptop with Ubuntu 12.04 64bits
For Linux and Mac users, I would compile the software for them in 32 and 64bit formats - no-one likes compiling unknown software from source. Obviously keep the source code option for those on more unusual architectures/OSs (and provide a shell script for them that mimics the commands Qt Creator calls!). As Qt runtimes are available from package managers on just about every distro (and come pre-installed on most anyway, KDE requires them for example), by not asking them to compile from source your users will have a much smaller download (if any) and won't require them to download software from a website potentially unknown to them. Of course the best way would be to try to get your software added as a package into the major distros' repositories, but that may take some time to organise.
Compile your software for Windows users for both 32 and 64bit formats. It's generally frowned upon to ask users to download runtime libraries they potentially don't know, and put them into their system32 folder... So most applications bundle all the libraries they need with their application. Qt-based applications are no different, and so put the runtimes into the folder where the executable is. Also it is much more professional to create a proper installer, there are a few free installer applications for Windows, a web search will give you the most popular (I think I saw a thread on SO about it as well).
As you can see the platforms aren't too dissimilar, the main point I would make is: Do not force people to compile from source! The vast majority of people on Earth do not even know what compiling is, so provide for the major arrchitectures/OSs yourself.
Ok, this is indeed a newbish question but I have to take a first step somewhere.
I've just had experience with DevC++ console applications, which means a simple .exe would be produced from the compiling, running from cmd. That was all, you could send the .exe to a gentleman running the same OS and he could run your little program.
What happens with Qt Creator projects, though? I've finally finished my dekstop application, wrote and debugged everything that needed to be done, I sort of have some nice GUI going, everything's working nice but... How do I acually give it to other people that don't have QtC to run it through?
Any guide that covers this?
Deployment
Here are some guides helping you to deploy your application on different platforms:
X11
Windows
Mac OS X
Embedded Linux
Symbian
Installation
I can highly recommend
NSIS
Inno Setup
Distribution
Have a look at this site. Here you can present your application to others and let them download it.
The subject of your question is simple, but I'm sure it will help many people! Your question is a good contribution.
Well, last thing you do is find out dependencies - shared libraries, and squeeze that all into installer. :)
Resources:
Qt has a nice page called Deploying an Application on Windows, as a part of their documentation. So all the dependencies related stuff is covered there.
List of best free installers is available here.
My suggestion is to invest some time in writing a CMake script and then using CPack for the distribution.
Here is a very simple example
http://www.cmake.org/Wiki/BundleUtilitiesExample
with this you are able to deploy a mac application. Then you can also extend it to create Debian or RPM packages!
The CMake mailing list is always a source of useful suggestion.
In windows you probably have to redistribute the Qt DLL with your program, as well as for Mac you have to include Qt libraries in your bundle.