...
Package | Status | Date installed | Install Tool | Notes | |||||
---|---|---|---|---|---|---|---|---|---|
1 | Linux | required | 7/13/2018 and 8/28/2018 | pxe boot | Basic CLI | ||||
2 | X11 | required | 7/17/2018 and 9/28/2018 | note 1 below | X11+gnome+gazillion dependencies | ||||
3 | window manager | required | 7/17/2018 and 9/28/2018 | " | gnome based - working on conf file | ||||
4 | desktop | required | 7/17/2018 and 9/28/2018 | " | (various convenience apps) | ||||
5 | chef-client | required | 11/13/2018 | (installed by KSA) | Needed for installing YFS | ||||
6 | Windows Active Directory | new authentication model (old=kerberos) | |||||||
7 | printing | required | [10/4/2018] | sudo system-config-printer | Printing will be via Windows AD IP based printing. In the meantime, configure locally using built-in printing system. Configure B048F2COPIER as a generic postscript printer. This probably needs to be rethought. A better fix involves downloading "BrightQ" Canon drivers from codehost.com. Their drivers come with instructions. | ||||
8 | YFS | required | 11/14/2018 | chef-client -o slac_yfs-client | Auristor's YFS (AFS) client. Use "kinit [<userID>]" followed by "aklog" to get a token | ||||
9 | emacs | required | 7/19/2018 and 9/28/2018 | gnome-software | |||||
10 | chrome | required | 9/28/2018 | d/l + yum install | |||||
11 | thunderbird | required | 7/19/2018 and 9/28/2018 | gnome-software | |||||
12 | NX | required | 9/28/2018 | d/l + yum install | NoMachine client for use with NERSC $ sudo rpm -i <nomachine...rpm> or $ sudo yum localinstall <nomachine...rpm> | ||||
13 | citrix client | TESTING INC0211099 not sure if it will work | |||||||
14 | fastx | required | 9/28/2018 | d/l + tar -xvf | https connection fails, but ssh connection works. KSA has opened ticket with vendor | ||||
15 | slack | required | 9/28/2018 | d/l + yum install | $ sudo yum localinstall <slack...rpm> | ||||
16 | zoom | required | 9/28/2018 | d/l + yum install | (implies support for microphone, camera and speakers) | ||||
17 | LibreOffice | required | 7/19/2018 and 9/28/2018 | gnome-software | calc,writer,base,draw,impress,CAD | ||||
18 | python v3 | required | 9/28/2018 | yum install | |||||
19 | sshfs | required | 12/19/2018 | yum install | sudo yum install fuse-sshfs commands include: sshfs, fusermount | ||||
20 | dev tools (gcc) | required | 9/28/2018 | yum install | sudo yum group install 'Development Tools' | ||||
21 | filezilla | required | 10/1/2018 | gnome-software | GUI file transfer between comet2 and SLAC servers | ||||
22 | Ksnapshot | required | 10/1/2018 | gnome-software | screen shot utility | ||||
23 | DbVis | required | 4/8/2019 | yum install | $ sudo yum localinstall dbvis_linux_10_0_18.rpm https://www.dbvis.com/download/10.0 download RPM | ||||
24 | NetBeans | needed by Fermi/LSST app developers | |||||||
25 | LSF client | convenient | 10/25/2018 | requires slac_yfs-client | requires desktop is in the lsf configuration file and allowed to run batch commands, if desktop name is not in LSF configuration, start a service now ticket to request addition Needs YFS to do run command a link for /etc/lsf.conf (likely a cookbook configured setting?) | ||||
26 | VPN | required | 11/14/2018 | download | Must download from a current Cisco AnyConnect customer or SLAC (How to Connect to SLAC VPN) | ||||
27 | clamav | not needed | sudo yum install clamav | Anti-virus (needed to access SLAC VPN, but not necessary on machine connected to internal network) | |||||
28 | media codecs | very strongly desired | 12/14/2018 | Many steps --> | Followed numerous "sudo yum install ..." commands from https://wiki.centos.org/TipsAndTricks/MultimediaOnCentOS7 | ||||
29 | htop | very strongly desired | 12/14/2018 | yum install htop | in EPEL | ||||
30 | gimp | elective | 12/17/2018 | desktop installer | Gnome installer accessed through the Window Manager menu: Applications -> System Tools -> Application Installer | ||||
31 | code42 | required | 112/20/2018 | (via SU web) | Stanford supported disk backup (for local files) https://stanford.app.box.com/v/SU-SemiCustomized-CPPe-Install | ||||
32 | nVidia driver/dashboard | probably not needed | -- | -- | Needed to run dual monitors. On comet2, two (DVI) monitors connected to the two displayPorts on the Quadro 2000 board work just fine with the built-in (nouveau) driver seems to work fine. | ||||
33 | GTK+ v3 | elective | 1/23/2019 | via KSA | needed to build galculator. (Also: gnome-software as gtk3-devel-3.22.20-3.el7) | ||||
34 | galculator | elective | 1/24/2019 | d/l from web and build | One of the few decent RPN calculator apps available for linux | ||||
35 | Java | required | Needed for Cisco VPN and other apps. | ||||||
36 | hdparm | elective | yum install hdparm | Useful HDD/SSD information: $ lsblk $ sudo hdparm -I /dev/sda1 | |||||
37 | cvmfs client | highly desired | 6/6/2019 | recipe | CERN-based remote file distribution system. This will access LSST software. | ||||
38 | numpy,scipy,pandas | required | 6/7/2019 | gnome-installer | Python packages | ||||
39 | conda | required | 7/26/2019 | gnome-installer | Needed in preparation for Jupyter | ||||
40 | matplotlib (python3) | required | 10/11/2019 | cmd line and gnome-installer | $ sudo python3 -mpip install matplotlib GUI installer for: python3-tkinter-3.6.8-10.el7 | ||||
41 |
Notes:
X11 & GUI installed in this way:
Code Block title X11 and GUI curl http://yum/centos-gui > /tmp/centos-gui /bin/sh /tmp/centos-gui
(very large set of packages, takes a long time...)
Software installed via the GUI, e.g., Thunderbird, emacs, LibreOffice
Code Block sudo gnome-software
Attempt to install FastX downloaded from www.starnet.com. Code is unpacked from a tar.gz file and run without any special installation. Attempt to configure SLAC but code fails with a relocation error associated with /lib64/libssl.so.10. Karl to the rescue! Use the "ssh" connection rather than "https" while he queries the vendor for a proper fix.
TRS should not be used as it currently requires the use of DES enctypes that are insecure. WE have a todo to remove the ability for this weak-key to work. And are working to make TRS more secure so it can be used on Centos.
...
Date | uname -a | Notes |
---|---|---|
7/13/2018 | 3.10.0-862.6.3.el7.x86_64 | |
8/8/2018 | 3.10.0-862.9.1.el7.x86_64 | |
8/28/2018 | 3.10.0-327.el7.x86_64 | Fresh install by ksa |
8/29/2018 | 3.10.0-862.11.6.el7.x86_64 | |
10/4/2018 | 3.10.0-862.14.4.el7.x86_64 | |
12/7/2018 | 3.10.0-957.1.3.el7.x86_64 | |
2/19/2019 | 3.10.0.957.5.1.el7.x86_64 | Fresh net install on new SSD |
4/1/2019 | 3.10.0-957.10.1.el7.x86_64 | |
5/15/2019 | 3.10.0-957.12.2.el7.x86_64 | $ sudo yum upgrade ; failure of yfs, so (via ksa)... $ sudo yum clean all;sudo yum erase kmod-yfs;sudo yum install kmod-yfs;sudo yum upgrade |
6/14/2019 | 3.10.0-957.21.2.el7.x86_64 | Automatic upon reboot (after notifications) |
9/24/2019 | 3.10.0-1062.1.1.el7.x86_64 |
Disk Partitioning
The following table indicates a "standard" suggested disk partitioning for centos7 with a 1 TB SSD. (Note: the machine, comet2, has 16 GB of RAM.)
...
- SLAC minimum security requirements:
https://docs.slac.stanford.edu/sites/pub/Publications/701-I02-001-00_Min_Sec_Req_for_Comp.pdf Stanford minimum security requirements:
https://uit.stanford.edu/guide/securitystandardsSLAC support for Linux:
Ubuntu/CentOS 7 Desktop Scope of Support
import datetimeimport argparse
## These are the tracts of interest for the end-to-end data settracts = '3636,3637,3638,3639,3830,3831,3832,4028,4029,4030,4229,4230,4231,4232'#tracts = '3636'
## raftIDs are used when converting to/from detector numbersraftIDs = ['R01','R02','R03','R10','R11','R12','R13','R14','R20','R21','R22','R23','R24','R30','R31','R32','R33','R34','R41','R42','R43']
class overlap(object): ## Table overlap contains: [id,tract,patch,visit,detector,filter,layer] overlapSQL = "select distinct visit,detector,filter from overlaps where tract in ($1) order by visit,detector;" #TEST# overlapSQL = "select distinct * from overlaps order by visit,detector;"
def __init__(self,dbfile='tract2visit.db',tractList=None): print("Hello from overlap.init()") ## Instance variables self.dbfile = dbfile self.tractList = tractList print('dbfile = ',self.dbfile) print('tractList = ',self.tractList) self.dbInit = False return
def __del__(self): ## Class destructor self.con.close() self.dbInit = False return
def initDB(self): ## Open sqlite3 DB file and create cursor self.con = sqlite3.connect(self.dbfile) ## connect to sqlite3 file self.con.row_factory = sqlite3.Row ## optimize output format self.cur = self.con.cursor() ## create a 'cursor' self.dbInit = True return
def closeDB(self): self.con.close() self.dbInit = False return
def stdQuery(self,sql): if self.dbInit == False: return print('SQL = ',sql) ## Perform a query, fetch all results and column headers result = self.cur.execute(sql) rows = result.fetchall() # <-- This is a list of db rows in the result set ## This will generate a list of column headings (titles) for the result set titlez = result.description ## Convert silly 7-tuple title into a single useful value titles = [] for title in titlez: titles.append(title[0]) pass return rows,titles
def run(self): self.initDB()
rows,titles = self.stdQuery(self.overlapSQL.replace('$1',tracts))
self.closeDB() return rows, titles
def d2rs(detector): ## Convert a DM "detector number" to raft/sensor format, e.g., ## "R22" "S11" det = int(detector) if det > 189 or det < 0: raise Exception("Bad detector number") raft = int(det/9) raftID = raftIDs[raft] s1 = det%9 s2 = int(s1/3) s3 = s1 % 3 sensorID = f'S{s2}{s3}' return raftID, sensorID
def rs2d(raftID,sensorID): # Convert a raft sensor string of form "Rnn" and "Smm" to a DM # "detector number" (int from 0 to 188) raft = raftIDs.index(raftID) det = int(raft)*9+int(sensorID[-2])*3+int(sensorID[-1]) return det
if __name__ == '__main__':
## Define defaults defaultFile = 'tract2visit.db' ## Parse command line arguments parser = argparse.ArgumentParser(description='Generate sim file list based on tract overlap') parser.add_argument('-o','--overlapsFile',default=defaultFile,help='Name of overlap db file (default = %(default)s)') # parser.add_argument('-n','--nth',default=0,type=int,help='Desired visit, counting from beginning of sorted list (default=%(default)s)') parser.add_argument('-v','--version', action='version', version=__version__) args = parser.parse_args()
myo = overlap(dbfile='tract2visit.db',tractList=tracts) rows,titles = myo.run()
print('table columns = ',titles) #xtract=titles.index('tract') xvisit=titles.index('visit') xdet=titles.index('detector') xfilt=titles.index('filter') print('#sensor-visits returned = ',len(rows)) # Sample sim FITS file naming lsst_a_425529_R14_S00_y.fits fileList = [] visitList = [] tractList = tracts.split(',') print(tractList) n = 0 simpre='/global/projecta/projectdirs/lsst/production/DC2_ImSim/Run2.1.1i/sim/agn-test' ## Write out a file of sim filenames vz = open('vizList.txt','w') for rowz in rows: n += 1 row = list(rowz) #print('row = ',row)
viz = row[xvisit] if row[xvisit] not in visitList:visitList.append(viz) rr,ss = d2rs(row[xdet]) file = 'lsst_a_'+str(viz)+'_'+rr+'_'+ss+'_'+str(row[xfilt])+'.fits' viz8 = f'{viz:08}' if viz < 445379: file = os.path.join(simpre,'00385844to00445379',viz8,file) else: file = os.path.join(simpre,'00445379to00497969',viz8,file) pass vz.write(file+'\n') fileList.append(file) if n<20:print(file) pass
vz.close() print('There are ',len(visitList),' visits.') print('There are ',len(fileList),' files.')
#/global/projecta/projectdirs/lsst/production/DC2_ImSim/Run2.1.1i/sim/agn-test/00385844to00445379/00425529/lsst_a_425529_R14_S00_y.fits #/global/projecta/projectdirs/lsst/production/DC2_ImSim/Run2.1.1i/sim/agn-test/00445379to00497969/00457716/lsst_a_457716_R10_S10_i.fits
# for file in fileList: # print(file)