আমি কীভাবে পিপিএ তৈরি করব?


123

উবুন্টু সম্প্রদায়ের সাথে ভাগ করার জন্য কীভাবে আমি আমার নিজস্ব কাস্টম পিপিএ তৈরি করব? আমি আমার নিজস্ব কাস্টম প্যাকেজ সেট তৈরি করার চেষ্টা করছি এবং আমি সত্যিই এটি সম্প্রদায়ের সাথে ভাগ করতে চাই।


সম্পর্কিত বা একই: Askubuntu.com
দ্য

উত্তর:


97

একটি ব্যক্তিগত প্যাকেজ সংরক্ষণাগার ( পিপিএ ) ব্যবহার করে আপনি সরাসরি উবুন্টু ব্যবহারকারীদের কাছে সফ্টওয়্যার এবং আপডেট বিতরণ করতে পারেন। আপনার উত্স প্যাকেজ তৈরি করুন, এটি আপলোড করুন এবং লঞ্চপ্যাড বাইনারি তৈরি করবে এবং তারপরে সেগুলি আপনার নিজস্ব অ্যাপ্লিকেশানগুলিতে হোস্ট করবে।

এখানে একটি বিস্তারিত ব্যাখ্যা


5
FWIW আমি আচরণবিধিতে স্বাক্ষর করার আগে আমার পিপিএ সক্রিয় করতে সক্ষম হয়েছি A
স্পারহাক

2
এটি সেরা উত্তর। আপনাকে কেবল একটি পিপিএ কীভাবে তৈরি করবেন তা বলা হয়েছিল। নীচে দেওয়া প্রতিক্রিয়া (টোট্টি দ্বারা) পিপিএ নয়, তবে এটি একটি পাবলিক স্টোর। একই জিনিস সম্পাদন করে (সম্ভাব্য) সত্ত্বেও দুটি আলাদা। এমনকি তিনি তার উত্তরের প্রথম লাইনে বলেছেন: "এই প্রশ্নের একটি ভাল লিখিত, স্বীকৃত উত্তর রয়েছে। ওপি যেমন তার প্যাকেজগুলি প্রকাশের জন্য একটি সহজ উপায় চায় আমি একটি সহজ হ্যাক দিচ্ছি।" কারণ আপনি পছন্দ করেন সহজ হ্যাক এটিকে সেরা উত্তর দেয় না।
lbaile200

ঠিক আছে, তবে এই উত্তরের লিঙ্কগুলির কোনওটিই সত্যিই বর্ণনা করে না কীভাবে এটি স্ক্র্যাচ থেকে করবেন। এখানে সমস্ত লিঙ্কগুলি বিকাশকারীদের জন্য তৈরি করা হয়েছে, যা ইতিমধ্যে আরও বেশি উপাদানের মধ্যে রয়েছে
রুব 77

1
@ রুবো 77 - "কীভাবে তৈরি করবেন" জবাবদিহি করার মতো কঠোরভাবে বিস্তৃত। আপনি যা প্যাকেজ করতে চেষ্টা করছেন তা সবই নির্ভর করে। প্রকৃতপক্ষে উপরের উত্তরের প্রতিটি পদক্ষেপের প্রতিটি ভাল উত্তরের সাথে স্বতন্ত্র কিউ হতে পারে।
ফসফ্রিডম


86

কীভাবে একটি .deb ফাইল তৈরি করবেন

এটি প্রদত্ত নমুনা স্ক্রিপ্ট থেকে একটি বেসিক .deb ফাইল তৈরির একটি টিউটোরিয়াল। এই টিউটোরিয়ালে প্রথমে আমরা ব্যাশে একটি নমুনা প্রোগ্রাম তৈরি করি যা কেবল 'হেলোর প্রোগ্রাম থেকে' দেখায়। তারপরে আমরা একটি ডেবিয়ান ইনস্টলার তৈরি করার জন্য প্রোগ্রামের জন্য একটি নিয়ন্ত্রণ ফাইল তৈরি করি । শেষ পর্যন্ত এগুলি একটি .debফাইলে প্যাকেজ করা হয় ।

পদক্ষেপ:

  1. বাশে একটি নমুনা প্রোগ্রাম তৈরি করুন

    mkdir "$HOME/create_deb/pgmdir"
    gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
    

    এটিতে নিম্নলিখিত কোডটি পেস্ট করুন

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. প্রোগ্রামটি সম্পাদনযোগ্য করুন Make

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. ডিবিয়ান প্যাকেজের জন্য নিয়ন্ত্রণ ফাইল তৈরি করুন

    controlফোল্ডারের ভিতরে একটি ফাইল তৈরি করুনDEBIAN

    mkdir "$HOME"/create_deb/DEBIAN
    gedit "$HOME"/create_deb/DEBIAN/control
    

    এবং নিম্নলিখিত বিবরণ পেস্ট করুন

    Package: hellodeb
    Version: 0.1
    Architecture: all
    Maintainer: totti
    Installed-Size: 6
    Depends: zenity, bash
    Section: testing
    Priority: optional
    Homepage: http://askubuntu.com
    Description: This is my first debian package.
     Guided by Totti Torvalds.
     In Description new line start with a space.
    

    আপনি যদি চান বিষয়বস্তু সম্পাদনা করতে পারেন। এখানে এবং এখানে এই ফাইলটির ফর্ম্যাট সম্পর্কে আরও পড়ুন ।

  4. postinstস্ক্রিপ্ট তৈরি করুন , যা প্যাকেজ ইনস্টলের সাথে সাথেই কার্যকর করা হয়

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    তারপরে পেস্ট করুন

    #!/bin/sh
    set -e
    echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
    

    এবং এটি কার্যকর করা

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. prermস্ক্রিপ্ট তৈরি করুন , যা প্যাকেজ অপসারণের আগে কার্যকর করা হয়

    #!/bin/sh
    set -e
    echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
    

    এবং এটি কার্যকর করা

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. প্যাকেজ কাঠামো এবং অনুলিপি প্রোগ্রাম, ডেটা ইত্যাদি
    তৈরি করুন your আপনার ইনস্টলড প্রোগ্রাম এবং এর ডেটার একটি কাঠামো তৈরি করুন। এই উদাহরণে আমরা ফাইলটি রেখেছি /bin

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. .Deb ফাইলটি তৈরি করুন।

    dpkg-deb --build "$HOME"/create_deb .
    

    .ইচ্ছা স্বয়ংক্রিয় নাম .debসংস্করণ, খিলান ইত্যাদি অথবা আপনার কাস্টম নাম দিয়ে ফাইল

    dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
    

    বা যদি আপনি .deb ফাইলটি দিয়ে তৈরি করেন

    debuild -k'your GPG key here' -S
    

    তারপরে আপনি এটি উবুন্টু লঞ্চপ্যাডের সাথে আপলোড করতে পারেন

    dput ppa:<lp-username>/<ppa-name> packet-source.changes
    

    এখানে বর্ণিত (উত্স: স্ক্রিপ্ট বা বাইনারি থেকে একটি .deb প্যাকেজ তৈরি করুন )

  8. সদ্য নির্মিত .debপ্যাকেজটি ইনস্টল করুন । আপনি এটি দিয়ে খুলতে পারেন software-centerতবে এটি আপনাকে ইনস্টল করার অনুমতি দেয় না। তাই আমি gdebiপ্যাকেজ ম্যানেজার ব্যবহার করার পরামর্শ দিই ।

    sudo apt-get install gdebi
    
    gdebi "$HOME"/create_deb/hellodeb.deb
    

    এখন আপনি এটি ইনস্টল করতে পারেন। ইনস্টলেশন চলাকালীন আপনার একটি জিটিকে সংলাপ দেখতে হবে

    প্রোগ্রাম ইনস্টল করা হচ্ছে: zenity_hello.sh ......

  9. ইনস্টল করার পরে একটি টার্মিনাল খুলুন এবং টাইপ করুন zenity_hello। প্রোগ্রামটি সঠিকভাবে ইনস্টল করা থাকলে এবং সবকিছু ঠিকঠাক থাকলে আপনার একটি জিটিকে সংলাপ দেখতে হবে

    প্রোগ্রাম থেকে হ্যালো

  10. প্যাকেজ সরানো হচ্ছে

    sudo apt-get remove zenity_hello
    

2 মিনিটের মধ্যে আপনার সংগ্রহশালা প্রকাশ করুন

যেহেতু ওপি তার প্যাকেজগুলি প্রকাশের একটি সহজ উপায় চায় আমি একটি সহজ হ্যাক দিচ্ছি।

প্রয়োজনীয়তা: ড্রপবক্স (বা অন্য কোনও পরিষেবা, প্রাক্তন। গিথাবের জন্য ) একটি সর্বজনীন ফোল্ডারের সাথে অ্যাকাউন্ট।

  1. আপনি আপনার * .deb ফাইলগুলি যেখানে রেখেছেন সেখানে আপনার সর্বজনীন-ড্রপবক্স-ফোল্ডারের ভিতরে একটি ফোল্ডার তৈরি করুন:

    mkdir ~/Dropbox/Public/deb-packages  
    

    বা সেই ফোল্ডারটি অন্য কোথাও তৈরি করুন এবং আপনার সর্বজনীন ফোল্ডারে একটি সিমিলিংক দিন:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. সেই ফোল্ডারে যান এবং একটি স্ক্রিপ্ট তৈরি করুন যা কার্যকর করা হলে প্যাকেজসজেড তৈরি করে আপনার ডিবে-প্যাকেজগুলি সম্পর্কিত সমস্ত প্রয়োজনীয় তথ্য ধারণ করে। সৃষ্টি:

    gedit import.sh  
    

    এটি এতে রাখুন:

    #!/bin/bash
    dpkg-scanpackages . /dev/null |gzip > Packages.gz
    

    এটি কার্যকর করা:

    chmod  x import.sh
    
  3. ফোল্ডারে কিছু * .deb ফাইল অনুলিপি করুন। আপনার নিজস্ব বা এমন কিছু হতে পারে যা অন্যান্য সংগ্রহস্থলের মাধ্যমে উপলভ্য নয়। তারপরে ফোল্ডারে যান এবং আমরা সেখানে যে স্ক্রিপ্টটি রেখেছি তা সম্পাদন করুন:

    cd ~/deb-packages/ 
    ./import.sh
    

    এটি তথাকথিত Packages.gz ফাইল তৈরি করা উচিত , যা এই সংগ্রহস্থলে কোন প্যাকেজগুলি অবস্থিত তা জানতে আগ্রহী।


এটাই

এখন, ড্রপবক্সটির জন্য ফোল্ডারটি সিঙ্ক্রোনাইজ করার জন্য অপেক্ষা করুন এবং এর থেকে সর্বজনীন-URL টিPackages.gz দখল করুন । এটি দেখতে কিছু দেখতে হবে:

http://dl.getdropbox.../Packages.gz

এই লিঙ্কটির শেষ থেকে মুক্তি পান, এতে আরও কিছু শব্দ রাখুন এবং আপনি এখন উত্স.লাইস্টের জন্য নিম্নলিখিত লাইনটি ব্যবহার এবং পপুলেট করতে পারেন:

deb http://dl.getdropbox.../deb-packages ./

এটি আপনার নিজের ডেপোপোজিটি চলছে। সর্বদা স্থানীয়ভাবে সিঙ্ক্রোনাইজড, তবে যে কোনও সময়, যে কোনও জায়গায় পাওয়া যায়।

দ্রষ্টব্য: রেফারেন্স dpkg-scanpackagesথেকে উপলব্ধdpkg-dev


3
+1 দুর্দান্ত! এটি কাজ করেছে: আমি গিথুবকে ব্যবহার করেছি এবং সেখানে ফোল্ডারের জন্য কাঁচা ডিরেক্টরি releases/দেখুন github.com/rubo77/mouse-speed/blob/master/re कृपया/…
রুও 7777

এটি একটি স্ব-হোস্টেড পিপিএ বর্ণনা করে, তবে আমি কীভাবে উবুন্টু ডেবিয়ান প্যাকেজ তৈরি
রুব 77

3
আপনি যদি step ধাপে .deb ফাইলটি তৈরি করেন debuild -us -uc -k'your GPG key here'তবে তারপরে আপনি এখানে বর্ণিতdput ppa:<lp-username>/<ppa-name> packet-source.changes লঞ্চপ্যাডের সাথে এটি আপলোড করতে পারেন (উত্স: স্ক্রিপ্টগুলি বা বাইনারিগুলি থেকে একটি .deb প্যাকেজ তৈরি করুন )
রুও 7777

@ রুবো ,77, ধন্যবাদ, আমার উত্তর শেষে এই ইনফসগুলি যুক্ত করতে আমি আপনাকে স্বাগত জানাই।
টোটাই

1
ঠিক আছে, আমি কেবল এটি করেছি, আমি এটিও জানতে পেরেছিলাম যে এখনই .deb ফাইলটি তৈরি না করার জন্য আপনার লঞ্চপ্যাডের জন্য অন্যান্য পরামিতিগুলি প্রয়োজন (জাস্ট-এস): debuild -k'your GPG key here' -Sকারণ লঞ্চপ্যাড ডাব ফাইলটি তৈরি করবে (যদি তা প্রত্যাখাত না হয়) - কী us -us -uc` এর জন্য হত?
rubo77

2

পিপিএ তৈরি করতে আপনার একটি Launchpad.net অ্যাকাউন্ট প্রয়োজন। লঞ্চপ্যাডে কেবলমাত্র আপনার ব্যবহারকারীর উপর ক্লিক করুন (উপরের বাম দিকে আপনার নামের উপর ক্লিক করুন) এবং একটি পিপিএ তৈরি করুন। আপনাকে প্রথমে আচরণবিধিতে স্বাক্ষর করতে হবে এবং আপনার অ্যাকাউন্টের সাথে একটি জিপিজি কী নিবন্ধিত করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.