Installing Juniper’s Python module py-junos-eznc on Mac OSX Mavericks

python-logo-master-v3-TMIf you are a networking type who works with Juniper gear, you’ve no doubt heard a lot about automation over the past couple of years. Maybe you’ve heard about Puppet and Chef integration, and maybe Ansible integration, and if you ever ran into Jeremy Schulman, you heard about Py-EZ. Maybe you’re interested in checking this out. Maybe you’re a Mac User and you don’t really want to spin up a VM of linux to check it out. If so, read on.

OSX Mavericks ships with python 2.7 but does not include several tools required for installation of the junos-eznc python modules. Mavericks is specifically missing the xmlsoft tools libxml2 and libxslt. Additionally Mavericks does not include pip.

You can easily install pip by following the instructions at https://pip.pypa.io/en/latest/installing.html

There are pre-compiled binaries of libxml2 and libxslt, but it’s probably safer to build these tools from their source. To do this, you need a few other tools from the public domain: GNU autoconf (because libxml2 doesn’t include a configure file, only a configure.ac file), GNU automake, GNU help2man (because the full text of the man pages is delivered in textinfo rather than man pages format).

This guide assumes that you’ve installed Xcode and Xcode Command Line tools.

Install autoconf
  1. Download the latest gzip tar file from http://ftp.gnu.org/gnu/autoconf/ (as of 20150626 this is autoconf–2.69.tar.gz)
  2. Run the command “tar xzvf autoconf–2.69.tar.gz”
  3. Change diredctories into the resulting autoconf source directory.
  4. Run the command “autoconf” to generate a configure file.
  5. Run the command “./configure” to generate a Makefile.
  6. Run the commands to build source and install the resulting binary.
    make
    sudo make install
Install automake
  1. Download the latest gzip tar file from http://ftp.gnu.org/gnu/automake/ (as of 20150626 this is automake–1.15.tar.gz)
  2. Run the command “tar xzvf automake–1.15.tar.gz”
  3. Change diredctories into the resulting autoconf source directory.
  4. Run the command “autoconf” to generate a configure file.
  5. Run the command “./configure” to generate a Makefile.
  6. Run the commands to build source and install the resulting binary.
    make
    sudo make install
Install xz (required by libxml2)
  1. Download the latest zx source from http://tukaani.org/xz/ (as of 20150626 this is xz–5.2.1.tar.gz)
  2. Run the command “tar xzvf xz–5.2.1.tar.gz”
  3. Change diredctories into the resulting autoconf source directory.
  4. Run the command “autoconf” to generate a configure file.
  5. Run the command “./configure” to generate a Makefile.
  6. Run the commands to build source and install the resulting binary.
    make
    sudo make install
Install help2man (required by libxml2 and libxslt builds)
  1. Download help2man http://www.gnu.org/software/help2man/ (as of 20150626 this is help2man–1.47.1.tar.xz)
  2. Run the command “tar xzvf help2man–1.47.1.tar.xz”
  3. Change diredctories into the resulting autoconf source directory.
  4. Run the command “autoconf” to generate a configure file.
  5. Run the command “./configure” to generate a Makefile.
  6. Run the commands to build source and install the resulting binary.
    make
    sudo make install
Install libxml2
  1. Download libxml2 from ftp://xmlsoft.org/libxml2/ (as of 20150626 this is libxml2-sources–2.9.2.tar.gz)
  2. Run the command “tar zxvf libxml2-sources–2.9.2.tar.gz”
  3. Change diredctories into the resulting autoconf source directory.
  4. Run the command “autoconf” to generate a configure file.
  5. Run the command “./configure” to generate a Makefile.
  6. Run the commands to build source and install the resulting binary.
    make
    sudo make install
Install libxslt
  1. Download libxslt from ftp://xmlsoft.org/libxslt/ (as of 20150626 this is libxslt–1.1.28.tar.gz)
  2. Run the command “tar zxvf libxslt–1.1.28.tar.gz”
  3. Change diredctories into the resulting autoconf source directory.
  4. Run the command “autoconf” to generate a configure file.
  5. Run the command “./configure” to generate a Makefile.
  6. Run the commands to build source and install the resulting binary.
    make
    sudo make install
Install pip
  1. Follow the guide at https://pip.pypa.io/en/latest/installing.html or run the command “easy_install pip”
Install junos-eznc with pip
  1. sudo pip install junos-eznc or pip install git+https://github.com/Juniper/py-junos-eznc.git

semicolon ;

IMG_0871I couldn’t tell you the exact year.  Nevertheless, the fucking date.

I’ve always remembered it as November 28th.  But, that’s the mind of a 5 year old.

The Unix program “cal” tells me that the 28th of November was on a Monday in 1977.  It tells me that the 28th was on a Tuesday in 1978. I always remember it as 1978, but the math doesn’t add up.

I remember a Saturday.

I remember Laurel, MD.  I remember a 2 bedroom apartment where I lost a couple of teeth.  I remember that I was so damn excited by the ladder on the back of someone’s van;  I could see it from the window of our apartment.  I wanted desperately to climb it;  I did.   I was caught by some dude with lamb chop sideburns and greasy grey hair.

“What are you doing” he asked.
“I’m climbing,” I said.
“It’s not your van,” he said. I felt fear.
“No, It’s not.”  I ran up the stairs to our apartment.

I was 5.

FIVE.

My brother was 3. He doesn’t remember.

The Super Friends were on channel 13, probably; our TV was black and white, definitely.

I could see the colors.  Don’t tell me I couldn’t;  I could.  Everyone knows that Superman has a red cape and blue tights, with a giant golden S on his chest.  Yes, I could see the colors;  fuck black and white.

Who the fuck are you to tell me that I couldn’t see the colors of my heroes?

Really?  Who are you?


The man who would become my dad came out and said, “Boys, your mother has something to tell you…”

And I cried.  For a long time.  My “real dad” was gone.  He died.

He was 28.

I had questions.

How did he die?
–silence–

Why did he die?
–there was something wrong with his brain–

Why didn’t the Doctors fix it?
–they couldn’t–

They didn’t try hard enough!
–they couldn’t help your dad–

I hate the Doctors!  They DIDN’T DO ENOUGH!!!

Years later I would learn that my dad had tried to take his own life several times.  He was finally successful when he pointed a .22 rifle at the roof of his mouth, and managed to pull the trigger.

To this day, I find the picture awkward.

Somehow, he managed.


I have very few memories of the funeral.  There was a blue and white cross made out of roses, atop the closed casket.  I didn’t understand why I couldn’t see his face at the time.  We rode in a black limo from the funeral home to the cemetery.  (I still don’t know where my father is buried, but I know it’s the same cemetery as my step dad.)  On the way, I must have pissed off the driver.  I’d never been in a car with power windows.

Up. Down. Up. Down.

The driver put on the window lock. Fucking Prick.

I have a vague recollection of the casket being lowered into the ground, on canvas straps, and someone shoveling the first bit of dirt into the grave.

That was that.  Blank.


We maintained contact with my Grandparents for a few years, but sometime (perhaps when I was about 12) that ended.

I grew up without any connection to may blood relatives on my father’s side.


When I was in 4th grade, my mother told me the truth about my father’s death.  I was home (ostensibly sick with a stomach bug) and watching a western from the 1960’s — The Big Valley.  I had a silver cap gun with plastic ivory handles that I was playing with.  When she told me, I modeled putting the barrel in my mouth.  Because, well, when you’re that young, experience teaches.

I never understood.  I probably never will, fully.


There’s a specific kind of pain, that can’t be described — let alone felt, unless you’ve been there.

There’s a specific feeling of hopelessness that nobody understands unless they’ve truly been depressed.  Not your run of the mill teenage angst, but full on depression.  The kind of depression where every thought hurts.  The kind of depression where sunlight is not welcome.  The kind of depression where you can’t imagine getting out of bed, let alone making it through the day until to dusk, when it is okay to go to bed.

If you’ve been here, you understand.  If not, consider yourself blessed — because you are.


My birth father took his own life.  When I understood exactly what that meant, I vowed that never, under any circumstances, would I do the same.  His escape from a wold of hurt, created a vacuum of pain for those who he left behind.

I have precious few memories of my birth father; the few that I have involve nature, rain coats and smiles.

I’m not angry with him. I don’t blame him.  I’ll never understand, and I wish that I could have known him better.  Maybe, made it better.  Probably not, but maybe.

There was a time, not long ago, when I disavowed the DeVille’s.  I felt abandoned.  I felt ignored.  I felt angry.  I felt alone.

In the last year, I’ve been re-united with my father’s brother, my uncle as well as my cousins (one face to face, the other virtually).  When we first saw each other again, it had been 33 years.  Thirty-three years is long time, but when you’re family, somehow the time gap fades quickly, love takes over and all the hurt goes away.

My son has adopted his great-uncle as his grandfather (at least in his mind) and that makes me incredibly happy.


I recently read about #semicolonproject and #projectsemicolon (seems there’s a dispute about who “founded” the project which really doesn’t matter to me) — I don’t care who came first, the idea is powerful:

The semicolon joins two independent (but related) clauses in a sentence without the use of a transitional word or phrase.

Semicolons indicate a pause; a reflection — perhaps a change in perspective.

A Semicolon is powerful.  More powerful than a period, exclamation point, or a question mark — all of which end a sentence.  A semicolon indicates a willingness to pause… perhaps recollect… perhaps re-think…


Take time —

pause;reflect — live

That Horse Looks Kinda, Really Fucking Big

A few weeks ago, a good friend posted something to the effect of “Why does the horse always look so much bigger when you’re trying to get back on it?” on his Facebook page. I “Liked” it as did so many other folks, because, well it’s funny and it’s true.

Somewhere over the past, oh I don’t know, six to seven months, I really fell off the horse.  Perhaps this is evidenced by the fact that I’ve not posted anything on this site since March.  Or perhaps it’s better evidenced by the fact that I didn’t ride my bike for 2 months straight after my MS ride in July.  Or perhaps by the fact that I stopped paying attention to my weight, and ballooned to an all time high of nearly an eighth of a Ton.  (That’s 250 pounds folks).

Or perhaps…

The list of things that I should be doing but haven’t been is as long as the list of things that I should not be doing but have been is short.

Rather than bare my soul with a gut wrenching list of my failures, I’ll just list out some things that I am now working on.

  1. Eating a whole foods diet.  My doctor recommended that I look into the “Paleo Diet” and while I was pretty skeptical of it, after reading the book it seems to make a lot of sense.  I’m trying it out.  Basically, what it has come down to for me is no wheat and no dairy.  It’s a lot of lean animal protein, veggies and fruits.  As Michael Pollan says, “Eat Food, Not too much, Mostly Plants.”
  2. Getting some exercise again.  Last spring I ended up at the doctor’s office and ultimately in 3 months of physical therapy because of lower back pain.  PT did wonders, but I foolishly stopped doing the exercises after PT officially ended.  And so, back pain came back into my life.  Walking, and cycling need to be on the list of things to do.
  3. Acupuncture.  I regularly went to get acupuncture for about 3 years to treat migraine headaches.  Thankfully, I haven’t had many migraines, but I haven’t been going to get acupuncture and I miss it.  Even if I’m not having headaches, 45 minutes of relaxation a week is probably a good thing to add to my routine.
  4. Cutting down on the booze.  This pretty much goes hand in hand with getting a good diet going.  There are so many reasons to cut down.  Lots of unnecessary calories.  Lack of presence.
  5. Reading and writing.  It’s time to start reading again and to start writing again.  Most likely that means putting some stuff on this site.

Yeah, that’s a big horse.  I’m gonna get back on it and if I fall off, well, I’ll get back on it again.