Initially I couldn't get Second Life to work on my wife's desktop system, which has Windows 7 and an ATI Radeon 9250 AGP video adapter. I was eventually able to resolve the problem, though.
[ More Info ]
 
| 
 | 
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[ More Info ]
wpkg.js script from the command line, but when
run that way the %SOFTWARE% variable is not
set to point to the location where I store the software
I am going to install with WPKG. The value can be set
from the command line, however, with set SOFTWARE=\\server\share.
When using the WPKG-client program, the variable is set by it. If you
run the wpkg.js script manually with \\server\share\wpkg.js,
you need to set it manually. You can create a batch file, such as wpkg.cmd
to do so.
@echo off
set SOFTWARE=\\server\share
set SETTINGS=\\server\share2
cscript wpkg.js [whatever parameter you like]References:
 
Uninstall
registry keys that are found at 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
 in the 
Windows registry. 
 
I created a batch file to query the registry to show all of the
programs that have such an Uninstall key and that will
accept a program name and return the uninstall command found under that
key for the program.
C:\Users\JDoe\Downloads>uninstallstring
AddressBook
Adobe Flash Player ActiveX
All ATI Software
ATI Display Driver
CDisplay_is1
Connection Manager
DirectDrawEx
DXM_Runtime
Fontcore
IE40
IE4Data
IE5BAKEX
IEData
MobileOptionPack
MPlayer2
PuTTY_is1
RealPopup_is1
SchedulingAgent
SecondLife
Total Uninstall 5_is1
Vim
WIC
{9D07059A-EC99-4F03-9BF2-BE40FB007822}
{FB08F381-6533-4108-B7DD-039E11FBC27E}
C:\Users\JDoe\Downloads>uninstallstring vim
C:\Program Files\vim\vim72\uninstall.exe
C:\Users\JDoe\Downloads>uninstallstring gvim
ERROR: The system was unable to find the specified registry key or value.
C:\Users\JDoe\Downloads>uninstallstring Adobe Flash Player ActiveX
C:\Windows\system32\Macromed\Flash\uninstall_activeX.exeThe batch file is as follows:
@echo off
REM uninstallstring.bat
REM
REM Written By: Jim Cameron
REM Created: 2009-12-29
REM Last Modified: 2009-12-30
REM Version: 1.0
REM
REM Usage:
REM
REM uninstallstring
REM uninstallstring program
REM
REM Purpose: If no arguments are given to the batch file on the command line, 
REM it will display a list of all the programs with UninstallString values, 
REM i.e., all the registry keys under 
REM HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. If 
REM an argument appears on the command line, it should be one of the values 
REM reported when no arguments are given to the script, i.e. a program name, 
REM such as "vim" or "Adobe Flash Player ActiveX" (don't actually put the quotes
REM around the names, even if there are spaces in the name. E.g. for the latter 
REM case you would use the following:
REM
REM uninstallstring Adobe Flash Player Activex
REM
REM When a program name is included on the command line, uninstallstring.bat 
REM will determine the "UninstallString" value in the registry for that
REM particular program, i.e.  the location for the uninstall program for a 
REM particular piece of software. It will return just that value. E.g., for 
REM the "uninstallstring vim", it would return the following:
REM
REM C:\Program Files\vim\vim72\uninstall.exe
REM 
REM If it can not find an uninstall registry value for the program listed it 
REM will return the following:
REM
REM ERROR: The system was unable to find the specified registry key or value.
REM The following example shows a "reg query" command that could be issued from 
REM the command line to determine the value of "UninstallString" for the Vim 
REM editor software. The last line of output contains the "value name", 
REM "value type", and "value data", which is the part of the output of interest.
REM C:\>reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Vim /v UninstallString
REM
REM HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Vim
REM    UninstallString    REG_SZ    C:\Program Files\vim\vim72\uninstall.exe
REM First, display the UninstallString values present in the registry.
REM Values returned by the reg query command will be in the following format:
REM
REM HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Vim
IF "%1"=="" (
 GOTO Show_All
) ELSE (
 GOTO Find_String )
:Show_ALL
set _All=reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
FOR /f "tokens=6* delims=\" %%A IN ('%_All%') Do echo %%B
GOTO End
:Find_String
REM Set _Program to be the parameter entered on the command line. 
REM Use %* rather than %1 to cover cases where the program has spaces in the 
REM name.
set _Program=%*
REM Set the variable _UninstallString_Query to the reg query command to be issued.
set _UninstallString_Query=reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%_Program%" /v  UninstallString
REM There are two parts at the beginning of the line, the "value name" and the 
REM "value type" that aren't relevant, By specifying "2*" the "value name" is 
REM ignored, the "value type" goes into %%A and %%B holds everything else on 
REM the line.
FOR /f "skip=2 tokens=2*" %%A IN ('%_UninstallString_Query%') Do echo %%B
:EndReferences:
<?xml version="1.0" encoding="UTF-8"?>
<packages>
<package
  id="Sysinternals"
  name="Sysinternals"
  revision="1"
  reboot="false"
  priority="1">
  
  <check type="file" condition="exists" path="%PROGRAMFILES%\Utilities\Sysinternals\handle.exe" />
  <!-- Test first to see if the Sysinternals directory already exists. 
  Otherwise, if it exists and an attempt is made to create it, which
  will fail, the entire installation process will fail as well. 
  Note: the double quotes must appear around the file name used as
  a test for "if not exist", since %PROGRAMFILES% expands to a directory
  path with a space in it. -->
  <install cmd='cmd /c if not exist "%PROGRAMFILES%\Utilities\Sysinternals" mkdir %PROGRAMFILES%\Utilities\Sysinternals' />
  <install cmd='cmd /c copy %SOFTWARE%\Utilities\Sysinternals\handle.exe "%PROGRAMFILES%\Utilities\sysinternals\."' />
  <remove cmd='cmd /c rmdir /s /q "%PROGRAMFILES%\Utilities\Sysinternals"' />
  <upgrade cmd='' />
</package>
</packages>When handle.exe is first run, it prompts for the acceptance of
the End User License Agreement (EULA). You can avoid the prompt by running
the command with the /accepteula parameter, e.g.
handle /accepteula. It has to be run from from any
account under which you want to use the program. It creates the registry key 
HKEY_USERS\SID\Software\Sysinternals\Handle, where
SID
is the Security Identifier for the user under which it is being run.
Within the key, it creates the value below:
| Name | Type | Data | 
|---|---|---|
| EulaAccepted | REG_DWORD | 0x00000001 (1) | 
You can just use handle /accepteula or you can use
REG ADD HKCU\Software\Sysinternals\Handle /v EulaAccepted /t REG_DWORD 
/d 1 /f under the relevant account to create the registry key.
References:
THe WPKG page for Vim, noted that the Windows installer from vim.org doesn't have a silent installer, bu the installer created by Steve Hall, which is the one I downloaded from the sourceforge.net site does have one. The author of the WPKG webpage for Vim also noted that Steve's Vim installers from 7.0.146 onwards work correctly for silent installs; however, silent uninstalls still do not work correctly.
The WPKG webpage author created the following removal batch file:
@echo off
 
if exist "C:\Program Files\vim\vim70\uninstall.exe" %comspec% /c start "Vim" /wait /d %WINDIR% "C:\program files\vim\vim70\uninstall.exe" /S
 
exit 0
His batch file presumed that Vim would be installed in 
C:\program files\vim. I wanted to specify a different
directory for the installation directory, so I created a batch file
that will check the 
Windows registry for the location where Vim is installed and then
uninstall the software based on the location found for it under the
UninstallString for Vim in the registry.
@echo off
REM The following example shows a "reg query" command that could be issued
REM from the command line to determine the value of "UninstallString" for
 
REM the Vim editor software. The last line of output contains the "value name",
REM  "value type", and "value data", which is the part of the output of
REM interest.
REM C:\>reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Vim /v UninstallString
REM
REM HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Vim
REM     UninstallString    REG_SZ    C:\Program Files\vim\vim72\uninstall.exe
REM Set the variable _UninstallString_Query to the reg query command to be
 
REM issued.
set _UninstallString_Query=reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Vim /v UninstallString
REM There are two parts at the beginning of the line, the "value name" and
 
REM the "value type" that aren't relevant. By specifying "2*" the "value name"
 
REM is ignored, the "value type" goes into %%A and %%B holds everything else
REM on the line.
FOR /f "tokens=2*" %%A IN ('%_UninstallString_Query%') Do set _Uninstall_program=%%B
%comspec% /c start "Vim" /wait /d %WINDIR% "%_uninstall_program%" /S
exit 0
The installation file, gvim-7-2-320.exe was built with the
Nullsoft Scriptable Install
System (NSIS) as I could see by analyzing the file with
FileAlyzer and
searching for text in the binary file and also when I tried running the
file without the /S option for a silent install. When I ran
the file without the /S option, I saw "Nullsoft Install System 
v2.45" displayed on one of the installation windows.
An installation package created with NSIS should accept a
/D=dir parameter to allow one to specify the
installation directory, but no matter what I tried the software always
installed in the default location of C:\Program Files\vim. I
did put the option at the end of the installation line and used a capital
"D" for the parameter, since the parameters are case sensitive. For the WPKG 
install line I first tried the following:
<install cmd='%SOFTWARE%\Editors\gvim-7-2-320.exe /S' /D=%PROGRAMFILES%\Editors\vim/>
That didn't work. the WPKG webpage for NSIS stated
"It must be the last parameter used in the command line and must not contain 
any quotes, even if the path contains spaces. Only absolute paths are 
supported." So I tried the following variations in place of the environment
variable %PROGRAMFILES%, but the results were always the same.
\Program Files\Editors\vim
C:\Program Files\Editors\vim
C:\Progra~1\Editors\vim
\Progra~1\Editors\vim
I.e. Vim was installed in C:\Program Files\vim no matter what
I used. I thought that perhaps I had to use the 8.3 form for directores
with a space in them, but using Progra~1 for Program Files
 did not help. It didn't matter that the directory Editors
 already existed, i.e. that I wasn't expecting it to create multiple
directory levels. I finally just left it in that location.
The package file I used with WPKG for gvim, gvim.xml contains
the following lines:
<?xml version="1.0" encoding="UTF-8"?>
<packages>
      
<package id="gvim" name="gvim" revision="1" reboot="false" priority="0">
   <check type="uninstall" condition="exists" path="Vim 7.2.320" />
   <!-- Though it uses the NSIS installer, the program won't accept
   the /D=dir option that allows you to specify the installation 
   directory. It insists on installing itself in C:\Program Files\vim. -->
 	
  <install cmd='%SOFTWARE%\Editors\gvim-7-2-320.exe /S' />
  <upgrade cmd='%SOFTWARE%\Editors\vim-remove.bat' />
  <upgrade cmd='%SOFTWARE%\Editors\gvim-7-2-320.exe /S'  />
  <remove cmd='%SOFTWARE%\Editors\vim-remove.bat' />
</package>
	
</packages>realpopup.xml file which I placed in WPGK's
packages directory on the server from which I install
software.  The realpopup.xml file contained the following
commands:
<?xml version="1.0" encoding="UTF-8"?>
<packages>
      
<package
   id="RealPopup"
   name="RealPopup"
   revision="1"
   priority="3"
   reboot="false">
 
   <check type="uninstall" condition="exists" path="RealPopup"/>
 
   <install cmd='%SOFTWARE%\Network\Chat\RealPopup\realp26_167.exe /sp- /verysilent /Dir="%PROGRAMFILES%\Network\Chat\RealPopup"'/>
 
   <upgrade cmd='%SOFTWARE%\Metwork\Chat\RealPopup\realp26_167.exe /sp- /verysilent /Dir="%PROGRAMFILES%\Network\Chat\RealPopup"'/>
 
   <remove cmd='"%PROGRAMFILES%\Network\Chat\RealPopup\unins000.exe" /sp- /verysilent /norestart'/>
 
</package>
</packages>
%SOFTWARE% is a variable representing the directory on
the server where software to be installed is located. I was able to specify
the directory where the software should be installed with
/Dir="%PROGRAMFILES%\Network\Chat\RealPopup" rather than having
to accept the default installation directory, since RealPopup uses 
Inno Setup, an open source 
installer, to install RealPopup. I could tell beforehand 
that it uses Inno Setup by analyzing it with 
Filealyzer.
 
The developer's website no longer exists, but I found the software still works under Windows 7. The program provides a capability to chat with other users on the same LAN. It supports many useful features such as options for users and groups, an internal network browser, names auto complete, and so on. RealPopup is available in more than 12 languages.
putty.xml file which I placed in WPGK's 
packages directory on the server from which I install software.
The putty.xml file contained the following commands:
<?xml version="1.0" encoding="UTF-8"?>
<packages>
      
<package
   id="PuTTY"
   name="PuTTY"
   revision="0600"
   priority="1"
   reboot="false">
 
   <check type="uninstall" condition="exists" path="PuTTY version 0.60"/>
 
   <install cmd='%SOFTWARE%\network\ssh\putty-0.60-installer.exe /sp- /verysilent /Dir="%PROGRAMFILES%\Network\SSH\PuTTY"'/>
 
   <upgrade cmd='%SOFTWARE%\network\ssh\putty-0.60-installer.exe /sp- /verysilent'/>
 
   <remove cmd='"%PROGRAMFILES%\Network\SSH\PuTTY\unins000.exe" /sp- /verysilent /norestart'/>
 
</package>
%SOFTWARE% is a variable representing the directory on
the server where software to be installed is located. I was able to specify
the directory where the software should be installed with
/Dir="%PROGRAMFILES%\Network\SSH\PuTTY" rather than having
to accept the default installation directory of %PROGRAMFILES%\PuTTY
, since PuTTY uses Inno 
Setup, an open source installer, to install PuTTY. I could tell beforehand 
that it uses Inno Setup by analyzing it with 
Filealyzer.
 
[ More Info ]
monitor command can be used to have all of the data
to and from a particular port copied to another port of your choosing
on the switch.
bash-2.03$ /usr/local/bin/elogd -c /home/elog/elogd.cfg -d /home/elog/logbooks -n localhost -D ld.so.1: /usr/local/bin/elogd: fatal: libssl.so.0.9.8: open failed: No such file or directory
I had been running the program before without a problem, so I looked for
libssl.so.0.9.8. It was present on the system.
bash-2.03$ find / -name libssl.so.0.9.8 -print 2>/dev/null /usr/local/ssl/lib/libssl.so.0.9.8 # ls -l /usr/local/ssl/lib total 8950 drwxr-xr-x 2 bin bin 512 Jun 22 15:46 engines -r--r--r-- 1 bin bin 5396 Mar 29 2009 fips_premain.c -r--r--r-- 1 bin bin 68 Mar 29 2009 fips_premain.c.sha1 -rw-r--r-- 1 bin bin 2263212 Mar 29 2009 libcrypto.a lrwxrwxrwx 1 root other 18 Oct 16 2007 libcrypto.so -> libcrypto. so.0.9.8 -r-xr-xr-x 1 bin bin 1525564 Mar 29 2009 libcrypto.so.0.9.8 -rw-r--r-- 1 bin bin 416204 Mar 29 2009 libssl.a lrwxrwxrwx 1 root other 15 Oct 16 2007 libssl.so -> libssl.so.0.9 .8 -r-xr-xr-x 1 bin bin 313176 Mar 29 2009 libssl.so.0.9.8 drwxr-xr-x 2 bin bin 512 Jun 22 15:46 pkgconfig
So I checked to see what libraries elogd was using with the ldd
command.
bash-2.03$ ldd /usr/local/bin/elogd
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libssl.so.0.9.8 =>       (file not found)
        libc.so.1 =>     /usr/lib/libc.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1So I then logged into the root account and checked the elogd file with the ldd command from that account.
bash-2.03$ su - root
Password:
Sun Microsystems Inc.   SunOS 5.7       Generic October 1998
# ldd /usr/local/bin/elogd
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libssl.so.0.9.8 =>       /usr/local/ssl/lib/libssl.so.0.9.8
        libc.so.1 =>     /usr/lib/libc.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        libcrypto.so.0.9.8 =>    /usr/local/ssl/lib/libcrypto.so.0.9.8
        libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
        /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1From that account, I did not see "file not found" for 
libssl.so.0.9.8.
At an FAQ page on the Electrical and Computer Engineering Department website for the University of Toronto I found the following advice:
Q. When I try to run "svn" on Solaris, I get the error:
ld.so.1: svn: fatal: libssl.so.0.9.8: open failed: No such file or directory
Killed
How can I get svn to work on Solaris?A. Add /local/openssl-0.9.8a/lib to the LD_LIBRARY_PATH env var before you \start:
i.e., setenv LD_LIBRARY_PATH /local/openssl-0.9.8a/lib
I checked the LD_LIBRARY_PATH setting for the root command.
# echo $LD_LIBRARY_PATH /usr/lib:/usr/local/lib:/usr/local/ssl/lib
I then checked the value for the variable for the user account.
bash-2.03$ echo $LD_LIBRARY_PATH bash-2.03$
On Solaris systems, you can use the -s option to show the full 
library search path.
bash-2.03$ ldd -s /usr/local/bin/elogd
   find object=libsocket.so.1; required by /usr/local/bin/elogd
    search path=/usr/lib  (default)
    trying path=/usr/lib/libsocket.so.1
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
   find object=libnsl.so.1; required by /usr/local/bin/elogd
    search path=/usr/lib  (default)
    trying path=/usr/lib/libnsl.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
   find object=libssl.so.0.9.8; required by /usr/local/bin/elogd
    search path=/usr/lib  (default)
    trying path=/usr/lib/libssl.so.0.9.8
        libssl.so.0.9.8 =>       (file not found)
   find object=libc.so.1; required by /usr/local/bin/elogd
    search path=/usr/lib  (default)
    trying path=/usr/lib/libc.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
   find object=libnsl.so.1; required by /usr/lib/libsocket.so.1
   find object=libc.so.1; required by /usr/lib/libsocket.so.1
   find object=libdl.so.1; required by /usr/lib/libnsl.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libdl.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
   find object=libc.so.1; required by /usr/lib/libnsl.so.1
   find object=libmp.so.2; required by /usr/lib/libnsl.so.1
    search path=/usr/lib  (default)
    trying path=/usr/lib/libmp.so.2
        libmp.so.2 =>    /usr/lib/libmp.so.2
   find object=libdl.so.1; required by /usr/lib/libc.so.1
   find object=libc.so.1; required by /usr/lib/libmp.so.2
   find object=/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1; required by /usr/lib/libc.so.1
        /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
bash-2.03$So, when attempting to run elogd from the user account, the system was
only checking /usr/lib for libssl.so.0.9.8. Since
the file wasn't in that location, I got the "fatal: libssl.so.0.9.8: open
failed: No such file or directory" message. So, though I thought I had
been running the program from that user account, I must have always previously
been running it from the root account, since I didn't ever see the error message
before when running elogd.
So, while logged into the user account, I set LD_LIBRARY_PATH 
to /usr/local/ssl/lib.  I was then able to run elogd from the user
account without an error message appearing.
bash-2.03$ LD_LIBRARY_PATH=/usr/local/ssl/lib bash-2.03$ export LD_LIBRARY_PATH bash-2.03$ /usr/local/bin/elogd -c /home/elog/elogd.cfg -d /home/elog/logbooks - n localhost -D bash-2.03$ ps -ef | grep elogd | grep -v grep jsmith 7961 1 0 14:13:05 ? 0:00 /usr/local/bin/elogd -c /home/elog/ elogd.cfg -d /home/elog/logbooks -n localhos
References:
For egg safety - to stay healthy and avoid foodborne illness — USDA advises:
- Always buy eggs from a refrigerated case. Choose eggs with clean, uncracked shells.
- Buy eggs before the "Sell-By" or "EXP" (expiration) date on the carton.
- Take eggs straight home from the grocery store and refrigerate them right away. Check to be sure your refrigerator is set at 40°F or below. Don't take eggs out of the carton to put them in the refrigerator -- the carton protects them. Keep the eggs in the coldest part of the refrigerator — not on the door.
- Raw shell eggs in the carton can stay in your refrigerator for three to five weeks from the purchase date. Although the "Sell-By" date might pass during that time, the eggs are still safe to use. (The date is not required by federal law, but some states may require it.)
- Always wash your hands with warm water and soap before and after handling raw eggs. To avoid cross-contamination, you should also wash forks, knives, spoons and all counters and other surfaces that touch the eggs with hot water and soap.
- Don't keep raw or cooked eggs out of the refrigerator more than two hours.
- Egg dishes such as deviled eggs or egg salad should be used within 3 to 4 days.
Since the recommendation from the FSIS site was not to use egg sald after 3 to 4 days, I threw away the egg salad.
It took me awhile to figure out that the problem was simply due to an image resizing option being set to "percent" rather than "pixels". I should have spotted that fairly quickly, but didn't.
[ More Info ]
I tried a couple of memory sticks, but the result was the same. She could sometimes move files from a memory stick, but then attempting to access the memory stick again would cause the Windows Explorer to stop responding.
I downloaded and installed the Realtek USB 2.0 Card Reader driver, which appears to have resolved the problem.| Released: | 2009-08-28 | 
| Version: | 6.1.7100.30093 A | 
| Compatibility: | Microsoft Windows 7 (32-bit), Microsoft Windows 7 Home Premium (64-bit), Microsoft Windows 7 (64-bit), Microsoft Windows 7 Professional (64-bit), Microsoft Windows 7 Ultimate (64-bit), Microsoft Windows 7 Home Basic (32-bit), Microsoft Windows 7 Home Premium (32-bit), Microsoft Windows 7 Professional (32-bit), Microsoft Windows 7 Ultimate (32-bit), Microsoft Windows 7 Starter (32-bit), Microsoft Windows 7 Home Basic (64-bit) | 
| System requirements: | No additional prerequisites | 
| Description: | This driver enable card reader read/write functionalities. | 
| Enhancements: | Original Software/Drivers | 
Download Site: HP
Download URL: 
Realtek USB 2.0 Card Reader
[ More Info ]
[ More Info ]