কীভাবে ডিরেক্টরি তৈরি করবেন এবং এর প্যাকেজটির সাহায্যে তার মালিককে কীভাবে পরিবর্তন করবেন


11

আমার ডেব প্যাকেজ তৈরি করতে হবে যা লগগুলির জন্য ডিরেক্টরি তৈরি করবে। আমি ডিরেক্টরি তৈরি করতে /var/logs/my_packageএবং এর মালিককে পরিবর্তন করতে চাই my_user

ইন ডক্স এ তথ্য ওঠে এসেছে যে, আমি ফাইল তৈরি করতে পারেন debian/dir। তবে তথ্য রয়েছে যে এটি করার সর্বোত্তম উপায় নয়। এবং সেখানে কোনও ডিরেক্টরি পরিচালককে কীভাবে পরিবর্তন করা উচিত সে সম্পর্কে কোনও তথ্য নেই (আমি chown my_user.my_user /var/logs/my_packageএটি debian/postinstফাইলটিতে কমান্ড দেওয়ার বিষয়ে ভাবছি )।

দেব প্যাকেজ দিয়ে ডিরেক্টরি তৈরি করার প্রস্তাবিত উপায় কী?


উবুন্টুকে জিজ্ঞাসা করুন স্বাগতম দয়া করে, আপনি আপনার সময় কিছু পড়তে করা হতে পারে askubuntu.com/help/someone-answers
সিলভাঁ Pineau

উত্তর:


9

আপনি ঠিক বলেছেন, এই debian/my_package.postintজাতীয় ক্রিয়াকলাপ সম্পাদনের জন্য আপনার একটি ফাইল দরকার :

#!/bin/sh

#DEBHELPER#

set -e

USER="my_user"

mkdir -p /var/log/my_package/    
if id -u $USER > /dev/null 2>&1; then    
    chown ${USER}:${USER} /var/log/my_package/
fi

দ্রষ্টব্য : কল করার আগে ব্যবহারকারীর উপস্থিতি আছে কিনা তা স্ক্রিপ্ট পরীক্ষা করে chown


1
আমি অত্যন্ত দুঃখিত, কিন্তু এটি আমার প্রশ্নের উত্তর দেয় না।
bessarabov

কেন এই পোস্টিনস্ট স্ক্রিপ্টটি আপনার মূল প্রশ্নের উত্তর দেয় না দয়া করে explain আমি এখন কিছুটা হতবাক।
সিলভাইন পাইনাউ

আমি দুঃখিত যে আমি এটি সঠিক পদ্ধতিতে ব্যাখ্যা করি নি। আপনার সমাধানটি সূক্ষ্মভাবে কাজ করে এবং আমি এটি বাস্তবায়ন করেছি। তবে ডক্স বলছে This generally means there is a problem with the Makefile.আমি এই বার্তাটি বুঝতে পারি যে এটি করার আরও কিছু উপায় রয়েছে। এবং আমি এই কাজটি করার পুনঃব্যবস্থার উপায় কী তা জানতে চাই।
bessarabov

1
ডিরেক্টরি তৈরি করা যেতে পারে debian/rulesযার মধ্যে Makefileডেবিয়ান প্যাকেজগুলির জন্য। যেহেতু আমি আপনার জানতাম না debian/rulesআমি একক ফাইলের ভিত্তিতে সমাধানের প্রস্তাব দিতে পছন্দ করেছি। কিন্তু chownকমান্ড পরবর্তী ইনস্টলেশন প্রক্রিয়া হতে হবে। ডিবিয়ান / ডায়ারদের এড়ানো উচিত তবে আমার প্রাথমিক উত্তরটি পুরোপুরি ঠিক। দয়া করে ভোট দিন এবং এটি গ্রহণ করুন, ধন্যবাদ।
সিলভাইন পাইনাউ

3

আপনার কোনও postinstস্ক্রিপ্ট তৈরি করার দরকার নেই , তবে সমাধানটি এখনও কিছুটা জটিল। আমি এতে dhওয়াইল্ডকার্ড ব্যবহার করি debian/rules:

#!/usr/bin/make -f
%:
        dh $@

binary:
        dh $@

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

    override_dh_install:
        dh_install   #calls default *.install and *.dirs installation
        install -d -o www-data -g www-data $(CURDIR)/debian/<package_name>/var/www/<something>/data 

ডেটা ডিরেক্টরিটি * .dirs ফাইলে থাকা দরকার নেই। তবে এখনও একটি কৌশল আছে। দেবহেল্পারে স্ক্রিপ্ট dh_fixperms রয়েছে, যা মালিকানাটিকে রুটে ফিক্স করবে, সুতরাং আমাদেরও ওভাররাইড করা দরকার:

override_dh_fixperms:
    dh_fixperms --exclude data

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


এটির প্রয়োজন কি প্যাকেজটি নির্মিত সেই সিস্টেমে ব্যবহারকারী এবং গোষ্ঠী বিদ্যমান? এবং যদি হ্যাঁ, তবে এটি নিশ্চিত করার কোনও উপায় আছে যে কোনও ডেবিয়ান-ভিত্তিক প্রক্রিয়া রয়েছে?
মরিটজ

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