Linux Package Management (Distribute Your App)

(Difference between revisions)
Jump to: navigation, search
(pre req)
(overview added; directions spiffed up)
Line 2: Line 2:
 
{| border="1"
 
{| border="1"
 
|-  
 
|-  
|'''Title''' || Linux package management (distribute your app)
+
|'''Title''' || Linux package management (distribute desktop apps) (build your own linux package)
 
|-
 
|-
|'''Overview''' || High level description of what the student will do
+
|'''Overview''' || Students will learn about rpm and dnf/yum package tooling and then actually create their own package from code, upload it to a public package repository and finally have a classmate install their compiled package. This can be advertised to students as being able to distribute their own linux-based application to the world.
 
|-  
 
|-  
 
|'''Prerequisite Knowledge''' ||  Students should be familiar with:
 
|'''Prerequisite Knowledge''' ||  Students should be familiar with:
 
* Beginner Shell knowledge (linux command line)
 
* Beginner Shell knowledge (linux command line)
 
* Getting around the linux file system, sudo'ing, editing files, etc.
 
* Getting around the linux file system, sudo'ing, editing files, etc.
 +
* Making and compiling Linux software code
 
|-
 
|-
|'''Learning Objectives''' || What should the student be able to do after completing this activity?
+
|'''Learning Objectives''' || Upon completion, students should be able to:
 +
* Install RPM's and use the dnf/yum command to inspect and install packages
 +
* Make and Compile existing code into a binary RPM package
 +
* Upload a package to an online repository
 +
* Install the package from an online repository
 
|}
 
|}
  
Line 32: Line 37:
  
 
=== Directions: ===
 
=== Directions: ===
* Build your own linux package
+
* Learn about yum and dnf. Have students find it themselves. https://en.m.wikipedia.org/wiki/DNF_(software),  
** http://www.ibm.com/developerworks/library/l-rpm1/
+
* Use an existing, easy, mature, yet small project like wget or top (or something that doesn't come standard on most systems) to have students compile and make and package.
** Directions
+
** See example of [http://www.ibm.com/developerworks/library/l-rpm1/ packaging the `wget` command]
*** Learn about yum and dnf. Have students find it themselves. https://en.m.wikipedia.org/wiki/DNF_(software),  
+
* Have students rename it so the command line can be run as a test
*** Use an existing, easy, mature, yet small project like wget or top (or something that doesn't come standard on most systems) to have students compile and make and package.
+
* Have students host the package on a web source (ftp? Some free internet service that makes the .rpm accessible by URL)
*** Have students rename it so the command line can be run as a test
+
*** Have students host the package on a web source (ftp? Some free internet service that makes the .rpm accessible by URL)
+
*** Have each student in the class pair up and try to install the other person's RPM and run the new command
+
 
** Package Repo location
 
** Package Repo location
 
***http://copr.fedorainfracloud.org - Use this for students to make their own packages and repositories
 
***http://copr.fedorainfracloud.org - Use this for students to make their own packages and repositories
 
*** https://fedorahosted.org/copr/ - The actual community / project page where user manuals and developer resources exist
 
*** https://fedorahosted.org/copr/ - The actual community / project page where user manuals and developer resources exist
 +
* Have each student in the class pair up and try to install the other person's RPM and run the new command
  
  

Revision as of 05:29, 10 February 2016

Title Linux package management (distribute desktop apps) (build your own linux package)
Overview Students will learn about rpm and dnf/yum package tooling and then actually create their own package from code, upload it to a public package repository and finally have a classmate install their compiled package. This can be advertised to students as being able to distribute their own linux-based application to the world.
Prerequisite Knowledge Students should be familiar with:
  • Beginner Shell knowledge (linux command line)
  • Getting around the linux file system, sudo'ing, editing files, etc.
  • Making and compiling Linux software code
Learning Objectives Upon completion, students should be able to:
  • Install RPM's and use the dnf/yum command to inspect and install packages
  • Make and Compile existing code into a binary RPM package
  • Upload a package to an online repository
  • Install the package from an online repository

Background:

Is there background reading material?


Are there other activities the student should have done first?

What is the rationale for this activity?

Include helpful hints to faculty here.


Directions:

  • Learn about yum and dnf. Have students find it themselves. https://en.m.wikipedia.org/wiki/DNF_(software),
  • Use an existing, easy, mature, yet small project like wget or top (or something that doesn't come standard on most systems) to have students compile and make and package.
  • Have students rename it so the command line can be run as a test
  • Have students host the package on a web source (ftp? Some free internet service that makes the .rpm accessible by URL)
  • Have each student in the class pair up and try to install the other person's RPM and run the new command


Deliverables:

What will the student hand in?


Assessment:

How will the activity be graded?

How will learning will be measured?

Include sample assessment questions/rubrics.

Criteria Level 1 (fail) Level 2 (pass) Level 3 (good) Level 4 (exceptional)
The purpose of the project
Why the project is open source

Comments:

What should the instructor know before using this activity?

What are some likely difficulties that an instructor may encounter using this activity?


Additional Information:

ACM Knowledge Area/Knowledge Unit What ACM Computing Curricula 2013 knowledge area and units does this activity cover? ACM_Body_of_Knowledge
ACM Topic What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf
Level of Difficulty Is this activity easy, medium or challenging?
Estimated Time to Completion How long should it take for the student to complete the activity?
Materials/Environment
  • Access to the shell of a Linux operating system that uses RPM (virtualized or on hardware can work)
  • root access is likely needed - another good vote for virtualized systems (might use openshift or virtualbox)
Author Who wrote this activity?
Source Is there another activity on which this activity is based? If so, please provide a link to the original resource.
License Under which license is this material made available? (http://creativecommons.org/licenses/)

Suggestions for Open Source Community:

Suggestions for an open source community member who is working in conjunction with the instructor.



This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox